3.2版本复制集同步的过程参考MongoDB 复制集同步原理解析

在 3.4 版本里 MongoDB 对复制集同步的全量同步阶段做了2个改进

  • 在拷贝数据的时候同时建立所有的索引,在之前的版本里,拷贝数据时会先建立_id索引,其余的索引在数据拷贝完之后集中建立
  • 在拷贝数据的同时,会把同步源上新产生的oplog拉取到本地local数据库的临时集合存储着,等数据全量拷贝完,直接读取本地临时集合的oplog来应用,提升了追增量的效率,同时也避免了同步源上oplog不足导致无法同步的问题。

上图描述了这2个改进的效果,实测了『10GB的数据,包含64个集合,每个集合包含2个索引字段,文档平均1KB』,3.4版本的全量同步相比3.2版本性能约有20%的提升,如果数据集很大,并且在同步的过程中有写入,提升的效果会更明显,并且彻底解决了因同步源oplog不足而导致全量同步失败的问题。

云数据库 MongoDB 版
基于飞天分布式系统和高性能存储,提供三节点副本集的高可用架构,容灾切换,故障迁移完全透明化。并提供专业的数据库在线扩容、备份回滚、性能优化等解决方案。
了解更多

MongoDB 3.4 复制集全量同步改进相关推荐

  1. Elasticsearch 的全量同步和增量同步

    (1)全量同步 什么是全量同步:将一个mysql的整个表的所有数据都同步到es中 常用插件是logstash-input-jdbc,logstash通过sql语句分区间对数据进行查询,然后输出到es进 ...

  2. 【图解】redis主从同步流程——全量同步、部分同步、命令传播

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.全量同步 二.部分同步 三.命令传播 总结 前言 本文主要介绍Redis高可用下的主从同步问题,包括全量同步.部分 ...

  3. Redis持久化机制 -全量同步与增量同步的区别

    全量同步与增量同步的区别 全量同步:就是每天定时(避开高峰期)或者采用一个周期实现将数据拷贝到一个地方也就是Rdb存储. 增量同步:比如采用对行为的操作实现对数据的同步,也就是AOF. 全量与增量的比 ...

  4. 数据同步之全量同步与增量同步

    一.什么是数据同步 业务数据是数据仓库的重要数据来源,我们需要每日定时从业务数据库中抽取数据,传输到数据仓库中,之后再对数据进行分析统计. 为保证统计结果的正确性,需要保证数据仓库中的数据与业务数据库 ...

  5. mongoDB研究笔记:复制集概述

    自我学习,仅供参考: 数据库总是会遇到各种失败的场景,如网络连接断开.断电等,尽管journaling日志功能也提供了数据恢复的功能,但journaling通常是针对单个节点来说的,只能保证单节点数据 ...

  6. es 全量同步mysql_什么时候该用MySQL,什么时候该用ES呢?

    作者:张sir 来源:京东技术 京东到家订单中心系统业务中,无论是外部商家的订单生产,或是内部上下游系统的依赖,订单查询的调用量都非常大,造成了订单数据读多写少的情况. 我们把订单数据存储在MySQL ...

  7. DM 源码阅读系列文章(四)dump/load 全量同步的实现

    作者:杨非 本文为 DM 源码阅读系列文章的第四篇,上篇文章 介绍了数据同步处理单元实现的功能,数据同步流程的运行逻辑以及数据同步处理单元的 interface 设计.本篇文章在此基础上展开,详细介绍 ...

  8. MySQL全量同步和增量同步-

    me:为啥你们队答辩时说的话, 我听了没啥感觉, 评委听了直接就深有感触了? 资深:生产不可能只同步一张表和10W数据, 其他队伍用jdbc的方法同步全量数据, 在真实环境决绝报错.生产都是5000万 ...

  9. es 全量同步mysql_使用canal将mysql同步到es中

    因为自己项目中需要用到mysql数据同步到es中,查找了相关资料最后决定用canal来做,所以便有了本文,下面一起来看如何使用canal吧 canal教程 根据 https://github.com/ ...

最新文章

  1. Exchange20132016删除默认邮箱数据库及移动数据库路径
  2. 影响线型缩聚物分子量的因素_【CRPS】通过硼烷引发剂实现氧气引发的超高分子量聚合物的可控合成...
  3. 安装zookeeper集群
  4. 点云网络的论文理解(二)- PointNet的pytorch复现
  5. unet训练自己的数据集_基于UNet网络实现的人像分割 | 附数据集
  6. 2020 AI 产业图谱启动,勾勒中国 AI 技术与行业生态
  7. Collections类操作集合详解
  8. 简单说下C#变量的作用域
  9. pyqt5 判断lineedit是否为空_是否注意过isEmpty 和 isBlank 区别?
  10. 大型网站系统架构实践(一)从简单到复杂
  11. 20190602:JDBC的增删改操作实践
  12. 在华为服务器 RH 2288H V2上装 windows 2008
  13. mbot机器人编程课件_mbot机器人教程创客大赛
  14. Redis下载和安装
  15. 为了让你在“口袋奇兵”聊遍全球,手撕ArrayList底层,透彻分析源码
  16. 《Java并发编程的艺术》——锁(笔记)
  17. php上传头像的代码,关于微信小程序中上传头像的代码
  18. Python GUI 设计(一)———Tkinter窗口创建、组件布局
  19. 三菱Plc怎么用c语言编程,如何用程序在三菱PLC上写出配方功能
  20. 如何在阿里云开通云服务器

热门文章

  1. 从Win8预览版的发布来选择最合适的虚拟机软件
  2. spring cloud (一):大话 Spring Cloud
  3. Realm发布Realm .NET,扩展支持.NET技术栈
  4. request 和response
  5. Javascript将构造函数扩展为简单工厂
  6. 寻找带环的链表的柄长
  7. Servlet-forward转发
  8. mysql 存储中文问题
  9. 学习 Ruby on Rails 真的很爽!
  10. linux下必看的60个命令