TiDB使用LSM,你是否在生产环境遇到过此类问题?有什么好的解决措施预防此类问题?
3 个赞
没有遇到
2 个赞
生产环境遇过 LSM 触发的写放大、Compaction 性能抖动问题。预防的话,可以调 Compaction 策略,分冷热数据存储,监控磁盘 IO 和内存。
2 个赞
LSM的特性,空间换时间
对, LSM-Tree 存储引擎的缺点
合并好像是还有两种算法?TiDB不知是哪种?
归并排序?
没遇到过
我看资料上有两种合并策略:Size-tiered和Leveled
学习了,楼主的分析思路很清晰,对我很有启发。
哦,那可能是我记错了
LSM机制本身就是解决写放大问题的,不对元数据做修改,只用数据版本进行都快照的控制的.
对对对,我在OB从新看了一下理论
应该不是解决,是LSM的特性决定了有这种现象
1 个赞
TiDB 的 LSM 读写放大(TiKV 基于 RocksDB 的 LSM 树)常出现于:
- 频繁小写入(如大量小事务):触发频繁 Compaction,加剧写放大;
- 范围查询跨多 SST 文件:需读取多个分层文件,引发读放大;
- 写入压力过高:Compaction 资源占用多,读写放大同步恶化;
- 数据冷热不均:冷数据被重复合并,额外增加读写开销。
1 个赞
感谢老师分享
感谢分享,细品一下
只能调整合并策略
按照官方的规范,系统上线的时候使用nvme接口的ssd磁盘,这样多节点之后的总iops高于集中式存储好几倍,抵消了读写放大带来的影响。