0

MongoDBサーバーで(Rubyドライバーを使用して)一連の非アトミックアクションを単一のアトミックアクションとして実行する方法はありますか?私が必要としているのは、基本的に特定のオブジェクト/コレクションのロックです。

4

2 に答える 2

1

単一のドキュメントに対してアトミック操作を実行できるため、必要なものをシミュレートする方法があります。この記事を参照してください:

http://kylebanker.com/blog/2010/06/07/mongodb-inventory-transactions/

そして、そこにあるアイデアの背後にあるいくつかの原則については、これを参照してください。

http://www.eaipatterns.com/docs/IEEE_Software_Design_2PC.pdf

于 2010-11-17T18:47:47.370 に答える
0

MongoDBでそれを行う方法がないため、Rubyドライバーでそれを行う方法はありません。Mongoは、単一ドキュメントのアトミック操作のみをサポートします。したがって、基本的に、単一のドキュメントの挿入、更新、または削除はアトミックに実行されますが、複数のドキュメントにわたる操作は実行されません。

エラーが発生した場合、手動で「ロールバック」を試みることにより、トランザクションを偽造できる可能性があります。この場合のロールバックは、変更を以前の値に置き換えることです。ただし、これは手動で行われるため、ほとんどのSQLサーバーから取得するACID保証はありません。

于 2010-11-17T14:28:40.020 に答える