mongodb WriteConcern

http://www.reader8.cn/jiaocheng/20130826/1875289.html
 
(1)不安全的操作 a)ERRORS_IGNORED:只是将消息发出,忽略一切错误,甚至网络错误也不理会。 b)UNACKNOWLEDGED:将消息发送给socket即返回,不确保数据写入到数据库,因此发生网络错误时会有提示。默认值。 (2)处于弱状态 a)ACKNOWLEDGED:确保已将数据写入到shard中的主节点中,这时如果有针对主节点的查询请求,已经可以查到该数据了。但不保证能从从属节点查询到。 b)FSYNCED:确保数据已写入到shard主节点的磁盘上,这样如果主节点磁盘不损坏,数据就不会因为掉电等原因丢失了。 c)JOURNALED:确保数据写入到服务端的Journal file中,Journal file是POSIX算法中一种保障数据强一致性的一种实现。这种做法可以保证在一个shard中不是所有节点都损坏的前提下数据的安全性。但并不能保证从属节点的数据一致性。 d)MAJORITY:确保数据写入到shard中的多数节点的内存中。 (3)分布式可见 a)REPLICA_ACKNOWLEDGED:保证数据被写入到shard中至少两个节点的内存中。如果shard中只有两个节点,客户端就可以通过nearest选项正确读取到数据了。 (4)最终一致性 MongoDB提供最终一致性的保证,即所有数据都写入到各节点的磁盘上,但实际操作中并没有保证最终一致性的操作设置,这种设置会影响系统的写入性能。

猜你喜欢

转载自jadeluo.iteye.com/blog/2221368
今日推荐