系统架构
数字技术正在加速落地行业应用,支撑着丰富的在线应用与服务,产业数字化加速产生了海量的数据,图、流、时序和地图空间等多种数据类型层出不穷,这需要不同的算力架构做处理,数据库对计算的需求由单一的通用CPU向GPU、NPU等多样性计算演进。同时,为了有效应对大规模数据库可靠性、性能、易用性的终极诉求,业界数据库逐渐走向统一的标准化资源池化架构。
针对多样性计算演进的趋势,openGauss实现了资源池化架构,首次实现计算、内存和存储三层解耦,层层池化带来更好的资源调度效率,更好的处理性能和创新的敏捷性。基于数据多模融合的趋势,实现了HTAP架构,同时在openGauss社区联合打造图数据库和时序数据库等不同模型的数据处理能力,这使得openGauss可以实现多模数据的融合处理与分析。
面向未来的openGauss资源池化架构由3层池化、1个平台和1个标准组成。架构示意图如下所示:
三层池化包括存储池化、内存池化和计算池化。存储池化支持多种存储,如分布式存储、企业存储,实现一份数据服务于多种计算,并通过SQL算子卸载的NDP技术,大幅提升了SQL处理效率、消减了网络I/O流量。内存池化实现计算节点间内存的互联,通过同步事务信息和数据库缓存,实现了多节点下的多版本快照一致性读能力,结合RoCE和SCM等硬件,实现极致的Commit加速和大容量内存访问等能力。计算池化支持多样性算力,基于X86、鲲鹏等算力,为应用提供从TP行存加速、AP列存加速、AI训练推理等全方位的数据服务。在三层池化之上,是全场景的SQL标准,为应用提供数据分析、AI推理、图查询等的一系列查询接口,充分释放数据价值。同时,一体化平台实现智能运维、集群管理、资源编排等能力,实现数据库在高负载下的稳定运行和弹性伸缩。
软件架构
在openGauss 5.0.0中,传统的主备复制架构向资源池化架构演进,逻辑架构图如下所示。
图 1 openGauss逻辑架构图
openGauss资源池化架构支持1主7备,主节点支持读写,备机横向扩展读能力,以满足现实世界典型负载性能要求。多节点数据实时一致的能力支持数据一致性敏感型应用负载从单个节点透明扩展到多个节点。去除传统主备日志复制开销,存储成本下降50%以上。基于高性能RDMA网络实现轻量级RPC框架,CPU资源开销显著降低,实现us级网络时延。SCM多级缓存能力实现同等内存成本下性能提升30%。
表 1 架构说明
名称 | 描述 |
---|---|
DMS | DMS是动态库,集成在数据库内部,通过TCP/RDMA网络传输PAGE内容,将主备内存融合,提供内存池化能力,以此实现备机实时一致性读功能。 |
DSS | DSS是独立进程,直接管理磁阵裸设备,并对外提供类似分布式文件系统的能力。通过共享内存和客户端API动态库,为数据库提供创建文件、删除文件、扩展和收缩文件、读写文件的能力。 |
共享存储 | 支持企业级存储和分布式存储。与传统建库相比,资源池化将目录分为三种类型,每实例独占且不共享、每实例独占且共享、所有实例共享。其中需要共享的目录均需存放到共享存储上,而不共享的目录存放在本地盘上。另外备机建库只需要建隶属于自己的目录,不需要再次创建所有实例共享的目录结构。 |
OCK-RDMA | 可选通过OCK RDMA降低DMS主备页面交换时延,开启OCK RDMA,备机一致性读时延性能提升20%+。 |
SCM | 基于持久化内存的SCM加速,实现同等内存成本下性能提升30%。 |