TiKV事务中的KV随机性高,涉及近1000个region导致事务耗时比较长,有没有什么优化建议

提交的事务中数据随机性较高,随着数据量的增加,写入事务涉及到的region达到近1000,几乎每个key都在不同的region,导致耗时到秒级,请问有什么优化建议吗

写入的key 均匀分散在不同的region 是件狠棒的事情,不然就会变成热点问题了,恐怕会更慢…

优化的方向无非是:

  1. 处理性能(CPU、内存,磁盘IO)
  2. 网络吞吐
  3. 业务改善(有效拆分,减少一次性提交的量级)

具体的,还是参考 prometheus 以及 dashboard 上的统计数据和性能数据进行分析

1 个赞

谢谢,我再想想办法

数据过于离散其实也不好,相关表是做了热点打散操作么?

每次要处理那么多region,可以参考tikv的线程池调优,把tikv的线程池适当调整调整,让更多的处理并发起来。
https://docs.pingcap.com/zh/tidb/stable/tune-tikv-thread-performance#tikv-线程池性能调优

region如果特别小,可以适当调大一些,合并一些。
只要单个region的请求造成的压力不超过机器能承受的压力,就不算热点。

因为数据的key都是hash,所以非常离散

好的,谢谢,我再尝试调一下参数

过于离散对当前 TiDB 读取其实是有一定的不友好的,tidb 和 tikv 交互,task 拆分按照 region 分的。

当前也可以试试这个参数:https://docs.pingcap.com/zh/tidb/dev/tidb-configuration-file#grpc-connection-count

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