对于XL改进方案的初步分析

根据前一篇博客中统计的单个事务耗时分布,我们发现每个请求在datanode执行的时间与PG执行时间几乎一样。

之前测试的是短事务,一个事务一个insert语句写入一条数据,这种场景对于xl来说没有什么优势,除了执行写入还要增加网络交互的耗时,且insert操作本身很快完成,相比执行网络交互耗时占的比重就大了很多。

而后我们测试了一下长事务,也就是一条sql执行本身就比较耗时,且能够调动xl多个datanode共同处理的情况。每个事务一条sql,写入10万行数据,这次的执行结果大不一样。

PG在8并发时tps到达上限(25),XL在32并发时到达tps上限(52),2并发及一下PG的性能略优于XL,2并发以上XL的性能明显优于PG。

 

由此我们总结出,XL能体现优势的场景,是网络开销在整个事务中所占的比重小,且能充分调动datanode的处理能力的场景。

 

结合之前画的XL事务处理时序图和XL进程架构图,对于XL的性能问题,有以下改进方案(有待补充):

1. 减少网络交互次数

  • 合并请求,比如合并获取GTXID和snapshot的请求(对短事务提升相对明显)  ***
  • 使用其他方案实现事务可见性判断(替代现有的集群快照) *****'

 减少网络交互次数的改进方案对OLTP性能的提升空间:

   最好:去除全局事务ID性能可提升15% ; 去除集群快照性能可提升 16%;

   最差:无提升 ( 当sql执行时间远大于获取全局事务ID和集群快照的时间 )

   常见:去除全局事务ID性能提升9% ; 去除集群快照性能提升 12%;

    

2. 提高网络传输效率

  • 更换传输协议 ****

    【Quic】: 相比TCP减少了建立连接时三次握手的时间, 在弱网环境下比较有优势。(没有找到TCP和QUIC的性能详细对比,以下Quic和HTTP的性能对比作为参考)

       最好:比HTTP快30-50%;带宽很低 (2-10M左右)、RTT很高(200ms以上)的场景 

       最差:比HTTP更慢;

       常见:无提升。

   【RDMA】: 相比TCP减少了传输时 数据在内存、处理器Cache、网卡buffer之间的拷贝,降低网络延时和CPU消耗。

        最好:比TCP提升一个数量级;机器非常繁忙的场景? (待确认)

        最差:无提升;

        常见:比TCP快45%左右;

3. 减少coordinator与datanode的重复步骤

  • 执行计划只在coordinator生成,再下发到各个datanode执行。 ****

减少coordinator与datanode重复解析sql和生成执行计划的重复步骤,对OLTP性能的提升空间:

      最好:5%

      最差:无提升

      常见:3%

 

 

【事务处理流程时序图】

 

 

【进程架构图】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值