乐趣区

关于sql:腾讯云原生数据库-TDSQLC荣获云原生卓越技术提供商奖项

TDSQL- C 再创佳绩

9 月 16 日,Distributed Cloud|2021 寰球分布式云大会在上海召开,腾讯云原生数据库 TDSQL- C 荣获“云原生卓越技术提供商”奖项,TDSQL-C 是腾讯自研的云原生分布式数据库(原 CynosDB), 基于共享存储,实现了弱小的扩大能力和超百万级 QPS 的高吞吐性能,深度定制的数据库内核 TXSQL 是撑持要害业务安稳运行的基石。

TDSQL- C 的总体架构是基于共享存储,存储和计算拆散的架构。

1. 传统的 MySQL 主备通过 binlog 进行的逻辑复制,而 TDSQL- C 是通过 redo 日志进行的物理复制。

2. 传统的 MySQL 须要向存储写多份数据包含 data,binlog,redo log,而 TDSQL- C 只需向存储写一份 redo 日志即可。

3. 传统的 MySQL 主备各存储一份数据,而 TDSQL- C 基于共享存储只有一份数据。

TDSQL- C 具备以下要害个性:

1、可靠性

多正本 /RPO=0

存储多正本保证数据高牢靠

共享存储,主备数据统一

即时回滚,任意工夫数据都牢靠

2、高性能

极致性能

主备机读写性能全面优化

不同规格针对性优化

绝对传统 MySQL 有 6 倍晋升

3、高可用性

秒级 RTO

秒级 RTO,故障简直无感知

毫秒级主备提早,数据极速同步

共享内存,数据恢复,疾速预热

4、弹性扩大

得心应手

数据疾速、通明扩大,按需应用

大容量 1PB,满足“大”需要

来自官网的屡次认可

在 MySQL 官网近几次 release notes 中都有腾讯云数据库内核团队的重要奉献,也意味着腾讯云数据库内核技术 TXSQL 在国内是走在前列的;2020 年底,腾讯云数据库内核团队又获 MariaDB 社区的官网感谢信,对团队的奉献予以感谢。

TDSQL- C 的要害个性之高可用 - 秒级 RTO,能够达到故障无感知。

过往 buffer pool 大实例重启,初始化耗时长,用户体验差,对此的团队给出优化计划是:并行初始化加上 page 上的 mutex 提早初始化。

并行初始化是指按 innodb buffer pool instance 来并行初始化。

page mutex 提早初始化,是指当 page 首次应用时才初始化,而不是在启动时全副都初始化。

优化后的后果是之前 500G buffer pool 初始化从 23s 降到了 1.3s,晋升近 20 倍。

这个优化计划奉献给了 MySQL 官网(lmprove lnnoDB buffer pool initialization)

腾讯云数据库内核团队始终保持以稳定性为第一位,保障了线上服务的可用性达到 99.95%,可靠性达到 99.9996%,同时,深入研究技术细节,继续优化零碎性能,使得数据库内核 TXSQL 的性能远超官网版本,并达到业界领先水平。

业界独创,蓄力技术创新

在官网 MySQL8.0 反对 instant add column 后,批改列类型操作便成为 MySQL 中最不敌对的 DDL 类型。而在用户实际中,批改列类型也是用户执行比拟频繁的 DDL 之一,此操作会长工夫阻塞用户的读写申请,对业务的影响十分大。

TDSQL-C 业界独创,翻新地反对了 instant modify column 性能,达到了秒级批改列的成果。具体的实现形式是:

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

2. 行记录减少版本信息对应到不同版本的表元数据上。

3. 批改列只批改元数据,批改列的过程中不批改理论的行记录。

4. 行记录读取时,老版本记录会主动转换为最新版本的记录。

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

此计划为业界独创

TDSQL-C 批改列能够毫秒级实现,并且不受数据量大小的影响。

该性能解决了云上业务的痛点问题,补充了官网和开源社区在批改列上的有余,欠缺了整体的 Online DDL 性能体系。

除此之外,TDSQL- C 其中的很多个性都是业界当先甚至是独创的亮点个性,并有多项申请了专利。比方:热点更新性能,通过存储引擎行锁级别的优化,大幅度优化了秒杀场景下的零碎性能,此个性为业界独创,并申请专利。再比方:内核 TXSQL 的审计性能,通过异步形式优化了数据库审计日志的记录形式,使得审计性能业界当先。团队泰而不骄,蓄力并进,加大研发力度助力简化企业对数据库的治理、保护和更新,真正做到开发者只“应用”数据库,而不是被数据库繁琐的工作所困扰。

解决 MySQL 历史顽疾,Puege 预读机制

Undo 空间收缩问题是 MySQL 历史老大难问题,TDSQL- C 翻新地通过 purge 预读解决了此问题。

问题起因

Purge 会读取 undo page 并清理 delete mark 的记录,清理实现后会开释 undo page,从而最终开释 undo 表空间。

IO bound 场景或 Buffer pool 比拟小的实例,purge 时读取 undo 更容易呈现 IO。而 IO 时占用工夫比拟长,导致 purge 不及时 undo 日志空间收缩。

解决办法(实现 purge 预读机制)

依据事务提交程序在内存中保留 undo page 的 purge 程序用于预读。

Purge coordinator 异步预读这些 page。

精耕细作,谋求卓越

有翻新力量,也有操之过急的技术底盘。TDSQL- C 在高性能、高可用、弹性扩大方面同样精耕细作,谋求卓越。

TDSQL- C 高性能

plan cache 实现查问打算缓存,以 sysbench 场景为例,通过 plan cache 优化后,解析和查问优化工夫缩小了,性能晋升了 70% 左右;在线程池的根底上进行了异步组提交优化,将线程池资源提起开释从而可能去解决更多的申请,优化后整体的读写事务 QPS 有 70% 的晋升;Log Compaction,在计算存储拆散的架构下,日志即数据库,对日志构造进行了一些压缩优化后,redo 日志量减少了 30%。

TDSQL-C 高可用

采纳 redo 物理复制,基于共享存储,主备数据物理统一,低延时、低损耗;在数据复制做备份提早优化,其中备库查问时 IO 过程不阻塞 redo 的回放,主备提早做到毫秒级别;计算节点 HA 重启后,buffer pool 须要从新加载进行预热,持续时间比拟长,期间业务会受到较大影响,TDSQL- C 反对独立 Buffer pool 无需预热,缩短了重启工夫。

TDSQL-C 弹性扩大

TDSQL-C 目前反对最多扩大 16 个备库,备库能够提供读服务,Btree 一致性读优化后,备库读不会被主库更新产生的 SMO 操作所阻塞。不会被主库更新产生的 SMO 操作所阻塞。

向云而进,持续增长

目前,TDSQL- C 云原生数据库内核 TXSQL 在寰球范畴内已有近数万客户,经营公司最大的数据库集群。在云上也为拼多多,B 站,微盟等不同行业的超大型客户提供了稳固牢靠,性能优异,功能强大的企业级云数据库服务,与此同时,通过自研上云和开源协同,TXSQL 也强力撑持和保障了诸如:微信红包、微信领取、QQ 音乐,腾讯会议等大型外部业务。

作为云原生技术先驱,腾讯云数据库内核团队在产研共建与生态交融上不遗余力,聚焦市场与客户需要,把技术概念更好地落地实现;兼容并包,增强与开源社区的分割,继续奉献技术力量,为各行各业带来全新的业务价值与技术劣势。

向云而进,持续增长,TDSQL- C 持续为社区和生态倒退奉献本人力量,以翻新技术摸索数据管理的有限可能。

退出移动版