当前位置: 首页 > 科技观察

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

时间:2023-03-12 07:11:07 科技观察

对于物联网企业来说,IT架构升级几乎是每一个发展阶段都不可避免的坎。在公司高速发展的同时,线上业务快速增长,服务架构一次次承受冲击。高性能要求下,也伴随着巨大的成本。应对双倍并发的业务,需要加强接入层和后端的计算能力,相应的缓存IO并发压力只会越来越大。如何节省成本并保持性能?其实关键就在最上层的数据库。得益于其灵活的数据结构和强大的集群扩展能力,文档数据库的MongoDB分片集群架构常被选择作为发展物联网企业的后端数据库。传统的MongoDB分片集群是典型的分布式架构。每个分片需要三个节点(Secondary)组成一个副本集来提供多副本冗余。不仅配置服务器(ConfigServer)需要消耗三个节点,每个分片(ShardServer)也需要三个节点,而且只有一个节点可以写入。传统MongoDB架构图MongoDB副本集基于Raft分布式共识协议,包括节点主备选举、数据同步、日志追加等技术细节。这种架构具有明显的优势:自动故障转移、三副本数据冗余,最重要的是稳定性和可靠性。所以,对于一般的DBA来说,这个“祖传”的结构根本就不好动。但是,MongoDB副本集架构也决定了它几乎与生俱来的缺陷:在提供三副本存储的同时,只有单个节点可以写入,浪费了两个节点的算力。那么,华为云近期推出的MongoDB社区增强版是如何优化这一祖传架构并大幅提升性能的呢?华为云MongoDB社区增强版关键技术华为云MongoDB社区增强版以优化传统架构,将性价比提升到最佳为使命而生。维护三份存储,每个节点提供读写能力,不浪费计算资源。其中一项关键技术处于行业领先地位。放弃副本集,解放所有节点。华为MongoDB社区增强版将所有分片节点升级为primary,提供读写能力,与副本集中同等成本的计算节点相比,提供3倍的算力。摒弃“老传统”,节省计算资源,如何保证数据三副本?存储和计算分离,副本卸载到存储。在传统的集群计算和存储的混合部署中,我们希望通过更少的数据迁移来实现更高的资源利用率。但是,在带宽不再紧缺,磁盘计算能力不断提升的今天,混合部署带来的桶效应相对明显,造成了集群资源的浪费。华为云MongoDB社区增强版将存储与计算分离,在存储层实现三副本冗余,既保证了数据容灾能力,又节省了计算成本。实现三副本冗余可以节省计算资源,同时需要具备故障转移能力。当副本集被破坏时,所有分片服务器相互支持。如果三节点副本集中的一个节点发生故障,将重新选举一个领导者来领导副本集。当副本集中的两个节点发生故障时,整个副本集将无法工作。华为云MongoDB社区增强版节点没有副本集主备关系。当一个ShardServer发生故障时,其他ShardServer将接管其数据。由于存储层数据共享,接管业务不需要迁移数据,只需要计算层节点从存储层加载相应数据即可。与副本集中两个故障节点相比,MongoDB社区增强集群在计算能力允许的情况下可以容忍N-1个节点故障。更多华为云MongoDB社区增强版信息,请访问官网:https://activity.huaweicloud.com/dfv_mongo/index.html