来自AI助手的总结
MongoDB通过oplog异步复制、选举容错并支持多种读写一致性配置。

一、数据是如何复制的?
当一个修改操作,无论是插入、更新或删除,到达主节点时,它对数据的操作将被记录下来(经过一些必 要的转换),这些记录称为 oplog。
从节点通过在主节点上打开一个 tailable 游标不断获取新进入主节点的 oplog,并在自己的数据上 回放,以此保持跟主节点的数据一致。

二、自动故障转移
下图为选举过程示意图:

副本集在选举成功之前不能处理写操作。如果将这些查询配置了在 secondary节点上运行,当 primary 处于脱机状态时,复制集也是可以继续提供读查询服务。
三、关于 MongoDB 的读操作
在默认情况下,客户端从 Primarγ 读取数据,但是客户端可以指定读取偏好,以将读取操作发送给从库。复制是异步的,所以从库返回的数据可能不是最新的。
在 MongoDB 中, 客户端可以在写入真正落盘之前看到写入的结果,即 Read Uncommitted。
-
无论 write concern 是如何配置的,当客户端使用 “ local ”或 “available readConcern 时, 其他客户端都可以在写入操作发给客户端确认之前看到写入操作的结果。
-
使用 “ local ”或 “avail ab read Concern 客户端可以读取可能随后回滚的数据。
在事务提交之前,在事务中所做的数据更改在事务外部是不可⻅的。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END





暂无评论内容