This paper argues for decoupling transaction processing from existing two-layer cloud-native databases and making transaction processing as an independent service. By building a transaction as a service (TaaS) layer, the transaction processing can be independently scaled for high resource utilization and can be independently upgraded for development agility. Accordingly, we architect an execution-transaction-storage three-layer cloud-native database. By connecting to TaaS, 1) the AP engines can be empowered with ACID TP capability, 2) multiple standalone TP engine instances can be incorporated to support multi-master distributed TP for horizontal scalability, 3) multiple execution engines with different data models can be integrated to support multi-model transactions, and 4) high performance TP is achieved through extensive TaaS optimizations and consistent evolution. Cloud-native databases deserve better architecture: we believe that TaaS provides a path forward to better cloud-native databases.
翻译:本文主张将事务处理从现有的两层云原生数据库中解耦,使事务处理成为独立服务。通过构建事务即服务(TaaS)层,事务处理可独立扩展以实现高资源利用率,并可独立升级以提升开发敏捷性。据此,我们设计了三层云原生数据库架构:执行层、事务层与存储层。通过连接TaaS:1)分析型处理(AP)引擎可具备ACID事务处理(TP)能力;2)多个独立的事务处理引擎实例可协同支持多主分布式事务处理,实现水平扩展;3)不同数据模型的多个执行引擎可集成支持多模型事务;4)通过广泛的TaaS优化与持续演进实现高性能事务处理。云原生数据库应当拥有更优架构:我们认为TaaS为构建更好的云原生数据库提供了发展路径。