0

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

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

MongoDB 会保证客户端 1 写入发生,然后客户端 2 写入发生吗?

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

4

1 回答 1

0

如果您使用的是wiredtiger存储引擎,顺序将保持如下所述。

1) 客户端 1 将在 doc1 上获取排他写锁,因此在锁被释放之前,不允许对 doc1 进行其他写操作。

2) 一旦客户端 1 完成写入并释放锁,客户端 2 将在 doc1 上获取独占写入锁,并遵循与步骤 1 相同的过程。

所以这里的顺序将保持不变。

于 2019-06-21T21:48:05.727 回答