云原生数据库和托管/自建数据库最大的区别就是:云原生数据库是面向独立资源的云化,其CPU、内存、存储等均可实现独立的弹性,利用大型云厂商的海量资源池,最大化其资源利用率,降低成本,同时支持独立扩展特定资源,满足多种用户不断变化的业务需求,实现完全的Serverless; 而托管数据库还是局限于传统的服务器架构,各项资源等比率的限制在一个范围内,其弹性范围,资源利用率都受到较大的限制,无法充分利用云的红利。

目前主流云原生数据库刚走出了第一步,即实现了存储和计算的分离,并基于此实现了一写多读集群架构.

  • 存储和计算分离,打破了存储的单机限制,使得存储独立弹性成为可能,并为后续的一写多读集群奠定了基础
  • 基于分布式共享存储的一写多读架构,使得数据库的读能力可以快速Scale Out,同时由于多个读节点和写节点共享同一份存储,降低了成本,提升了资源利用率。
  • 阿里云的PolarDB为领头羊,早在2017年就进行了公测,2018年实现商业化,并支持最大100T存储,1写15读集群
  • 华为云的TaurusDB,目前还处于宣传阶段,尚未公开售卖

当前基于共享存储一写多读的云原生架构虽然解决了存储的弹性问题和读扩展问题,极大的提升了云原生数据库的弹性和扩展能力,但是依然存在2个比较大的瓶颈点,即内存弹性单点写入问题。因此下一代云原生数据库将在如下两个方向实现突破:

  • 当前的云原生架构虽然实现了存储和计算分离,存储独立弹性;但是计算节点仍然包含了CPU和内存,因此无法真正实现秒级弹性扩容和Serverless
  • 因此在云原生数据库中实现CPU和内存分离内存独立弹性非常有必要。同时CPU和内存分离可以让多个CPU共享同一份内存,降低内存资源开销。
  • 当前一写多读的云原生架构,虽然实现了读能力的扩展,但是写能力仍然受到单机的限制,无法扩展。而采用分库分表的分布式数据库扩展,又会牺牲兼容性,需要应用感知和改造。

因此云原生数据库下一代架构必然是基于分布式共享内存池的多点可写架构。目前AWS也看到了这一个方向,也推出了Aurora Multi-Master产品,但是该产品直接基于共享存储实现多点可写,因此多个写节点间数据/事务信息同步效率低下,导致只能采用乐观冲突机制,同时冲突场景下性能非常低下。

多写架构一直以来都被认为是数据库技术皇冠上的明珠,目前国内外核心银行/电信/政府等行业仍然被Oracle/IBM等的多写架构所统治着。因多写架构存在较大的技术挑战,因此无论是开源数据库还是新兴的基于分区的分布式NewSQL都绕开了单行多写这个数据库技术高峰。这一次PolarDB团队正在登顶数据库技术高峰的路上,这也是突破数据库核心市场的机会。希望有志之士可以加入我们,共攀技术高峰,共创历史!

欢迎对 数据库,云原生技术,分布式存储,分布式架构,高性能网络,新硬件 感兴趣的同学,一起交流技术,共同进步!