Flink Keyed State的优化与实践
原文中文,约4600字,阅读约需11分钟。发表于: 。本文的内容主要是从业务场景跟进到RocksDB的读写行为,来优化RT耗时高的问题,并使用优化方案缓解compaction的压力。
Flink SQL在双流join场景中,当State的存储达到TB级别后,会发现State的scan/next/readNull请求RT会变得较高。通过使用RocksDB的BlobDB方案,可以大大降低IO和CPU毛刺。经过适配并在大State中开启KV分离后,观察RocksDB日志发现SST的文件大小急剧下降,State Key也全聚集在了L0和L1这两层中。最后的效果是ReadNull耗时全降到了百微妙左右,scan和next的RT 99线也降到了1毫秒左右。