RubyのMongoDBのドライバで「アトミック・セクション」?
-
25-09-2019 - |
質問
単一のアトミックアクションとしてのMongoDBサーバー(Rubyドライバーを使用して)上の非アトミックアクションのセットを実行する方法はありますか?私に必要なのは、基本的には、特定のオブジェクト/コレクションのロックされます。
解決
MongoDBの中でそれを行うための方法はありませんので、Rubyドライバーでそれを行うための方法はありません。 Mongoのは、単一のドキュメントアトミック操作をサポートしています。だから、基本的には、挿入、更新、または単一の文書の削除は、複数のドキュメント間での操作をアトミックに行われますが、されていません。
エラーが発生した場合、あなたは、マニュアル「ロールバック」を試みることによって、取引偽物にできる可能性があります。この場合、ロールバックは、以前の値を持つすべての変更を置き換えることであろう。しかし、それはあなたがほとんどのSQLサーバから取得することをACID保証を持っているマニュアルに行っていない。
他のヒント
あなたは、単一のドキュメント上のアトミック操作を行うことができますので、あなたが望むものをシミュレートする方法があります。この記事を参照してください。
http://kylebanker.com/blog/2010/06 / 07 / MongoDBの-在庫取引/ の
そして、そこのアイデアの背後にある原則のいくつかのために、この1参照してください。
をhttp://www.eaipatterns.com/docs/IEEE_Software_Design_2PC.pdfする
所属していません StackOverflow