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

MongoDB ChangeStreams 在副本集同步里面做了哪些操作?

MongoDB ChangeStreams 在副本集同步里面做了哪些操作?

展开
收起
一人吃饱,全家不饿 2021-01-08 20:01:53 838 0
1 条回答
写回答
取消 提交回答
    1. MongoDB 收到 ChangeStreams 请求后会先过滤 Oplog,就是先去拉 Oplog 表,然后过滤 Oplog,根据用户设定的参数,如用户只要某个表,那么就会过滤掉其他库表的数据,同时它还会过滤掉本身没用的 Oplog 数据,如 Noop Event。
    2. 过滤完后,它会把 Oplog 的数据转化成 ChangeStreams Event(因为 Oplog 和 ChangeStreams Event 格式是不一样的,需要进行转换)。
    3. 判断是否需要返回 Invalidate,如果表被删掉了,此时就需要返回 Invalidate。
    4. 判断是否需要恢复数据流。
    5. 如果是 Invalidate,则需要处理具体关闭 Cursor 逻辑
    6. 如果参数设置了 FullDocument=True,则会进⾏⼀次额外的 Query。
    2021-01-08 20:02:00
    赞同 展开评论 打赏

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

相关电子书

更多
Data as a Service - 数据即服务 -- MongoDB⾼级应⽤模式 立即下载
阿里云MongoDB云服务构建 立即下载
饿了么高级架构师陈东明:MongoDB是如何逐步提高可靠性的 立即下载