OneSQL for MySQL

100%应用兼容,OneSQL在MySQL官方版本和Percona版本基础上进行定制,所有补丁均已提交官方,并经官方审核。融合了十多年在互联网电商与支付行业的数据库管理和架构经验,优化了MySQL的事务处理速度,以及高并发下的性能和稳定性,使得更多的客户可以享受到互联网行业开源数据库的技术红利。仅需要安装OneSQL for MySQL软件包,并用原有的数据文件进行起动,无须进行数据导入导出。正在使用MySQL数据库,并且遇到性能或并发问题困扰的用户,强烈推荐测试和偿试OneSQL分支,无效重起切回源生版本即可。

资源隔离机制,OneSQL内置多个运行队列,可以将数据库操作按类型进行并发控制,以避免读写相互干扰,或者复杂的SQL语句将资源用尽,影响业务稳定性。此功能对应用完全透明,无须更改任何应用代码,也不需要应用对不同操作进行排队,简化应用开发要求,提升系统稳定性。有效节约CPU资源,使得单物理机可布署更多的MySQL实例。

并发控制机制,OneSQL可以限制并发工作的连接数,从而做到数千连接下性能无衰减,从而杜绝高并发请求下的应用雪崩,影响业务连续性。此功能对应用完全透明,无须更改任何应用代码,也不需要应用对不同操作进行排队,简化应用开发要求,提升系统稳定性。热点商品队列可以在关系数据库上完美解决高并发和数据准确性的问题,确保库存或账户余额准确性。

事务性能提升,OneSQL对慢IO设备(如SAN存贮、分布式存贮、云盘)上的事务处理能性能有数倍的提升,OneSQL不使用SSD/Flash一样可以有出色的写入性能,将MySQL运行在共享存贮上可以充分保证数据的安全性,而不必担忧过长的IO链路带来的并发性能下降。

实时数据保护,OneSQL禁止调整trx_commit和sync_binlog参数,确保所有日志实时刷出,避免关键业务场景的不安全设置。优化备库的IO线程和SQL线程的锁冲突,确保备库可及时接收Binlog日志,增加数据保护。增加最大保护模式,在Binlog日志回放成功后响应客户端事务请求,确保主备库之间无时延,可随时进行主备高可用切换。

read more

提升并发性能

OneSQL引入了线程池机制来提升并发性能,又根据不同SQL操作类型引入多个线程池队列,来隔离不同操作之间的相互影响和干扰,以充分发挥MySQL的读写性能,并可对复杂的SQL进行资源控制,对应用完全透明。

OneSQL还优化了锁冲突下的线程池性能,有力地提升了事务的并发处理能力。采用sysbench的oltp模型(20张表,每张表200000条记录)进行压测(开启Binlog),结果如图所示。OneSQL从64个并发到2048个并发时,总体TPS处理能力保持恒定,可以有效支撑业务促销高峰; 而源生的MySQL 5.6从256个并发后,性能开始急剧下降,遇到业务高峰易引发应用雪崩效应

OneSQL让应用无须精心考虑数据库的限流机制,由于应用的虚拟化,布署的实例数较多,单个应用实例上的限流机制并不能有效地保护数据库;OneSQL通过将互联网应用的并发限流经验沉淀到数据库层,可以让所有应用受益,提升应用承受业务高并发的能力。

/

提升事务性能

/

OneSQL引入类似Oracle数据库的独立日志线程,用以实时刷出InnoDB日志和Binlog日志,并借签Oracle的Log Buffer的机制优化了锁处理,有效提升了MySQL事务提交的性能,成为读写性能皆非常出色的数据库。

OneSQL在普通磁盘(SAN存贮、Ceph云存贮)上的事务处理性能可以提升三倍以上,即使在PCIE Flash设备(开启Binlog)上,测试sysbench的update non index场景时,如图所示,总体TPS也有20%的提升,并能显著降低CPU的使用率, 使单物理机可以运行更多实例,提升资源效率。

OneSQL让应用无须担心MySQL的事务处理能力,无须过份分片(Over Sharding),增加运维管理的复杂度,并对应用完全透明,结合OneSQL特有的多个线程池机制,可为上层应用和业务提供出色的数据存取服务。

实时数据保护

OneSQL采用独立日志线程后,无须担心事务提交性能,不再需要通过调整trx_commit和sync_binlog参数牺牲数据安全性来提升性能,并确保InnoDB和Binlog日志均实时刷出,简化了参数设置,避免关键业务场景的不安全参数设置,确保数据安全。

OneSQL提升了Slave的处理效率,通过优化备库的IO线程和SQL线程的锁冲突,确各个线程可无干扰地并行工作,提升备库接收Binlog日志效率;并可使主备等待备库Binlog回放结束后响应客户端事务,确保主备库之间复制无时延,可随时进行主备高可用切换。

OneSQL采用异步事务提交机制,优化了备库回放Binlog的速度,相比其他版本可提升200%至400%的性能(在MySQL 5.7的并行恢复功能上同样有效),可缩短主备库之间的复制时延,提升主备库之间的数据保护等级。

/

秒杀场景优化

/

OneSQL在提升并发性能和事务性能后,可淡定地面对互联网特色的秒杀场景,高效地处理大量用户争抢同一商品的情况。在500个并发更新同一条记录的情况下,如图所示,OneSQL极具优势, 无须将商品库存或账户余额迁移到无事务机制的Redis缓存中,牺牲数据的持久性和一致性来提高并发性能。

OneSQL可针对不同类型的操作分别进行并发控制,也可以通过热点队列对不同的记录进行并发控制,可以有效隔离热点商品对其他商品的影响,不因为少数几个商品影响整体的交易量。