专栏首页腾讯云数据库(TencentDB)腾讯自研新一代企业级云数据库CynosDB,打破安迪-比尔定律,释放硬件红利!
原创

腾讯自研新一代企业级云数据库CynosDB,打破安迪-比尔定律,释放硬件红利!

CynosDB是腾讯云自研的新一代高性能高可用的企业级分布式云数据库。融合了传统数据库、云计算与新硬件的优势,100%兼容开源数据库,百万级QPS的高吞吐,不限存储,价格仅为商用数据库的1/10。

Cynos源于拉丁语中的Cynosura,古希腊神话中北极星的名字,意为焦点,引人注目的人或物。

CynosDB系列之PostgreSQL:

由腾讯云和TEG数据平台部联合,基于最先进的开源数据库PostgreSQL10 倾力打造的新一代企业级分布式云数据库,重新定义了云上分布式数据库的架构:

计算层:

SQL Engine(master/slave):基于PostgreSQL 10.0版本,适配分布式对象存储接口,同时master负责同步增量日志到slave,以更新cache中的内容

Distributed Object Storage:分布式对象存储接口,屏蔽底层块存储接口的细节,负责对象的生命周期管理、数据块分配管理等工作

Distributed Block Storage:分布式块存储接口,负责将多个Storage Node上的Segment Group抽象为Logic Segment

存储层:

Segment :数据管理的最小单元,默认为10G,包含数据和增量日志

Segment Group :多个Segment通过一致性协议Raft组成一个Group,负责数据的备份和HA

Storage Node:管理多个Segment的服务,通常就是一个服务进程,负责网络通信、线程池调度等工作

Cold Backup Storage:基于增量日志的备份存储

调度层:

SQL Instance Manager:负责SQL Engine的HA

Storage Cluster Manager:负责存储层的HA,包括:故障转移、自动扩缩容、负载均衡等

计算与存储分离:

CynosDB for PostgreSQL的架构中,我们将计算与存储分离,同时实现了计算节点的无状态。这样做的好处是可以将计算节点与存储节点的故障隔离,同时以秒级的速度调度计算资源。当计算节点失效时,可以快速恢复而不需要恢复存储节点。当存储节点失效时,计算节点也可以以秒级重连新的主存储节点,使得对业务的影响降到最低。

海量智能存储:

由数据平台部经过十几年的业务沉淀和技术积累打造的新一代海量分布式智能存储,对计算和存储的资源池化提升了资源的利用率,降低了使用成本,也使得存储突破了单机的空间限制。不仅如此,CynosDB for PostgreSQL 的实现了智能存储:无最大存储量限制,按使用量计费,自动扩缩容,轻松应对突发的业务变化;自动负载均衡,利用数据存储的多副本,通过主副本切换自动从热点存储设备到空闲存储设备以转移IO压力;自动数据纠错,通过内置的校验发现存储数据的跳变,并利用其他副本数据实现页级的自动恢复。通过对数据持续的保护,充分保障业务的稳定和数据的持久性,可靠性达99.9999999%。

减少网络IO:

云数据库的分布式架构带来扩展性的同时也增加了网络开销。为了最大限度的减少网络IO,CynosDB for PostgreSQL 采用了“日志即数据库”的方案,计算层不再需要将脏页发送到存储层,而只需发送增量日志,由存储层异步的将日志转换为数据页。同时,存储层数据的多副本直接通过Raft技术来复制数据,这样计算节点只需一次I/O请求到存储层的Leader节点上即可完成写日志操作。在TPC-C基准测试中,与PostgreSQL 10.0相比,写流量减少了60%。

减少系统调用:

CynosDB for PostgreSQL 采用自研的用户态分布式对象存储系统,通过基于SPDK和RDMA的零拷贝技术,减少了操作系统上下文切换以及数据在用户态和内核态之间拷贝引起的性能损耗,进一步优化了关键路径的系统性能,降低请求延迟。

对于单块的SSD Disk,相比传统的Direct IO方式, 采用SPDK的直接数据传输无论在顺序读还是随机读模式都有超过一倍的性能提升,对比depth为1时的写性能,无论是随机写还是顺序写都有30%的性能提升。

此外,在RDMA与TCP的对比测试中,可以明显的看到4K数据的传输平均延迟缩短到6~7us,在4K数据的echo测试中,CPU使用率降低了65%。

PostgreSQL内核优化:

CynosDB for PostgreSQL在完全兼容社区版PostgreSQL10的基础上也对内核进行了深度的优化:PostgreSQL数据页写入是以Page页面为单位,社区版为了解决在写磁盘的时候“刷新数据页面时掉电,而导致磁盘上存在半页”的问题,引入了Full Page Writes,在CynosDB for PostgreSQL系统中,我们移除了这个机制。此外,社区版PostgreSQL除了刷新日志外,还需要将数据脏页刷新到存储系统中,CynosDB for PostgreSQL仅仅将日志写入到存储系统,无须刷新脏数据页,进一步减少了系统IO。

云数据库的设计理念:

Oracle 现任CEO Mark Hurd在回答Forbes的采访中提到了“节约成本和敏捷创新已成为企业上云的核心驱动力”,这也是贯穿于云原生数据库CynosDB的核心设计理念:全面兼容新版的开源数据库 “Comprehensive”,极致的内核级优化与新硬件技术相结合“Cohesive”,实现全托管智能运维“Creative”,无服务器架构的按需按量计费“Cost Effective”。让用户专注于业务端应用的研发,为用户提供灵活的、敏捷的、可持续的,兼具新特性、高性能和低成本的新一代云原生数据库服务。

综上所述:

云数据库CynosDBL是腾讯云继续提升、丰富,开放云计算能力的重要里程碑,也推动了社区生态的进一步完善。在后面的工作中,我们将结合用户需求不断完善产品功能,提供企业级特性,将更多的云计算普惠带给世界。

CynosDB近期会开放公测申请,采用邀测制,进一步的消息,敬请关注腾讯云官网(https://cloud.tencent.com/act/event/cynosdb.html

更多前沿数据库技术和案例分享,请关注我们的微信号:腾讯云数据库CDB

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 迪B课堂 | 深入浅出解读MySQL数据行溢出

    【迪B课堂】为腾讯云数据库高级产品经理迪B哥开设的面向数据库开发者、数据库运维人员、云端运维人员的系列培训课程,旨在帮助大家从入门到精通学习和使用数据库。 本...

    腾讯云数据库 TencentDB
  • 腾讯云Redis混合存储版重磅推出,万字长文助你破解缓存难题!

    导语 | 缓存+存储的系统架构是目前常见的系统架构,缓存层负责加速访问,存储层负责存储数据。这样的架构需要业务层或者是中间件去实现缓存和存储的双写、冷热数据的...

    腾讯云数据库 TencentDB
  • 干货分享 | 腾讯自研数据库CynosDB计算存储分离架构的实现和优化

    点击上方蓝字关注每天学习数据库 作者简介:尚博,腾讯云数据库高级工程师,多年数据库内核研发经验,在事务、日志、存储、性能调优、SQL兼容性等方面有较深的研究和...

    腾讯云数据库 TencentDB
  • 三种云部署方式 助企业实现高性能云存储

    用户把他们的基础设施移出数据中心以外,总是会涉及延迟问题,那些寄希望于云供应商能够提供高性能的云存储的用户,就不得不学会妥协,要么部分地放弃对高性能的要求,要么...

    静一
  • 系列 | 高性能存储-MySQL数据库之存储过程揭秘

    原文:http://www.enmotech.com/web/detail/1/727/1.html

    数据和云01
  • 系列 | 高性能存储-MySQL数据库之存储过程揭秘

    墨墨导读:本文介绍什么是存储过程?为什么要使用存储过程?如何使用存储过程?如何去使用存储过程以及怎么执行存储过程。

    数据和云
  • 「mysql优化专题」90%程序员没听过的存储过程和存储函数教学(7)

    储存过程是一个可编程的函数,它在数据库中创建并保存。它可以有SQL语句和一些特殊的控制结构组成。当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时...

    java进阶架构师
  • 原 PostgreSQL知识树

    王果壳
  • 聊聊计算和存储分离

    这篇文章是我一直想写的一篇,因为“计算和存储分离”最近几年在大家的视野中出现得越来越多,但其实很多对于其到底代表着什么也是模糊不清,这里我查阅了很多的资料再结合...

    用户5397975
  • 轻松入门腾讯云存储系列二:对象存储COS应用类型介绍

    腾讯云对象存储 COS 提供多种类别的云端存储服务,用户可以根据不同的业务类型搭配使用,包括用于频繁访问数据的标准存储、用于不频繁访问数据的低频存储。

    云加社区

扫码关注云+社区

领取腾讯云代金券