前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TXSQL Internals @2018

TXSQL Internals @2018

原创
作者头像
腾讯云数据库 TencentDB
修改2018-11-09 18:41:42
7130
修改2018-11-09 18:41:42
举报

腾讯云资深架构师王少华日前在 2018 开源数据库论坛(ODF)暨首届MariaDB中国用户者 大会上做了主题为“TXSQL Internals @2018”的主题演讲,本次分享从五个方面介绍TXSQL。

第一部分 腾讯云和TXSQL的概念

腾讯云作为国内云计算领先公司,全球建立500多个数据中心,超过百万数量的开发者在使用腾讯云。

腾讯云数据库TencentDB(曾用名:CDB)是腾讯云提供数据库产品和服务的总称,提供一整套的解决方案,包括用户上云,数据迁移、备份、恢复、升级等操作,相比于传统用户来构建数据库服务,减少了投入的同时也方便使用。TXSQL 是 Tencent MySQL 的简称,是 腾讯TEG 基础架构部 团队在近十年发展过程中衍生出来的一个对 MySQL 内核源码深度定制、对官方 MySQL 版本进行二次开发的项目。TXSQL内核版本拥有更高的性能、更强的稳定性,同时提供 Oracle MySQL 企业级版本才拥有的特性,对内支持集团内部业务的发展;对外通过TencentDB for MySQL提供服务,提供强有力的竟争力,助力腾讯云的快速奔跑。在腾讯云的发展过程中,为其保驾护航,积极的推动了腾讯云的快速发展。

腾讯云数据库TencentDB for MySQL服务于各行各业,包括游戏、电商、银行、证券、物流、政府、零售、工业、还有传统企业等。

TXSQL是数据库内核团队独立维护的MySQL 分支,对外通过TencentDB for MySQL服务提供给客户。可以看到TXSQL是内核,也是底层提供数据服务的位置。

第二部分 TXSQL可用性改造

MySQL 作为最受欢迎的开源数据库,也是云上使用最多的数据库,不同的业务场景对数据库有不同的功能需求与性能需求,这样就决定了数据库本身的多样化需求,同时 MySQL 在不同使用场景下所衍生出来的各种问题,也影响着线上的稳定性,TXSQL在可用性上做了以下改造:

1. Aysnc Drop Table

删除文件较大的表时,IO资源会被较长时间占用,出现峰值。为了避免这种情况,我们做了以下优化,避免IO峰值。

1) 将ibd文件重命名为临时文件;

2)每次在后台按固定大小(例如128M)截断;

3)最后删除它。

2. ALTER TABLE NO_WAIT | TIMEOUT

DDL 在执行过程中需要获取对应的表锁,然后进行操作,如果此时有事务获取表锁,则会造成此语句的阻塞,而后绪操作此表的请求也会被此 DDL 阻塞,因此我们引入了 Oracle 中的 alter table 超时失败的功能,即 alter table …. [nowait | wait for n] 的功能以降低 DDL 对线上的影响,oracle 中 select for update [nowait|wait for n] 则可以通过设置参数 innodb_lock_wait_timeout 来实现。因篇幅有限,此处仅列出一部分优化。

3. INFORMATION SCHEMA : METADATA LOCKS

此优化大大提高DBA在数据库的诊断效率。

第三部分 性能优化

除了可用性以外,TXSQL还在性能方便做了大量优化。

1. Replicaiton优化

1)Slave Lock Split

2)Slave IO Optimization

3)Parallel Replication

2)Query Optimizations

3)InnoDBRead View Optimization

第四部分 企业级特性

而在功能方面,我们实现官方版本所没有的功能,满足各行各业企业的要求,比如加密、审计、线程池,并行复制。首先是审计功能,官方的版本是没有审计这个功能的,只有企业版才有,我们结合自己的实际情况,为了保证用户的性能,我们做了一个audit的插件,从而保证性能的同时实现了用户所需要的功能。加入审计后,性能损耗低于5%。

金融行业对合规要求较高,加密是必备功能。TXSQL结合腾讯云的KMS和CAM,提供一整套数据库加密解决方案。其中腾讯云提供的KMS(Key Management System)管理和存放密钥,CAM(Cloud Access Management services)做用户权限控制,TXSQL提供lKerying Plugins和lKeyring_kms 两个插件。目前此解决方案已为大量企业所采用。

我们第三个是thread handling,我们在测试压力测试的时候,随着并发的加大,性能会首先提升,然后下降,原因则是系统内部各种资源的竟争比较严重,TXSQL 通过把 Thread Pool 引入来解决这个问题,并且解决了以下几个问题:

解决了Threadpool 情况下全局读锁所造成的死锁问题

解决了 Dump 线程对于Thread Pool 的影响

添加新的 Information Schema 表来观察ThreadPool内部的运行情况

第五部分 TXSQL未来的发展方向

在未来的发展过程中 TXSQL 仍然会以用户为导向,保持稳定性,性能调优和功能实现的基础上,从以下方面不断的进行改进:

  • 智能化
  • 分布式
  • 新硬件
  • 存储和计算分离

更多前沿数据库技术和案例分享,请关注我们的微信号:腾讯云数据库CDB

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MongoDB
腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档