深入解读腾讯云数据库自研内核

来源: 云巴巴 2022-02-24 10:24:34

     TXSQL 是腾讯云数据库团队自研 MySQL 内核分支,100%兼容原生 MySQL 版本,针对企业级的重要场景自研众多核心特性,如企业级透明数据加密、审计、线程池、热点更新保护、SQL 限流、快速加列等功能,大幅提升了云数据库的性能和稳定性,保证线上稳定性的同时,满足业务对数据库的各种需求。

 

 

     TXSQL 的服务对象是公司内部用户和腾讯云上小至数G大至数百T的外部客户,是支撑这些业务平稳运行的关键基石,在服务用户的同时,也打造了腾讯自己的MySQL分支。

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

TXSQL内核研发 主要包括以下工作:

  1. 数据库性能调优;

  2. 对内核进行深度改造,满足应用需要的性能要求,在活动促销时保证数据库的平稳运行;

  3. 满足业务需要的各种功能需求;

  4. 实现资源管理需要内核支持的功能;

  5. MySQL DBA 在运维过程中需要的诊断相关的功能;

  6. MySQL 在运行过程中存在的问题定位并修复影响系统运行的内核Bug;

  7. 保证数据库系统的安全,保证云上用户数据的安全;

     作为云上客户的服务者,我们必须有及时响应用户并解决各种问题的能力,也应该满足用户的各种合理要求,对内支持业务的快速发展,满足业务要求;对外为腾讯云提供强有力的竞争力,这就是 TXSQL 内核存在与发展的目的。

TXSQL演进之路 

& 整体架构

TXSQL的演进之路

  • 最早的TXSQL是MySQL官方5.1版本,腾讯云数据库内核团队提供了简单的bugfix。

  • 5.5版本到5.6版本,团队不光是做了适配云平台的工作,还开发了许多支持DBA运维方面的工具,包括读写方面的优化。

  • TXSQL5.7版本目前是整个腾讯云数据库服务用量最大的一个版本,加入了许多企业级的特性,比如审计、压缩,还有线程池等。同时在5.7版本之后,我们做了云原生数据库TDSQL-C(原CynosDB)的内核。

  • 最新的TXSQL8.0版本,有了索引的列存引擎,还有AEP新硬件设备引擎优化以及更多的特性和优化。

 

TXSQL的整体架构

 

   下图为TXSQL内核的整体架构。客户端进来之后通过线程池,Server层,然后会访问存储引擎层。

 

 

   存储引擎层目前支持多种引擎,包括传统的InnoDB,自主研发的CStore列存引擎,还包括RocksDB,以及MySQL官方原来就内置的MyISAM之类的存储引擎,这是核心部分。

   底下是独立的高性能SSD(本地存储磁盘)。审计系统,通过团队基于官方审计API 研发的审计插件提供审计服务;透明数据压缩插件,提供数据加密、解密的企业级特性;半同步复制插件,通过binlog把数据复制到从实例,然后会做一些备份或者是RO实例、只读实例。

TDSQL-C内核整体架构

     云原生数据库 TDSQL-C(Cloud Native Database TDSQL-C,TDSQL-C)是腾讯云自研的新一代高性能高可用的企业级分布式云数据库。融合了传统数据库、云计算与新硬件技术的优势,100%兼容 MySQL ,实现超百万级 QPS 的高吞吐,128TB 海量分布式智能存储,保障数据安全可靠。其内核的主要特点是存储和计算分离,快速的弹性扩展能力等。

 

 

自研列存引擎

自研列存引擎,服务OLAP复杂场景

         数据库中存在两种典型的业务访问场景,一种以在线事务处理为主,称为OLTP(On-Line Transaction Processing);另一种以在线分析处理为主,称为OLAP(On-Line Analytical Processing)。OLAP业务的主要特点是有较多的查询操作,写操作占比很低,并且大多数写操作是数据的批量导入和数据的批量删除或更新。并发的事务数相对OLTP要少很多,而且事务的响应时间要求相对比较低。

 

腾讯自研列式引擎主要是为OLAP场景(数据分析场景)提供服务。列存引擎有以下特点:

  • 列式存储:数据按列存储而不是按行存储;查询时无需访问无关列,减少大量 IO

  • 高压缩比:压缩比平均在10比1,可以大大减少存储空间

  • 快速加载:支持 MySQL 标准的 LOAD 语句;多核并行处理,加载速度可达 INNODB 的 10 倍

  • 执行引擎:支持查询任意多列的组合;单节点可支持百亿行记录的秒级查询;支持多种JOIN算法,包括HASH JOIN

  • 查询优化:查询时利用多种形式的稀疏索引过滤数据;维护数据的统计信息,聚合类查询预计算

  • MySQL兼容:SQL 语法全面兼容 MySQL 8.0;兼容 MySQL 工具和应用,例如phpMyADmin等;支持XtraBackup 物理备份和恢复。

 

业界首创秒改列

业界首创秒改列等更多企业级特性服务B端用户

     大家都知道,Instant DDL这个patch也是由腾讯数据库团队进行研发并贡献给官方的,并且官方在8.0提供了这个特性。在腾讯云TXSQL内核里不仅支持了这个特性,而且在此基础上进行了进一步增强。

     Instant DDL特性,可以快速增加字段。而修改列也是用户执行比较频繁的DDL之一,而且此操作会长时间阻塞用户的读写请求,对业务的影响非常大。TXSQL及TDSQL-C内核业界首创,支持了instant modify column功能,达到了秒级修改列的效果。

具体的实现方式是:

  • 元数据多版本化, 表元数据保存列的多个版本信息,用户只能看到的总是最新的表元数据。

  • 行记录增加版本信息对应到不同版本的表元数据上。

  • 修改列只修改元数据,修改列的过程中不修改实际的行记录。

  • 行记录读取时,老版本记录会自动转换为最新版本的记录。

  • 行记录更新时,老版本记录会自动更新为最新版本的记录。

 

更多企业级特性服务B端用户

高可用-物理复制(TDSQL-C内核):TDSQL-C内核实现了基于redo log的物理复制,同步主从的数据页面修改;复制速度快;主从数据保持物理一致。

   高可用-秒级RTO:Buffer pool秒级初始化,20倍提升;Crash recovery秒级构建表锁;并行初始化回滚段(已贡献官方MySQL),9倍提升;秒级Shutdown。

 

弹性扩展-Btree一致性读优化(TDSQL-C内核):InnoDB的数据以Btree方式来组织的,Btree在数据的更新过程中会发生SMO操作(即btree的分裂或合并),优化后备库读不会被主库更新产生的SMO操作所阻塞。

    性能优化方面,面向非易失性存储进行写加速、线程绑核、兼容冷热日志分离管理。最终效果:单机场景,有redolog,性能提升15%;主备场景,有redolog&&binlog,性能提升50+%;同步场景,主机有redolog&&binlog,备机redolog&&relaylog,性能提升60+%近,在sync_relay_log为=1,强同步场景,性能提升2221%。这是基于新硬件的一种专门优化,极大提升整体数据库内核的性能。

 

 

热点更新:内核级解决秒杀场景下的热点数据更新问题;一键开启,用户无需修改任何应用层SQL。

 

功能发布层层把关,未来发展以稳定性为首

   目前TXSQL系统内核的开发,已经逐步形成了一个比较完善的研发体系。体系里面包括需求评估、代码设计方案、设计方案的评审、代码开发、代码测试、上线之前的评审、灰度,还包括最终上线后的跟踪。在整体流程上做到了相对完善。

   从需求来讲,目前大部分需求基本上是来自于用户在线上碰到的实际问题,腾讯云数据库内核团队进行有针对性的解决。需求到我们这边之后会进行评估,接着基于需求的优先级安排开发顺序以及设计方案的评审。设计方案的评审由资深的内核开发团队人员来进行。

   开发完之后进行测试,测试是开发流程中非常重要的一环。目前一个需求的测试,会包括专有的、有针对性的专项功能测试;上线之前的通用测试;真实模拟云上环境的一些测试等等。

    测试过后灰度上线,邀请客户来试用,验证功能的可用性是否符合需求,灰度完之后才会真正上线。上线之后会跟踪功能的实现情况,遇到bug及时响应解决。

这就是我们从需求到发布层层把关的整个过程。

 

 

     数据库内核以稳定性为主,因为TXSQL目前线上的实例有超过十万,庞大的实例规模以及海量用户,一旦出现问题,后果是不堪设想,所以首先是要做到稳定性。在保证稳定性的前提下,再去进行特性的研发和性能优化,这样未来我想应该还是以三大方向为主:

1. 保持稳定性,客户线上、线下碰到就是所有问题及时解决。

2. 企业级特性的研发,解决DBA运维当中碰到的比较棘手的问题。

3. 性能优化,数据库的内核性能做到更好更强。

 

更多产品了解

欢迎扫码加入云巴巴企业数字化交流服务群

产品交流、问题咨询、专业测评

都在这里!

 

评论列表

为你推荐

分布式数据库和并行数据库相比有什么区别?

分布式数据库和并行数据库相比有什么区别?

从整体架构来看,分布式更加看重大数据量批量处理的吞吐能力。同时,分布式具备MPP所缺失的批量任务进行调整发展能力,数据的多副本存储使其成为具有“本地化”数据信息加工的备选节点,而且数据加工处理与数据存储并不绑定,可以根据不同节点的运行效率动态调整任务分布。

2020-04-16 17:45:26

10个关于数据库设计的最佳实践(下)

10个关于数据库设计的最佳实践(下)

10个关于数据库设计的最佳实践。 规范化是关键 数据库的规范化指的是将数据库中的所有信息进行组织发展起来,避免数据可以重复和冗余。简言之,将归一化的数据被分成多个较小的分布相关的表中的,而不是一个大表的所有

2022-11-22 15:48:22

数据库安全技术和数据库防火墙技术

数据库安全技术和数据库防火墙技术

数据库防火墙是继承传统防火墙,下一代防火墙的安全。专门针对数据存储的核心——数据库的一款安全防护产品,目前,数据库防火墙技术原理如下。

2020-03-24 16:54:34

新基建背景下,分布式数据库从数字化到智能化的变革

新基建背景下,分布式数据库从数字化到智能化的变革

而疫情下产业互联网的爆发释放正迎合了 “新基建”的窗口期,带着时代的烙印,“新基建”进程加码提速,将为各大产业转型增添了网络化、数字化、智能化的“成色”,为经济转型升级注入“数字动力”。

2020-04-16 18:14:48

腾讯云MySQL云数据库,多种类型满足用户使用需求

腾讯云MySQL云数据库,多种类型满足用户使用需求

腾讯云MySQL云数据库和普通的云数据库相比具备这些优势,首先是企业级定制核心T-XSQL能够大幅度提升云数据库的性能以及稳定性,作为企业级的云数据库服务,腾讯云MySQL云数据库还具有企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维等

2022-11-24 14:03:35

简单说一下关于数据库的艰难进阶之路

简单说一下关于数据库的艰难进阶之路

1999年,中国的互联网是创世纪;科学的真正的与合理的目的就是在于造福于人类社会生活,用新的发明和财富丰富我们人类文化生活。 我的国家现在正领导着世界上已经有多种科技成果,让我们感到骄傲自豪!而这条路我们走的并不是一帆风顺的,下面小编就来带大家一起来看一

2022-11-22 15:48:57

严选云产品

沃丰科技AI企业知识中台 沃丰科技一体化AI知识中台基于自研“原心引擎” 、KCS知识库、知识图谱、企业搜索、自然语言处理等AI核心技术而打造的智慧“企业大脑”,为企业提供智能化、全周期的知识管理平台,帮助企业实现数字化、智能化升级,助力企业依托数据智能精准决策,实现企业的生产和服务数字化转型。
左手医生智能问药 左手医生智能问药系统根据患者生理信息、病情、合理用药模型智能推荐药品。可应用于医药电商、在患者购药前或者有用药疑问前提供问药服务,实现精准导流,精准推荐。
KC-CMDB资产配置管理系统 KC-CMDB资产配置管理系统自动发现工具定期盘点环境数据,提高资产配置台账的准确性,避免失真误导;二维码+手机盘点帮助IT人员提高配置维护效率,防止账实不一致。提供设备关联关系拓扑图查询以评估影响范围,定性事件处理优先级别;提供配置变更轨道查询
IP-guard桌面行为管理解决方案 IP-guard桌面行为管理解决方案用来帮助企业强化信息安全和提升员工工作效率。该软件通过实时监控员工的计算机操作行为,包括屏幕活动、应用程序使用、网页浏览、文件操作等,为企业提供详细的审计报告。同时,IP-guard支持对敏感数据的加密保护,防止数据泄露。此外,它还具备远程控制功能,允许管理员远程协助或控制员工电脑。通过策略设置,IP-guard能够限制非授权应用程序的运行,规范员工的上网行为,确保企业IT资源的合理使用。
的修后勤售后管理系统 的修后勤售后管理系统,基于云计算、大数据、人工智能等技术建设校园的云报修管理系统,实现师生便捷报修、节省人力、物力成本,精简流程,为精细化管理、人性化服务提供有效工具。整合维保信息,实时跟踪,提高设备运用维修效率,确保设备良好运营状态。
安科瑞分布式光伏发电系统 安科瑞分布式光伏发电系统,最终并网电压等级应根据电网条件,通过技术经济比选论证确定。若高低两级电压均具备接入条件,优先采用低电压等级接入。分布式光伏发电项目可以专线或T接方式接入系统。380V、10kV接入的分布式光伏发电可采用无线公网通信方式。

甄选10000+数字化产品 为您免费使用

申请试用