腾讯新一代企业级云数据库CynosDB(NewCDB)

CynosDB产品简介。CynosDB,又称NewCDB,是由腾讯云和TEG基础架构部数据库技术团队联合打造的面向云计算2.0时代的新一代企业级分布式云数据库。在兼容开源数据库MySQL的生态体系下,它重新定义了MySQL分布式架构,从而在单实例极致性能、事务响应延时、存储扩展性以及可用性等关键技术指标上,达到商用级数据库级别;与此同时,它是面向通用硬件进行的软件极致优化,相比商用级数据库,它的性价比非常高,能把云计算共享经济普惠给万千腾讯云用户。

CynosDB名称来源。Cynos源于拉丁语中的Cynosura,古希腊神话中北极星的名字,现意为焦点,引人注目的人或物。CDB是腾讯云数据库的产品简称,NewCDB是在CDB十年技术和产品沉淀的基础上诞生的。腾讯云数据库产品在继承中不断完成突破。

CynosDB设计出发点。随着云计算2.0时代的来临,在云计算技术和服务的支持下,越来越多的互联网企业业务规模快速扩大,它们对构建于云端的核心基础设施服务—数据库服务提出了更高的要求,如更高的性能、更好的稳定性和更低的成本等。与此同时,越来越多的零售、IoT和医疗等传统行业通过“接入云”完成数字化转型和升级,迫切需要云数据库服务能无缝替换传统数据库产品。以传统的方式,将长期以来主导企业解决方案的数据库Oracle 和 Microsoft SQL Server等以“lift and shift”的方式直接搬到云上提供托管服务并不能满足用户在扩展性和可靠性等方面的需求,授权许可费用也使得订阅计费的方式不能从根本上降低数据库的使用成本。因此,通过技术手段解决这些问题正是腾讯数据库技术团队自研新一代云数据库CynosDB的出发点。

业界方案。以Google Spanner和AWS Aurora为代表的NewSQL现代关系型数据库提供了新的思路,即既有NoSQL数据库相同的扩展性能,又保持了传统数据库支持ACID和SQL的特性。其中Amazon Aurora通过对开源数据库MySQL和PostgreSQL的计算与存储解耦来实现数据库在云端的扩展和弹性调度,并将业务迁移成本和总拥有成本降到最低,得到了市场的普遍认可。

基于对当前云计算用户场景深度分析,CynosDB(NewCDB)参照了类AWS Aurora路线,为用户提供新一代架构的MySQL服务。

当前主流MySQL技术分析。MySQL的主流架构来看,主要由两种方式,一种是一主多从集中模型,他通过多个slave来构建一个多可用区部署的分布式数据库,提供一个较好的服务可用性和数据可靠性等。另外就是分库分表这种方式,主要来解决集中模型中的扩展问题。这两种架构模型能满足一些业务场景的要求,但随着业务的发展,在很多应用场景,尤其是企业级比较苛刻的应用场景下,它天生的技术缺陷就凸显出来了。主要表现如下:

  • 计算存储融合:存储扩展有限、写性能有限、资源利用率低。
  • 日志复制路径过长:同步开销大,影响到RTO,导致slave的stale read。
  • 基于中间件的分库分表:SQL/事务无法兼容,应用需要改造。

业务推动技术发展。CynosDB(NewCDB)针对当前业务场景对数据库技术指标的苛刻要求,进行技术架构自我突破。技术原理上的优势主要体现在以下几个方面:

  • 云原生:基于腾讯云上多年成熟组件来构建,主要包含腾讯自研MySQL内核TXSQL和自研统一存储TXStore等。
  • 卸载:计算和存储分离。
  • 分布式存储:提供高可用、高可靠和强一致的弹性存储。
  • 可计算存储:日志即数据库,存储自行完成记录到页的转换。
  • 轻量级计算节点间复制:低开销、低延时的日志同步。

如何云原生。CynosDB(NewCDB)的计算引擎是基于Tencent MySQL(TXSQL)来完成的。TXSQL支持主流的MySQL5.6/5.7版本,结合业务场景,在性能、企业级特性和稳定性上进行了百余项的定制patch,满足公司内以及腾讯云上各个业务在高并发性能、数据安全和稳定性上的要求。CynosDB(NewCDB)的存储引擎是基于自研统一存储平台Tencent Storage(TXStore)来完成的。TXStore作为存储后端,为腾讯云硬盘以及云文件提供数据存储服务。

如何卸载。CynosDB(NewCDB)计算引擎和存储引擎解耦主要解决三个问题。第一个问题是解耦后存储放在哪里。CynosDB(NewCDB)借助TXStore来为计算集群提供独立存储,通过存储池化来解决存储扩展、写性能扩展以及资源利用率的问题。第二个问题是如何解决计算引擎和存储引擎之间的网络传输效率。这里采用了极简IO思路,传递事务日志,由存储自行完成日志到记录的转换;同时也充分发挥RDMA等硬件优势,在数据传输上灵活的使用服务器主动模式和客户端主动模式,在元数据传输上结合基于消息RPC和基于内存RPC的优势。最后一个问题是计算节点独享存储还是多个计算节点共享一份存储。存储本身是多副本的,所以选择共享,于此同时能快速的进行计算节点的扩容,因为做到了数据的零拷贝。

如何实现稳定的分布式存储。CynosDB(NewCDB)采用腾讯TEG基础架构部自研统一存储TXStore来承担稳定的分布式存储。TXStore针对云上复杂应用环境对基础设施苛刻的要求,它在数据的高可靠、极致性能和企业级特性上进行了大量创新设计,为腾讯云硬盘CBS、云文件CFS和云数据库CDB来提供底层存储。TXStore在数据库多副本多可用区分布的技术基础上,通过基于数据多版本的秒级快照技术,结合CDP(Continuous Data Protection)连续数据保护技术,满足数据可靠性9个9以上的要求。在性能上,通过软硬一体化技术,实现极简IO架构,研发适合现代硬件的高性能异步软件开发框架CEDA(Container Event-Driven Architecture ),充分利用NVME/Optane存储介质和RDMA网络等硬件红利,提供单client百万级IOPS和亚毫秒RT(response time)延迟能力,达到甚至超过商业级存储的水平。于此同时,利用AI深度学习技术,实现了存储节点磁盘故障预测、IO预取和缓存等能力。

如何实现可计算存储。CynosDB(NewCDB)在存储引擎上完成日志转换为记录以及数据页的存储。存储引擎收到日志后,会进行日志强一致的存储,完成存储后即可响应计算引擎,将事务提交RT降到最低。通过异步方式完成日志到page的落地。为了提高效率,采用了批量并行处理的技术。存储引擎会对日志进行排序等预处理,然后按照InnoDB page的方式,批量将事务日志中的内容应用到page上。为了兼顾性能和成本,存储引擎上采用了智能多级存储以及小颗粒度的按用分配技术。

如何实现轻量级计算节点间复制。CynosDB(NewCDB)在支持MySQL原生binlog方式复制之外,在同region支持了基于redolog的复制功能。通过设计基于redolog的新复制协议,将系统表、DDL以及DML相关同步通过redolog在多个计算节点间完成复制。在Slave上,也采用了无磁盘IO的apply方式,大大加快同步效率。

从CDB到NewCDB,腾讯云数据库经历了从云数据库服务构建和重新定义,形成了覆盖全业务场景的OLTP数据库产品。

在接下来的道路中,腾讯数据库技术团队将继续深挖云上用户痛点,构建企业级特性,进一步完善云数据库自治能力,完成从NewCDB到SmartCDB的蜕变,将更多腾讯内部的数据库技术普惠给腾讯云用户。


腾讯数据库技术团队对内支持微信红包,彩票、数据银行等集团内部业务,对外为腾讯云提供各种数据库产品,如CDB、CTSDB、CKV、CMongo, 腾讯数据库技术团队专注于增强数据库内核功能,提升数据库性能,保证系统稳定性并解决用户在生产过程中遇到的问题,并对生产环境中遇到的问题及知识进行分享。

原文发布于微信公众号 - 腾讯数据库技术(gh_83eebc796d5d)

原文发表时间:2018-06-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏无原型不设计

无协作,不原型!

Mockplus3.1新增了团队协作功能,支持一键创建团队项目、团队成员快捷管理、一键通知成员审阅、多人评论批注的功能。Mockplus是一个简单快速的原型设...

2544
来自专栏无原型不设计

更巧妙的表单设计与登陆访问

以下内容由Mockplus团队翻译整理,仅供学习交流,Mockplus是更快更简单的原型设计工具 你觉得一个普通人每天会使用多少次登陆功能呢?数据显示至少1...

3184
来自专栏IT米粉

技术知识和稳定的系统之间,可能还差这些?

艺术的展现除了术,还需要道。程序的术是大家都能得到的共识,各种各样提升自己技术的文章到处都是,这里我们说说程序的道,也就是方法。这也是大家经常忽略或者不重视的地...

4338
来自专栏大数据和云计算技术

大数据和云计算技术周报(第59期)

“大数据” 三个字其实是个marketing语言,从技术角度看,包含范围很广,计算、存储、网络都涉及,知识点广、学习难度高。

1332
来自专栏云计算D1net

破译混合云架构的关键点:云数据传输

混合云架构融合了私有云和公有云,如何部署混合云已经成为IT圈里面最热门的话题之一。大部分数据中心团队都发现这种架构在技术上具有极大的挑战,这些挑战主要源于各种工...

4228
来自专栏我就是马云飞

该如何接手别人遗留下的代码?

在我们开始之前,你应该先了解一些事项。首先,请阅读这篇 Joel Spolsky 的著名文章,了解为什么永远不应该重写代码(https://www.joelon...

1203
来自专栏CSDN技术头条

官宣!这才是优秀的数据库程序员

如果评选出数据库中最难以理解的模块,那么非优化器莫属。作为数据库从业者,对优化器不够了解,如同猛虎没有了利爪,在对数据库调优的过程中往往余力不足。

1082
来自专栏腾讯大数据的专栏

腾讯云分析支持微信告警啦!

在过去的一个月里,微信公众平台开放了图文分析等数据统计功能。眼尖的人也许早就发现,在微信公众平台的图文分析右上角,出现了"数据由 腾讯云分析 提供"字样. 通过...

2659
来自专栏即时通讯技术

达达O2O后台架构演进实践:从0到4000高并发请求背后的努力

达达创立于2014年5月,业务覆盖全国37个城市,拥有130万注册众包配送员,日均配送百万单,是全国领先的最后三公里物流配送平台。 达达的业务模式与滴滴以及Ub...

2653
来自专栏IT米粉

技术知识和稳定的系统之间,可能还差这些?

前言: 很多人都说——程序一门艺术,对于这个说法,以前我是很难理解的,程序就是一个工具,一门学问,怎么会是一门艺术呢,后来工作越深入,考虑的东西越多,发现程序的...

2473

扫码关注云+社区

领取腾讯云代金券