云原生数据库TDSQL-C——云上应用研发方式的改变

文章出处: 鹅厂架构师

2021年6月26日,腾讯云【TECHO】HUB技术巡回长沙站顺利开展,聚焦于数字媒体行业的云端实践。会上,腾讯云数据库高级工程师窦贤明重点分享了《腾讯云云原生数据库TDSQL-C——云上应用研发方式的改变》。由此,我们一起来看传统主备方式数据库与云原生数据库的对比演进。

(传统的读写分离)

传统数据库主备方式:

  • 存储各自独立
  • 主备间通过数据流复制保证数据一致,主库故障则切换到备库
  • 可用性与可靠性无法兼顾

(云原生数据库计算存储分离)

腾讯自研云原生数据库 TDSQL-C,基于全新计算存储分离架构,融合传统数据库和云计算技术优势,100%兼容MySQL和PostgreSQL,专为云而生,具有高性能、低成本、大存储、低延迟、秒级扩缩容、极速回档、serverless化七大特性:

● 高性能:单体实例读性能提升到125W,写性能提升到25W

● 低成本:成本下降可达40%

● 大存储:单实例存储容量达到128TB(超过448TB支持能力即将发布)

● 低延迟:彻底告别主从复制延迟/异常问题(< 20ms )

● 秒级扩缩容:规格升降级/增删RO < 60s

● 极速回档:回档速度提升200%,高达1.2GB/s

● serverless化:自动扩缩容、按使用量计费,不使用不计费

当传统主备方式数据库遇上腾讯云云原生数据库TDSQL-C,“C”位出道的腾讯云原生数据库说:“你的不足,我来补!”

小孩子才做选择,可用性、可靠性我都要

1.可用性、可靠性无法兼顾 vs 可用性、可靠性兼顾;

传统数据库基于binlog的主从逻辑复制,复制延迟较大,存在数据丢失的风险。备机同步日志之后需串行回放,HA时间不可控,导致业务的可用性受损。

云原生数据库TDSQL-C基于计算存储分离的架构,底层是共享存储,解决了传统主备架构弹性能力差,业务压力大时的同步效率低,主备切换时间不可控等问题,在提供高性能同时保证了系统的高可用性和业务的连续性,极大的减轻了运营和运维人员的工作量。

 高可用

秒级RTO:计算层重启,直接从存储层读取页面,无需日志恢复

主备延迟低:物理复制,直接回放到物理页面,无需SQL层参与

共享内存:计算节点快速重启,热页面仍然保留在内存

● 高可靠

RPO=0,存储层页面多副本同步

PITR(Point In Time Rollback),随心所欲回滚数据至任意时间点,保证数据不仅当前可靠,而且历史可靠

时间宝贵,不容浪费

2.只读扩展受限、建立时间长 vs 秒级扩展、分钟级快照备份;

在实际业务中,只读请求占比远高于写请求,传统数据库因其本身架构,只读扩展受限,进而影响整体性能。规格升级、添加只读节点都需要导入全量数据到新机器,耗时随数据量增长,可达到天级别。

云原生数据库TDSQL-C架构上计算节点无任何状态,同时进行了多方面的优化,使得计算节点的HA和扩展均能在数秒内完成;数据在存储中进行分片,分片相互独立,基于云盘的快照机制,实现快速的并行备份和回档,较传统架构提升了一个数量级。秒级的快照备份和快速回档能力,在多副本的基础上对用户的数据进行连续保护,是互联网和游戏行业的最佳选择。

没有千亿身家,该省则省

3.成本高企 vs 存储、计算分别计费;

在传统线下数据库维护方式中,需要提前准备整台机器、做三年折旧开销,才能正常运行一个数据库实例。而在大部分时间里,主机资源往往较为富余、长时间没有得到充分利用,造成严重浪费;而如果业务存在波峰波谷情况下,则需要时刻预备最高资源,使成本居高不下。

云的出现,一定程度上缓解了这一难题。云数据库,可以即开即用,在预估好资源使用后,预计可以十分钟左右用上数据库。而成本,可以依据所需的资源申请,在必要时(如业务爆增)可以升级到较高规格,从而避免资源的浪费、实现成本的一定程度降低。

云原生数据库,则将成本控制的粒度往前迈进了一大步。当前常规云数据库,存储购买的粒度仍然较粗,至少以数十G为单位;而规格的升降级,最少为分钟级、最多有可能是在数小时、甚至数十小时级别(视数据总量而定),且计算规格与存储规格有较大绑定关系,导致互相影响,即存储规格变化、计算规格变化都有可能导致较慢的升级时间。而云原生数据库,则做到了秒级弹性、甚至极致的Serverless弹性。在正常业务运行时,采用较低规格运行,在业务波峰来临时,可以在秒级提升计算规格,此时存储上无须为此做任何动作;而存储上,用多少付多少,无须再考虑存储规格问题。整体上,实现资源规格的灵活、细粒度控制,更优的弹性、更好的控制成本方式,有效帮助应对业务的巨大波瀾。

做事,要懂得灵活变通

4.备份时间长 vs 灵活调度、动态控制成本

传统数据库的逻辑回档采用计算层SQL解析后再落盘,回放的速度较慢;其物理回档则通过拷贝数据到所属磁盘,单线程回放redo日志,速度也较慢。传统数据库在备份会锁表,影响实例;若从备机上进行备份,速度过快则会导致主从差距变大,影响可用性。

云原生数据库TDSQL-C采用存算分离架构,存储支持快照备份。备份期间对计算节点无影响,可随时发起;支持按1MB并发上传/下载数据,备份/回档可达GB/s。特别是对于互联网和游戏业务敏捷灵活的弹性扩展,无需预先购买存储,可根据业务需要快速升降级,快速扩缩容,轻松应对业务峰值。

容量,特别的包容只给特别的你

5.传统数据库容量天花板低 vs 云原生数据库轻松支持海量存储

传统数据库采用物理硬盘作为存储空间,受单盘容量的限制,如果某个数据库超过了这个存储的限制,需要运维和开发的人员一起进行数据归档来降低数据库容量或者进行分库分表操作分散数据库的容量问题,整个过程非常耗时耗力,对于业务来说也不太友好。

云原生数据库TDSQL-C,最高存储容量可达128TB(超过448TB支持能力即将发布),自动扩缩容,能够轻松应对业务数据量动态变化和持续增长,运维无需再为实例的存储容量而发愁。

如此优秀的云原生数据库 TDSQL-C,研发应该怎么玩儿? 

  • 即开即用
    • 不必再费心维护数据库,专业的事交给专业的人;专注业务,不再分心
    • 建立数据库不必再等待,跟几个小时的时间浪费说再见;伸个懒腰,数据库的端口即为你打开
    • 用多少买多少,没有折旧、没有复杂核算;业务如水、数据库的费用如船,水多低、船多低,水多高、船多高
  • 告别分库分表
    • 容量最高超128TB(超过448TB支持能力即将发布),足够大部分业务使用
    • 无须再关键分布键、不用再担心倾斜、不用担心半夜被叫醒
    • 一个地址,随心使用
  • 读写分离
    • 分拆负载、避免计算资源争抢
    • 读影响写?不存在了
    • 微服务的拆分更有依据、更便捷
  • 实时数据分析
    • 计算节点秒级建立、用完即释放
    • 实时报表,业务的统计随时恭候,不再T+1
    • 用完即释放,跟OLAP系统说再见
  • SQL优化
    • DBbrain智能诊断来保驾护航
    • 专做程序员、不兼DBA,将专业的SQL优化交给专业的自动化
  • 灵活控制成本
    • 计算节点秒级增减、存储独立计费
    • 不用再担心老板来问花了多少钱,问就是很少;为什么?都靠“我”(你)的灵活控制

云计算浪潮之下,因传统数据库一主一备的架构形式,其能力到达了一定瓶颈。回归到做云原生数据库的初衷,是为了减轻业务开发的工作繁琐度,把部分难题下推到数据库层面来解决,使得研发人员能够更加专注于自身应用逻辑的实现。技术无止境,数据库的不断演进将会促使云上研发应用发生质的改变,未来充满想象,我们拭目以待!

腾讯数据库技术团队对内支持QQ空间、微信红包、腾讯广告、腾讯音乐、腾讯新闻等公司自研业务,对外在腾讯云上依托于CBS+CFS的底座,支持TencentDB相关产品,如CynosDB、CDB、CTSDB、MongoDB、CES等。腾讯数据库技术团队专注于持续优化数据库内核和架构能力,提升数据库性能和稳定性,为腾讯自研业务和腾讯云客户提供“省心、放心”的数据库服务。此公众号旨在和广大数据库技术爱好者一起推广和分享数据库领域专业知识,希望对大家有所帮助。