Mysql半同步复制技术在高性能的数据管理中被广泛采用,但它在可靠性方面却存在不足.本文对半同步复制技术进行优化,提出了一种快速全同步复制技术,通过对半同步数据复制过程中的事务流程设置、线程资源合理应用、批量日志应用等技术手段,在保证数据可靠性的基础上降低复制过程中的性能损失,实现了快速的全同步复制.测试结果表明,快速全同步复制技术可以在性能、可靠性和一致性方面做到很好的均衡,有效提高了Mysql存储集群的业务承载能力
目录
3 功能验证和性能测试
3.1 功能验证
3.2 性能测试
4 结语
3 功能验证和性能测试
3.1 功能验证
功能验证主要是验证在故障情况下,快速全同步复制的存储集群的事务回退,主机节点和备机节点的切换是否正常和检查数据是否丢失.测试目的:验证快速全同步复制的高可靠性.
测试环境(配置):一主两从的三节点Mysql存储集群.
参数设置:
Fullsync_consistency_level=1;
disable_fullsync_on_slave_ack_timeout=0;
fullsync_relaylog_fsync_ack_level=2;
测试方法:在模拟业务系统运行的过程中,对集群执行破坏性操作,检查数据的一致性及可靠性.测试结束如表4所示.
表4的测试结果说明,快速全同步技术在各种意外故障的场景下,可以保证数据的高可靠性.
3.2 性能测试
本次测试是通过对比快速全同步和Mysql增强半同步的写入性能(在相同的配置情况下),来验证
快速全同步复制技术是否具有性能上的优势.
测试软件:Sysbench 1.0.20(using system Lua-JIT 2.1.0-beta3)
服务器配置:CPU16cores32Threads,内存:128G
存储:1 个 NVMe SSD .
软件版本及配置:
Mysql增强半同步:Server version:8.0.26 MysqlCommunity Server+半同步复制插件;
Mysql 存储集群快速全同步复制:基于 8.0.26Mysql Community Server+快速全同步功能;
数据库参数配置一致.
Sysbench 测试场景:
场景:oltp_write_only;
每个事务执行如下 3 种操作:
execute_index_updates();
execute_non_index_updates();
execute_delete_inserts().
测试数据量:-tables=18-table-size=5000000,表占用操作系统存储空间:22 G.
测试结果:
如图4 所示的测试结果表明,快速全同步复制性能比 Mysql 半同步(Semi _ sync)在性能上提升约10%.
4 结语
Mysql的传统复制技术在不同的场景下已经获得广泛使用,但依然存在可靠性和复制性能二者不能兼得的问题.本文研究的快速全同步复制技术弥补了传统复制技术的不足,通过线程池和批量应用日志等技术的合理应用,在性能和可靠性等方面获得提升,通过测试验证,在保证数据可靠性基础上快速全同步技术的性能比Mysql半同步复制技术有较大的提升,这在分布式数据库某些场景下具有一定的应用价值.但快速全同步技术并没有对复制延迟的指标和影响做深入分析和研究 . 因此,在具体应用快速全同步技术过程中,如果业务对复制延迟有严格要求,需要评估后再根据实际情况使用