开发者社区 > 数据库 > 正文

MongoDB 增量同步流程是怎样的

MongoDB 增量同步流程是怎样的

展开
收起
一人吃饱,全家不饿 2021-01-08 17:27:39 795 0
1 条回答
写回答
取消 提交回答
    1. Oplog Fetcher 线程负责拉取 Oplog Find 命令创建 Tailable Cursor,GetMore 命令批量从同步源拉取 Oplog,单个 Batch 最大 16MB;
    2. 拉取的 Oplog Batch 放到内存中的 Blocking Queue 中;
    3. ReplBatcher 线程负责从 Blocking Queue 中取出 Batch 生成新的可 Apply 的 Batch 放到 Deque 中,这里主要是因为需要控制并发,有些操作需要放到一个单独的 Batch;
    4. OplogApplier 线程负责从 Deque 中取出 Batch 写 Oplog, 然后把 Batch 拆分, 分发到 Worker 线程进行并发 Apply;
    5. 为了保持一致性,中间需要保存多个不同的 Oplog 应用位点信息。
    2021-01-11 10:12:17
    赞同 展开评论 打赏

数据库领域前沿技术分享与交流

相关电子书

更多
Data as a Service - 数据即服务 -- MongoDB⾼级应⽤模式 立即下载
开源数据库 MongoDB 专场 MongoDB疑难杂症分析及优化 立即下载
饿了么高级架构师陈东明:MongoDB是如何逐步提高可靠性的 立即下载