tikv数据膨胀问题

【 TiDB 使用环境】 测试
【 TiDB 版本】v7.5.3
【复现路径】从RocksDB迁移数据到tidb后,发现单副本数据膨胀达到40%,经过分析发现是write cf 占用空间大导致的【index所占用的空间】,从tidb官方文档看tidb的索引组织方式和RocksDB还有一些差异,大家是否也遇到过这类问题呢
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】

TiDB 和 RocksDB 在索引组织方式上的差异导致的吧

看看具体数据占用呢,是不是有空的region
select t.DB_NAME,t.TABLE_NAME,sum(t.APPROXIMATE_SIZE) from INFORMATION_SCHEMA.TIKV_REGION_STATUS t
group by t.DB_NAME,t.TABLE_NAME
order by 3 desc

https://docs.pingcap.com/zh/tidb/v8.3/manage-cluster-faq#tikv-block-cache-有哪些特性
是不是版本信息 (MVCC)、索引、小表相关的数据比较多,gc是设置多大呢?

我也是这么认为的,tidb的索引组织信息过于膨胀了

数据从RocksDB迁移到TiDB后出现40%的膨胀是可以理解的,主要是由于TiDB的索引组织方式、MVCC策略以及作为分布式SQL数据库所需的额外元数据所导致的。

这块如果tidb做下优化就好了,这40%的膨胀对于百tb的集群来说成本就高了很多了

1 个赞

存储的消耗和分布式带来的好处相比 我觉得还是划算的~!

为什么要从rocksdb迁移到tikv呢?
数据量肯定会增多的。

tikv会对数据加一些后缀,支持mvcc
tikv还有lock相关记录,支持percolator事务。
tikv还有raft log
tikv还是3副本。
这都是额外的开销。

1 个赞

这个结论还是有道理的

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。