其他分享
首页 > 其他分享> > 一文读懂GaussDB(for Mongo)的计算存储分离架构

一文读懂GaussDB(for Mongo)的计算存储分离架构

作者:互联网


IDC认为,目前阶段来看,企业亟待解决的是数字化能力提升,包括:与业务的深入结合能力;数据处理和挖掘能力;以及IT技术运营和管理能力。特别是数据处理和挖掘能力,因为数字化转型推进企业从以流程为核心向以数据为核心转型,对海量、异构、多类型的数据处理和挖掘能力是释放数据价值的前提,对数据全生命周期的管控治理是释放数据价值的保障。可以看出,数据库作为数据的承载,企业的要求不再只是简单的存储功能了。

GaussDB(for Mongo)是华为云自主研发兼容MongoDB4.0接口的文档数据库。基于共享存储的存算分离架构,对于传统MongoDB社区版有如下优势:

1.GaussDB(for Mongo)技术架构

1)容忍更多Shard宕机

与社区版MongoDB的`Share-Nothing`模式不同的是,GaussDB(for Mongo)采用`Share-Storage`架构,计算存储分离。集群模式下,N个Shard节点,可以容忍N-1个Shard宕机。

某个Shard节点宕机后,其负责的数据由于存在于共享的存储池中,因此不需要物理拷贝数据,只需要修改元数据路由信息,即可被其他分片节点接管。

2)更快的分裂与均衡能力

此外,由于Chunk数据在存储池中,Chunk的分裂与均衡不涉及到数据拷贝,可以做到分钟级分裂与扩容,分裂与扩容对用户的影响也远比社区版MongoDB小。

3)百万级读OPS能力

GaussDB(for Mongo)副本集模式下,Primary/Secondary节点之间共享同一份数据库文件。Secondary节点只复制Primary节点的WriteAheadLog以及LSMTree的结构变更信息,并应用到内存中。Secondary节点没有LSMTree的Compaction和Flush任务,因此对用户的读业务影响很小。

此外,由于`Share-Storage`的架构优势,添加Secondary节点并不需要拷贝数据,添加Secondary节点的动作可以秒级完成。而Primary/Secondary之间只传递元数据变更,不传递WriteAheadLog,因此Secondary节点的个数即使变多,也不影响Primary节点的写性能。Secondary节点可以水平扩展,支撑百万级的读OPS。

4)主节点IO卸载

LSMTree的写压力来源于三部分:

根据线上业务的实际测算,三者的IO资源消耗占比为: 1:10:1。后台的SST文件Compaction占了绝大部分IO带宽,通过将Compaction任务集中化管理,从计算池卸载到存储池,进一步减少了用户计算节点的CPU和IO资源消耗。

5)GaussDB(for Mongo) 只读节点设计

GaussDB(for Mongo) 基于Share-Storage架构,实现秒级Chunk分裂与均衡,对业务影响更小,水平扩展速度更快,能容忍更多节点宕机。只读节点功能,实现了一份数据多计算节点共用的功能。极大的提升了存储的利用效率,提高了计算节点的读取数据能力。为了让副本节点具有持续的读扩展能力,整个只读方案采用元数据的同步模式,在不降低主节点负载的情况下,极大的提升了整个系统的读数据的处理能力。为3节点,5节点,乃至于15节点以上的副本集的工作提供了可能。

数据显示,全球数据量将从2018年32.5ZB快速增长到2025年的180ZB。异构、智能和融合的数据库将成为金融、政府、电信等各行业数据基础设施的关键支柱。华为GaussDB(for Mongo),能消除企业各业务系统数据孤岛,构建面向行业场景的数据建模、分析和价值挖掘能力,最终帮助企业实现数据价值挖掘和共享。



标签:WAL,Mongo,只读,SST,GaussDB,读懂,数据,节点
来源: https://blog.51cto.com/u_15214399/2820319