ACMUG年会,腾讯云揭秘TXSQL内核建设之路
2017年12月9日至10日,腾讯云受邀参加国内MySQL技术领域影响力最大的技术盛筵—ACMUG年会。
来自腾讯技术工程事业群基础架构部的腾讯云数据库专家张青林在会上分享了腾讯自研 MySQL 分支 - TXSQL 的经验。张青林一直专注于MySQL内核开发和相关架构工作,服务于腾讯公司自研产品业务和腾讯云业务。本次分享主要从性能优化、企业级特性和线上稳定性等多个维度进行详细的介绍,并且对 TXSQL 在未来的发力点进行了阐述。
作为腾讯规模最大的 MySQL 数据库服务,CDB 在腾讯云上也是最受欢迎的关系型数据库产品。CDB 不仅具备备份回档、监控、快速扩容等数据库运维的全套解决方案,而且拥有深度定制的内核版本 Tencent MySQL,简称TXSQL。
TXSQL内核版本拥有更高的性能、更强的稳定性,同时提供 Oracle MySQL 企业级版本才拥有的特性,对内支持集团内部业务的发展,对外提供强有力的竟争力,助力腾讯云的快速奔跑。
TXSQL 在腾讯云 CDB 中所处的模块和作用以及 TXSQL的 发展,既是为了解决腾讯云日益增长的规模以及各行各业对数据库不断增长的高要求,也是为了解决用户在日常运维中遇到的问题,提升用户产品体验。
虽然TXSQL最近才对外露面,其实早在腾讯云尚未开始对外服务的时候,TXSQL就已经作为腾讯内部的MySQL分支再开发维护,一路从5.1,5.5,5.6,5.7至今,并且正在整合研究8.0的新特性。刚开仅仅针对TXSQL做一些bug fix,并提交到社区,以及做一些和内部OSS系统整合的能力。随着集群规模的逐渐扩大,一些优化逐渐被整合,同时,也吸收了MariaDB以及Percona的版本特性。
随后,云业务迅速发展,对TXSQL提出了更高的要求,在账号体系,秒级监控,系统调优,以及锁优化,结合大内存、PCIE卡的优化等大量出现。
TXSQL 在性能、企业级特性、稳定性方面做了大量的研究,特别是在 Innodb Redo、Replicaion 性能优化、强一致等方面。
例如,众所周知,Redo log是MySQL几个重要的日志之一,所有对引擎的提交,都会涉及到该文件的操作。腾讯云TXSQL团队优化了这里的并发读写能力,并以双缓冲buffer来加速,同时配以并行复制优化,让引擎能力得以最大限度发挥。在云条件下,数据库大都有主从配置,半同步网络访问优化,以及大锁拆分也提高了整体系统的性能。
另外,不同于大多商业数据库,MySQL的引擎层是单独出来的,虽然层次更加清晰但同时这里层次之间的交互却容易影响性能。因此,腾讯云做了计算下推的工作,把一些查询需要计算的地方,放到引擎层做,减少了引擎和SQL层的交互,降低RT的同时提升性能。
TXSQL 在复制方面的优化同样达到了很好的优化效果,其中io重构,table map log event 的缓存等特性得到了官方的肯定和认可。
本次分享中,腾讯云还分享了TXSQL 最新的一些技术点和以后的发展及发力点,如批量计算、执行计划缓存、AI+Query、RocksDB 支持等。作为MariaDB Foundation的白金会员,腾讯云将会把一些原创的内核特性集成到社区版的MariaDB上去,相信很快就会与大家见面。
同时在本次年会上,腾讯云还透露了后续TXSQL内核的部分规划,比如基于数据库内核的审计、数据加密等往常企业级数据库才有的功能,即将上线和大家见面。