在 MongoDB 中,为什么 read concern "available" 非因果一致会话中辅助节点的默认选项?

In MongoDB, why is read concern "available" default option for secondaries in non causally consistent sessions?

我对因果一致性如何影响在阅读关注 "local" 与 "available" 之间进行选择的决定感到困惑。

为什么读取关注 "available" 是非因果一致会话时辅助节点的默认值?

我了解 "available" 对于分片集群的行为与 "local" 对于非分片集合的行为。

我只是看文档无法建立连接。

如果有人帮助我桥接,我将不胜感激。先谢谢了。

以下是分片集群方面的读取关注度摘要:

  • majority:只有returns的数据写入了多数投票节点,不会回滚。
  • local: returns 本地节点上的数据,但已过滤掉孤立文档。这需要节点与分片的主节点(如果此读取在辅助节点上)或配置服务器通信以服务读取。在降级的分片集群中,此读取可能会无限期地停止。不过,这对于未分片的集合来说不是问题。可能 return 可以回滚的数据。
  • 可用: returns 任何可用的数据。这是为了允许读取可用性优先于正确性。可能 return 可以回滚的数据。参见 Read Concern "available"

分片辅助默认为 "available" 阅读关注以保持与 MongoDB 3.4 的行为兼容性(参见 SERVER-31032

因果一致性可以提供不同的保证,具体取决于所使用的读写关注点(请参阅 Causal Consistency and Read and Write Concerns 了解详尽的细节),其中读取自己的写入、单调读取、单调写入和写入跟随读取之间的平衡可以通过使用不同级别的读写关注点来实现。

由于因果一致性提供了数据完整性的表面保证,因此它与 "available" 读取关注不兼容,因为 "available" 不提供有关完整性的保证,而是强调可用性.