【TiDBer 唠嗑茶话会 93】TiDBer 有话说——为 TiDB 的产品发展提 *** 条建议

tidb-server <--------------------------> tikv-server 宝贵的网络资源:
1、对于update、delete操作,tidb还是需要把整行记录拿到tidb-server中,我想这主要因为1、需要维护tidb-binlog,需要将整行记录传给下游;2、有较多涉及到的索引字段须读到tidb-server中加工处理后回填维护索引。但是这大量的数据搬动可能消耗大量的网络资源(网络带宽、GRPC通道拥挤)。因此是否能下的功夫优化这个无法绕过的问题。后面不推荐tidb-binlog(ticdc代替下游供数、brlog代替增量恢复),那么更应该着手优化这块,可以设置成开关对于关闭tidb-binlog的对于update和delete不应读取所有数据到tidb-server,只读取需要修改的或者需要删除的rowid字段(包括索引字段)。
2、优化decimal等数据类型带来的放大问题,减少网络资源使用。
3、适当控制全表扫描并发度(存在无法下推函数,前端用游标读取等方式,可能读取大量数据到tidb-server又积压在tidb-server上),减少网络资源使用,也避免在tidb-server侧堆积数据占用大量tidb-server内存。
4、优化tidb-server 的clientGRPC和tikv-server的serverGRPC,增加资源隔离、队列优先级等策略保障小事务,点查,简单索引查的优先级,让全表查、大量回表查、大量数据写入等优先级排低(这块可能对优化器的评估是个巨大的考验)。

最多允许连续发3贴,下面这个不相干但只能放在这里:
sync_diff_inspector是一个非常强大的数据比对工具,考虑了很多方面,且非常实用,完全比自己写对比脚本要好用很多,在功能、配置、效率、结果展现等方面都有点出乎我预期,但是在分析该工具时发现还是会存在一些可能会导致集群抖动的问题,在实际测试使用时也是验证了这一点。见帖子:sync_diff_inspector做上下游数据对比时可能会导致集群性能抖动

2 个赞