文章出处: 鹅厂架构师
中国信通院:云原生虹吸效应初现
2021年7月,中国信息通信研究院发布了《云计算白皮书》,报告表示随着云计算的持续成熟,云原生虹吸效应初现,技术实践持续落地,行业应用加速,云原生技术生态完备,市场活跃,进入黄金发展期。
TDSQL-C“生于云上,长于云上”
在云计算基础技术设施数据库领域,腾讯数据库产品团队带来的云原生数据库TDSQL-C(原CynosDB),融合传统数据库和云计算技术优势,100%兼容MySQL和PostgreSQL,专为云而生,助力企业在云计算时代下的数字化转型,贯彻落实云原生技术生态建设。腾讯云原生数据库TDSQL-C(原CynosDB)“生于云上,长于云上”,其架构分为三层:
第一层,智能代理层(Magpie),包括无服务计算、读写分离、面向金融场景的全局一致性读、安全防护,使用智能代理Magpie完成。
第二层,数据库引擎(TXSQL),共三大部分,SQL引擎、多级BP缓冲和事务引擎。
- SQL引擎负责SQL查询,主要包含SQL解析、优化器、执行引擎等数据库处理核心功能;
- 多级BP缓冲负责提供多级高性能读缓存,加速数据库访问性能;
- 事务引擎负责事务管理、事务日志同步,实现完整的事务ACID能力;
TXSQL源于MySQL社区版,但在SQL引擎、事务引擎以及BP缓冲机制和源码上进行了自研,以便于满足云上游戏、电商、SaaS等业务场景要求。
第三层,高性能分布式存储系统HiSTOR,提供高性能、高可靠的存储底座。
(腾讯云原生数据库 TDSQL-C架构图)
采用计算存储分离架构
- 实现日志即数据库
把事务日志传递到底层存储引擎上,在分布式存储引擎里有DB插件,通过DB插件把事务日志还原成数据库的一个数据页,跨网络数据传输量降低90%,有效减轻了对网络基础设施的依赖。
- 高效的数据库引擎
传统数据库引擎如InnoDB,受限于架构限制,有很多无法规避的系统难题,比如,“刷脏”。“刷脏”就是把新写入到内存中的数据按照一系列策略写入持久化存储中。它涉及到BufferPool、WAL日志的联动,既耗CPU又耗IO,非常容易出现刷得太快导致IO忙,或者刷得太慢导致Query处理不及时。云原生数据库数据引擎层无任何脏数据,聚焦于把SQL语句变成执行计划,效率比传统数据库架构更优。另外,传统数据库架构只有内存一级,云原生数据库设置多级BP缓冲层,能够根据业务场景需要,在缓冲池尽量做最大的扩展,让所有数据访问尽量靠近用户,对性能帮助非常大。
- 无服务计算技术
基于云原生数据库的计算存储分离架构,当有SQL语句来了过后,代理层可以识别,当发现没有任何SQL语句来访问数据库引擎,智能代理层就会通知数据库引擎层,结束进程,用户不需要为之付费,真正做到不使用不计费,节省成本。
TDSQL-C助力开启极简运维
回归做云原生数据库的初衷,是为了让运维人员更省心,把精力聚焦到更有价值,更能帮助公司市值提高的地方去,开启云时代的数据库极简运维。怎么做到让数据库的运维变得简单,无论是生命周期管理、数据库管理还是质量的调优,本质还是回归到三个事情:质量、成本和效率。
质量
- 外挂式智能调参到内置式智能优化器
- 数据库系统逻辑准确证明体系
数据库依靠许多参数以及规则来执行命令,在应对变化时,难以作出最合理的解决方案,对此,团队做了两步。第一步是智能调参,通过深度学习的方法,快速地根据业务模型来预测出更专业的参数。调参过后,团队做了第二种尝试,智能优化器,数据库引擎自动生成最优的查询计划,从而更加高效省掉日常繁琐的SQL调优。
数据库是一个复杂的系统,因此数据库系统逻辑准确证明体系也必不可少。比如Oracle数据库的代码量大,新加入的代码需要经过高强度的测试验证,版本发布周期相对比较长;部分大厂成熟的数据库产品同样存在这个问题,代码量大,可维护程度低,数据库的质量逐渐变糟糕。云原生数据库也同样会有这样的问题。团队从方法论上完成了从测试用例到证明体系的升级,通过严格的逻辑准确性证明体系来保证架构设计和工程实现的正确性。
成本
- 端到端的Trim能力
- 副本->EC 压缩
成本是一个永恒的话题,云原生数据库得益于计算存储分离架构,其serverless特性按使用计费,不使用不计费。除此之外,端到端的trim功能,让无效数据及时回收,释放存储空间,从而降低存储成本。EC 压缩,在副本减少(存储容量减半)的情况下保证同样的数据可靠性,云原生数据库会做到透明压缩,对SQL语句不感知。
效率
- 完善的instant/parallel DDL
- 基于redo的分布式PITR能力
数据库运维人员工作中经常要创建添加索引或添加、更改字段。云原生数据库对此有两个完善方式。第一个是用异步思想做instant的DDL,当添加更改索引或字段时,只需要改动元数据,实现整个元数据的多版本从而保证DDL毫秒级完成,同时实现DDL的并行执行框架。第二个是回档,传统数据库受限于计算机体系结构,回档速度取决于网卡,云原生数据库有分布式的恢复能力,不受限于架构,其底层存储分散到多台节点上面。
目前腾讯云原生数据库在线上也经历了大规模运营的验证。单实例层面,存储超过50TB、QPS峰值超过100W;规模上也到达了万级别规模实例数,Y2Y增长超过3400%,覆盖游戏、电商、直播、金融、SaaS等行业。从线上运营质量上看,云原生数据库TDSQL-C的主从延迟保持在微秒级别,扩缩容耗时保持在秒级,HA/RTO等核心指标也跨越式进入到单s时代。
助力共建云原生技术生态
在《2021云计算白皮书》的最后,中国信息通信研究院发出“长风破浪会有时,直挂云帆济沧海”的豪言,对云计算的未来充满信心,相信云计算必承担起数字化发展的重担,助力数字中国的建设。腾讯数据库研发中心的slogan“聚力协同,征战云海”与之不谋而合,目标一致。腾讯云数据库研发负责人程彬表示“云计算代表未来技术的一种趋势,cloud native就是代表着未来。腾讯云原生数据库一直围绕数据库极简运维、Low Database业务开发的理念, 助力企业在云计算时代下的数字化转型,贯彻落实云原生技术生态建设。“
腾讯数据库技术团队对内支持QQ空间、微信红包、腾讯广告、腾讯音乐、腾讯新闻等公司自研业务,对外在腾讯云上依托于CBS CFS的底座,支持TencentDB相关产品,如CynosDB、CDB、CTSDB、MongoDB、CES等。腾讯数据库技术团队专注于持续优化数据库内核和架构能力,提升数据库性能和稳定性,为腾讯自研业务和腾讯云客户提供“省心、放心”的数据库服务。此公众号旨在和广大数据库技术爱好者一起推广和分享数据库领域专业知识,希望对大家有所帮助。
↓↓点击进入【腾讯云云原生数据库 TDSQL-C】