阿里云自研数据库PolarDB在2021 ACM SIGMOD国际数据库顶级会议上发表的论文《PolarDB Serverless: A Cloud Native Database for Disaggregated Data Centers》中,提出了一种基于计算存储分离的最新Serverless技术架构。这一突破性技术被认为是下一代数据库服务的发展方向,标志着我国自研数据库在最新一代架构的探索上更进一步。
早期的云上数据库,主要以ECS中的自建数据库和云厂商托管的数据库RDS的形态存在。这些云上数据库架构虽然使用了传统数据库的架构,并运行在云的基础设施上,但并未对数据库本身进行太多改造和适配。这导致其资源利用率受到较大限制,无法充分利用云的红利。以亚马逊Aurora和阿里云PolarDB为代表的第一代云原生数据库,虽然实现了存储和计算分离,并基于此实现了一写多读,一定程度上适配了云架构,但CPU和内存依然强绑定,导致计算要实现真正按需供应非常困难。
PolarDB Serverless的最大创新之处在于,在业内首次实现了内存与计算/存储的解耦,内存进一步池化,形成三层池化,使得弹性能力有数量级的提升。这种设计大幅度降低了成本,实现了完全地按量使用和按需弹性,贴合各种场景。PolarDB Serverless构建了一个全新的数据库形态,即DCaaDB(Datacenter as a Database)。整个IDC形成一个多租户的大数据库,其全部的CPU、内存和存储构成三个独立的资源池。在资源池未耗尽的情况下,任何一个用户(租户)都可以任意的弹性扩展任何一种资源到任何一个规格,用户为其SQL动态消耗的CPU、内存和存储买单,不需要预置任何的规格。
PolarDB Serverless的设计背后,包含了许多技术难点。例如,如何确保系统能正确执行事务,如何高效地执行事务,以及如何构建一个可靠的系统。PolarDB Serverless通过技术创新解决了这些问题,例如使用全局的缓存一致的机制实现全局页锁,使用RDMA和乐观锁技术提高并发性,以及设计了对不同节点类型的单节点崩溃的处理策略等。
PolarDB Serverless的突破性设计,使得数据库性能得到了显著提升,远超预期。这些结果也让我们有理由预测,使用全资源分离的架构来实现云原生的Serverless数据库,会成为下一个五年的云数据库发展趋势。