MongoDB是否在副本集中保持写顺序?

时间:2019-06-21 16:39:13

标签: mongodb

我正在使用单个副本集MongoDB。我的问题是,如果有多个客户端同时写入同一文档,那么写入顺序将是有关的。

场景: 客户端1-在t0写入doc1 客户端2-在t0 + delta处写入doc1

MongoDB是否可以保证发生客户端1写入然后发生客户端2写入?

我已经从MongoDB中读取了多个文档,并且怀疑不支持写入顺序,因此可能首先发生来自两个客户端中任何一个的写入。但是我只想确认一下。

1 个答案:

答案 0 :(得分:0)

如果您使用wiredtiger存储引擎,则该订单将按如下所述进行维护。

1)客户端1将对doc1进行互斥写锁定,因此在释放该锁定之前,不允许对doc1进行任何其他写操作。

2)一旦客户端1完成写操作并释放了锁定,客户端2将对doc1进行排他性写锁定,然后执行与步骤1相同的过程。

因此,此处的订单将得到维护。