Flink状态后端和CheckPoint 调优
原文中文,约6100字,阅读约需15分钟。发表于: 。RocksDB是一种嵌入式的Key-Value数据库,用作Flink中的RocksDBStateBackend的底层存储。它通过多层组织持久化数据,并通过异步Compaction合并重复、过期和已删除的数据。在写入过程中,数据会经过序列化后写入到WriteBuffer,再从内存flush到磁盘上。在读取过程中,会先尝试从WriteBuffer和Immutable Memtable中读取数据,如果没有找到,则会查询Block Cache和底层的SST文件。RocksDBKeyedStateBackend增量快照将差异上传到分布式文件系统,并通过SharedStateRegistry进行状态的注册和过期。RocksDB的性能调优方法包括开启性能监控、增量CheckPoint和本地恢复、设置多目录、调整RocksDB选项、增大block缓存、调整write buffer和level阈值、增大write buffer数量和后台线程数、开启分区索引功能。设置Checkpoint时需要考虑时效性和性能之间的平衡。