VLDB 2024年论文解读GausDB:计算

华为《GaussDB: A Cloud-Native Multi-Primary Database with Compute-Memory-Storage Disaggregation》国际数据库顶部的VLDB论文 2024年收录#xff0c;本文创新性地提出了GausDB云原生数据库的三层池化解耦架构,以及实现多节点透明多写的核心技术。通过三层池化解耦技术,显著提高了云数据库的弹性;通过分布式内存缓冲池、热温冷数据分层自适应读写、本地亲和力读写、数据智能路由汇聚、细粒度页面级Lamport LSN等技术,提高了数据库的透明多写性能;通过内存和磁盘双检查点,Past Image就近页面恢复机制第二次恢复节点故障#xff08;RTO<6s),生存节点继续运行业务不间断;提出计算层无状态设计机制,实现了秒级计算节点的弹性伸缩,提出了基于bucket的细粒度一致性哈希算法,实现内存节点在线弹性扩展。
以下是对论文的全面解读,揭开GaussDB云原生数据库的面纱。
以下是对论文的全面解读,揭开GaussDB云原生数据库的面纱。
背景介绍。
新的应用场景不断涌现,业务负载迅速增加,叠加新硬件技术的持续突破,成为推动数据库架构演变的重要推动力。自OLTP关系数据库问世以来,,主备架构相继出现,shared-disk多主架构,shared-nothing分布式架构和云原生存算分离主要架构。如何在云环境中充分发挥先进硬件的优势,突破现有结构吞吐扩展能力瓶颈#xff0c;近年来,它已成为工业和学术研究的热点,云原生三层解耦多写数据库就是在这样的背景下产生的。
解读核心技术。
高性能。
以D*和O*为代表的传统shared-disk多主架构,多节点透明多写支持#xff0c;具有一定的吞吐扩展能力,长期以来,企业关键业务负荷得到成功支撑。但限制也很明显,首先,D*和O*多写架构依赖于专有硬件弹性伸缩能力差TCO高,Lock很容易被用户使用 in,在云计算和通用服务器流行的背景下,越来越多的用户希望在开放平台上运行更多的写作架构。另外,D*与O*多节点并发的事务状态多采用集中模式设计,导致扩展线性较低,在重业务负载下,资源的扩展不能带来平等的性能收入,其业务承载能力受到限制。
继承D*和O*透明多写能力,同时,充分利用先进的硬件技术,如云平台资源弹性和RDMA高速网络c;目前,行业领先的数据库制造商正在积极研究云原生多写架构。最近,云原生多主数据库由云制造商推出c;云原生架构设计采用计算-内存-存储三层解耦,多节点透明多写,基于集中化组件#xff0c;这是该方向架构演变的突破。但从发表论文的测试数据来看,,TPCC32节点吞吐910万tpmc同样的32节点,华为Gausdb云原生数据库可达3000+万tpmc的吞吐能力,支持128节点(16384坤鹏核心)部署,能够支持PBOLTP业务规模,实际业务生产已在华为内部得到支持。
上述性能差距的原因,作者认为以下几点:第一。
,国内云厂商多写数据库页面跨节点修改,WAL记录的保序采用进程级LLSN实现c;Gausdb云原始数据库采用细粒度页面级Lamport LSN保序,过程中没有全局冲突点更具可扩展性的多核/众核环境,能更好地发挥硬件计算能力。第二。
Gausdb云原本采用页面亲和力设计,脏页不需要回写共享内存,云制造商数据库采用中心式全脏页管理机制,事务产生的脏页面必须重写共享内存,网络之间频繁传输大量页面。
Gausdb云原生数据库架构图。
Gausdb云原生数据库设计节点亲和性算法c;除分布式缓冲池的页面所有权和阅读授权机制外,,Undo段和FSM算法也充分考虑了节点亲和力设计,将节点间的网络交互降至最低,确保极端性能。
在Undo 在segment节点亲和力设计上,从undo tablespace分配空间,多节点共享undo tablespace,每个计算节点使用分布式锁机制亲和力分配Undoo segment,每个Undo segment只能在同一时间被一个计算节点绑定。
Undo segment亲和性分配机制图。
FSM空间管理节点的亲和性算法针对Heap FSM采用自动分区机制优化表数据插入分配页面算法c;减少节点冲突;对于索引空页面管理,自动分区机制优化索引搜索空页算法c;减少节点间冲突。
FSM空间管理节点的亲和性算法针对Heap FSM采用自动分区机制优化表数据插入分配页面算法c;减少节点冲突;对于索引空页面管理,搜索空页算法采用自动分区机制优化索引#xff0c;减少节点间冲突
空闲空间管理的亲和力分配机制。
高可用。
在高可用性方面,Gausdb云原始数据库的节点故障可以在6s内恢复,对其他正常节点无影响,其他厂家需要30s以上。上述差异的根本原因在于,云制造商部署在共享内存层支持多写的核心组件中存在单点问题,保存所有脏页、锁、事务状态等信息,故障需要完全恢复,特别是全局bufferfer Pool,需要从共享存储的检查点依次恢复,较为耗时。相比之下,#xff0c;GaussDB云原生围绕高可用性进行了大量创新:
首先,无脏页状态设计的共享内存#xff0c;WAL不需要恢复内存节点故障b;
二是,Past-Image设计的计算节点#xff0c;最近Image可以恢复计算节点故障的#xff0c;恢复时间大幅减少;
最后,GausDB云原创行业首创双check-point设计从内存检查点恢复计算节点故障只计算节点和共享内存节点同时故障,从共享存储的检查点恢复WAL。
双check-point设计机制。
双check-point设计机制。
高弹性。
在弹性扩展方面,GaussDB采用计算-内存-存储三层池化解耦设计c;支持分层独立弹性伸缩,透明的应用程序。计算层将全局锁定,页面属于主目录(POD,Page Owner Directory)下沉到共享内存层本地只保留数据页面计算层增删节点不需要状态信息迁移c;实现二级弹性伸缩;共享内存层采用POD管理缓冲池页面的主要关系c;基于一致性的Hash,POD均匀分布在共享内存层,增删节点只迁移少量bucket内存层次弹性,应用程序没有感知。
分层弹性伸缩。分层弹性伸缩。论文总结。Gausdb云原始数据库,构建计算/内存/存储三层池化架构多节点透明多写,分层弹性伸缩,秒级快速恢复,秒级节点扩展能力,给用户带来最大的价值。Gausdb持续创新创造新的竞争力,为世界提供更好的选择。欢迎朋友交流~。分享让更多人看到
推荐阅读
热门排行
- 1Unity3D开发AI桌面精灵/宠物系列 【一】 窗口透明化 背景剔除 、去边框、去Logo动画UI正常显示
- 2分布式文件存储MinIO
- 3运维和云计算有什么区别?
- 4一文讲明白从传统服务器
- 5Web⾃动化测试及常用函数
- 6webdriverselenium自动下载和安装
- 7Python异步HTTP库aiohttp的全解析及应用
- 8谈话游戏哪些人气高? 最热门的交谈游戏排名前十
- 9JetBrains AI Asssistant使用指南(1)
- 10Flink 问题之 No Watermark (Watermarks are only available if EventTime is used)