4

現在、mongodb で CAS 操作を適切に実装して楽観的ロックをサポートする方法を理解しようとしています。の更新がアトミックであることがわかりましたが、mongodbこれが何を意味するのかわかりません (ドキュメントの書き換えのみがアトミックなのか、対応するドキュメントの検索とその書き換えを含むすべての更新サイクルがアトミックなのか?)。次の例を考えてみましょう。

  1. 一部のドキュメントは、_id値が 123 に設定され、属性cas_valが 10 に設定されたコレクションに存在します。
  2. cas_val最初のクライアントは、ドキュメント_idを 123 から 11に更新したいと考えています。
  3. cas_val2 番目のクライアントは、ドキュメント_idを 123 から 11に更新したいと考えています。
  4. 両方のクライアントが同時に動作し、動作はインターリーブできます。

では、 123 を含むドキュメントへの他の更新が実行されなかった場合、両方の操作が成功する可能性はありますか?_id

mongodbPS楽観的ロックのシナリオに組み込みの手法はありますか?

4

2 に答える 2