数据库“祖传”架构难优化?华为云 MongoDB 社区增强版来帮忙,300% 性能提升

举报
小路~ 发表于 2018/08/23 17:30:02 2018/08/23
【摘要】 对 IOT 企业而言,IT 架构升级几乎是每个发展阶段都绕不开的坎。当公司飞速发展,在线业务迅猛增长,服务架构一次次承载冲击,高性能需求下,巨额成本也相伴而生。要处理翻倍的并发业务,接入层、后端的计算能力均需要加强,相应的缓存 IO 并发压力也只增不减。如何节省成本保持性能?其实关键点在于最底层的数据库上。 得益于灵活的数据结构和强大的集群扩展能力,文档数据库 MongoDB...

对 IOT 企业而言,IT 架构升级几乎是每个发展阶段都绕不开的坎。当公司飞速发展,在线业务迅猛增长,服务架构一次次承载冲击,高性能需求下,巨额成本也相伴而生。要处理翻倍的并发业务,接入层、后端的计算能力均需要加强,相应的缓存 IO 并发压力也只增不减。如何节省成本保持性能?其实关键点在于最底层的数据库上。

 

得益于灵活的数据结构和强大的集群扩展能力,文档数据库 MongoDB 分片集群架构常被选择作为发展中 IOT 企业的后端数据库。

 

传统 MongoDB 分片集群是典型的分布式架构,每个分片需要三个节点(Secondary)组成一个副本集提供多副本冗余。不但配置服务器(Config Server)需要耗费三个节点,而且每个分片(Shard Server)也都需要三个节点,且只有一个节点能写入。

 1.png

                                                         传统 MongoDB 架构图

 

MongoDB 副本集基于 Raft 分布式一致性协议,其中包含了节点主备间选举、数据同步、Log 追加等技术细节,可以说是根正苗红。该架构优势明显:自动故障接管、数据三副本冗余,最重要的是稳定可靠。因此对一般 DBA 而言,这种“祖传”架构,轻易根本不敢动。

 

然而,MongoDB 副本集架构也决定了其几乎先天的缺陷:提供三副本存储的同时,只有单节点可写,浪费了两个节点的计算能力。

 

那么,华为云近期推出的 MongoDB 社区增强版,是如何优化这祖传架构,将性能大幅提升的呢?

 

华为云 MongoDB 社区增强版关键技术

 

华为云 MongoDB 社区增强版带着优化传统架构、将性价比提升到极致的使命而生,保持三副本存储,每个节点提供读写能力,计算资源不浪费。其中的关键技术在业界更是处于主要地位。

 

放弃复制集,解放所有节点

 

华为 MongoDB 社区增强版将所有分片节点升级为 primary 提供读写能力,这样相较复制集的相同成本的计算节点,提供了三倍的计算能力。

2.png

 

摒弃 “老传统“,节省了计算资源,那么如何保证数据的三副本?

 

存储计算分离,副本卸载到存储

 

在传统集群计算存储混合部署的方式中,我们期望越少的数据迁移以获得更高的资源利用率。然而在带宽不再稀缺,磁盘计算能力不断提升的今天,混合部署带来的木桶效应也相对明显,造成了集群资源的浪费。

 

华为云 MongoDB 社区增强版将存储与计算分离,存储层作三副本冗余,既保障了数据容灾的能力,又节省了计算成本。

3.png

 

做到存储层三副本冗余,节省了计算资源,还需要有故障接管的能力。

 

打破副本集,所有Shard Server相互扶持

三节点副本集中出现节点故障,会重新选出领导,领导副本集。当副本集中出现两个节点故障,整个副本集将无法工作。

4.png

 

 

华为云 MongoDB 社区增强版节点间没有副本集主备关系,当一个 Shard Server 出现故障,其他 Shard Server会接管它的数据。

 5.png

 

由于存储层数据共享,接管业务不需要迁移数据,只需要计算层节点从存储层加载对应数据即可。相比副本集中故障两个节点就无法工作,MongoDB 社区增强版集群在计算能力允许的情况下,可以容忍 N-1 个节点故障。

 

了解华为云 MongoDB 社区增强版更多信息,请移步官网:

https://activity.huaweicloud.com/dfv_mongo/index.html

 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。