废布厂家
免费服务热线

Free service

hotline

010-00000000
废布厂家
热门搜索:
行业资讯
当前位置:首页 > 行业资讯

DTCC2017腾讯云CDB的核弹头TXSQL的研发实践和未来_[#第一枪]

发布时间:2021-06-07 11:29:16 阅读: 来源:废布厂家

5月11日,国内数据库技术盛会——2017第八届中国数据库技术大会(DTCC2017)拉开帷幕。本届大会以“数据驱动 价值发现”为主题,吸引5000多名IT数据库人群、大数据从业人员、广大互联网人士。腾讯高级工程师、腾讯云布道师张青林进行了题为《腾讯云CDB的核弹头——TXSQL》主题演讲。

嘉宾介绍:张青林,腾讯云布道师、MySQL架构师,隶属腾讯TEG-基础架构部-数据库内核研发团队,专注于MySQL内核研发&相关架构工作,有着服务多个10W级QPS客户的数据库优化及稳定性维护经验。

在本次主题演讲中,张青林主要从概览、内核研发、云上实践、未来发展方向四个方面介绍了Tencent MySQL(TXSQL)在腾讯云发展过程中遇到的各种问题,以及在解决这些问题的过程中TXSQL内核所做的一系列优化,包括read_view优化、Lock_log拆分、分布式token锁、Redo log锁拆分、Binlog限速等功能,从功能、性能和稳定性上对TXSQL进行深入的解析。

TXSQL内核版本拥有更高的性能、更强的稳定性,同时提供Oracle MySQL企业级版本才拥有的特性,对内支持集团内部业务的发展,对外提供强有力的竟争力,大大提升了腾讯云在业界的影响力,赢得了客户的信任与口碑,积极的推动了腾讯云的快速发展。

TXSQL概览

什么是TXSQL?为什么有TXSQL?

TXSQL是Tencent MySQL的简称,是TEG基础架构部CDB(Cloud DataBase)团队在近十年发展过程中衍生出来的一个对MySQL内核源码深度定制、对官方MySQL版本进行二次开发的项目。其主要目的是在保证线上稳定性的同时,满足业务对数据库的各种需求。

TXSQL的服务对象是公司内部用户和腾讯云上小至数G大至数百T的外部客户。TXSQL是支撑这些业务平稳运行的关键基石,促进开源数据库技术发展。

图1

TXSQL内核研发

TXSQL read view优化

read view又称读视图,用于存储事务创建时的活跃事务集合。当事务创建时,线程会对trx_sys上全局锁,然后遍历当前活跃事务列表,将当前活跃事务的ID存储在数组中的同时,记录最大事务low_limit_id&最小事务 high_limit_id&最小序列化事务low_limit_no。

当事务执行时,凡是大于low_limit_id的数据对于事务是不可见的,凡是事务小于high_limit_id的数据都是可见的,事务ID是read_view数组中的某一个时也是不可见的;Purge thread在执行Purge操作时,凡是小于low_limit_no的数据,都是可以被Purge的,read view是MySQL MVCC实现的基础。

Redo log优化背景

据介绍,MySQL有两种很重要的Log,分别为redo log&binlog,前者是保证事务原子性操作所产生的日志,后者是主备数据同步所产生的同步日志。其中binlog在ordered_commit时进行group commit,而redo log则是在事务提交的时候分别调用trx_prepare使redo log落地,导致log_sys->mutex竟争较为严重。

从crash recovery的逻辑来看,只要redo log早于binlog落地,就不会有数据问题,因此在ordered_commit的第一阶段时,TXSQL会收集各种引擎的最大redo log LSN,然后将小于该LSN的redo log落盘,从而提升写性能。更详细的分析与测试,可以参考bug#73202。

图2

TXSQL redo log双缓冲区

铁木砧板价格

创意家居用品代理批发

电子智能锁图片