写操作
复制集
mongo所有的节点都是写入到primary节点,同时写入oplog,secondary 节点会持续的从primary节点上复制oplog的信息,然后根据oplog写数据。secondary 节点的复制oplog,写数据是一个异步的过程.
oplog 是一个capped collection(固定大小的集合,超过最大值后自动覆盖老的值),记录对数据库的更改操作。oplog大小默认是disk的5%,可以根据你的应用去调节
sharding 环境
sharding 集群环境,由mongos来分发,通过config server 保存的信息,将数据写到对应的shard上
write concern
write concern 其实就是写操作的一致性级别,对于cassandra,每个节点都是一样的,所以一致性等级就是设置写多少个节点成功。而mongo就比较复杂一点
{w: <value>,j: <boolean>,wtimeout: <number>}
w 表示写应答
w 可以为数字,代表的是收到写入成功的mongod 数目。w也可以是”majority”,表示收到了大多数投票节点的应答。还可以是表示收到了被标记了某tag的复制集的某个节点应答。
j是写操作是否被写入到journal
3.2版本,j:true 要求w中设置的节点都写入到了journal.以前版本中,只要求复制集中的primary写入到了journal接可以,而不管w设置的值。
w