开发者社区> 问答> 正文

ChangeStreams的顺序性—如何满足因果一致性该如何理解

ChangeStreams的顺序性—如何满足因果一致性该如何理解

展开
收起
不变的狗子 2021-09-28 16:19:40 3492 0
1 条回答
写回答
取消 提交回答
  • 热爱技术

    假如用户写请求,将 insert a=1,写在 Shard2 上 , 此时这条语句通过 ChangeStreams 吐出来了。

    后来用户又 Update 了该条文档,把它从 a=1 改成 a=2,这条操作落在了 Shard2 上,此时 ChangeStreams 会把第 2 条文档输出,也就是说这两条文档 是具有前后因果性的,不会先吐出第 2 条文档再吐出 第 1 条文档,顺序保持严格的因果性。 image.png 另一个例子,例如用户 Insert 了 1 条数据是 a=1,然后 它落在 Shard2 上,然后又 Insert 了 1 条数据 a=2,但 它落在 Shard3 上。

    后来这 2 条数据它是同时落在 2 个不同的 Shard 上 的,那么 ChangeStreams 它吐出的顺序可能是先 a=2,再 a=1,也就是说,如果 2 条数据在不满足因 果序的条件下,吐出的changeStrearn event 不能 够保证先后顺序。

    image.png

    资源来源:电子书《玩转MongoDB从入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=1060

    2021-09-29 15:01:00
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Redis集群演化的心路历程——从2.x到3.0时代 立即下载
Redis集群演化的心路历程 立即下载
事务、全局索引、透明分布式 立即下载