7

MongoDB は私にとって素晴らしいデータベースです。ただし、アトミックなマルチドキュメント トランザクションが本当に必要な場合があります。たとえば、アカウント間で物 (お金や評判など) を転送するには、完全に成功するか完全に失敗する必要があります。

MultiVersion Concurrency Control パターンを実装するライブラリを介して MongoDB とやり取りすることは可能でしょうか。

パフォーマンスに関してはどれほど悪いでしょうか?必要な場合にのみ「mongo-mvcc」ライブラリを使用し、単一のドキュメントでのみ作業する場合に従来のデータベース接続を使用するハイブリッドアプローチを使用することは可能であり、有益でしょうか?それとも mvcc のものを壊しますか?

4

5 に答える 5

7

最も簡単な方法は、ロック(2フェーズコミット)を使用することですが、これは場合によってはあまり効率的ではありません。より高い並行性のために、ある種のMVCCをMongoの上に実装することができます。この記事は良い説明を提供します:

http://highlyscalable.wordpress.com/2012/01/07/mvcc-transactions-key-value/

于 2012-01-07T16:20:33.473 に答える
6

マネートランザクションは、2フェーズコミットを介して実装できます:http ://www.mongodb.org/display/DOCS/two-phase+commit

于 2011-07-04T20:23:17.967 に答える
5

現在GitHubで利用可能なMongoDBにMVCCの実装があります。

https://github.com/igd-geo/mongomvcc

于 2012-03-29T11:06:33.007 に答える
2

MongoDB は、実際にはトランザクションを処理するようには設計されていません。これをどのように実装できるかについての非常に良い議論があります: http://kylebanker.com/blog/2010/04/30/mongodb-and-ecommerce/

于 2011-05-13T12:18:29.590 に答える
-1

実際のトランザクションが必要な場合は、それらをサポートするように設計されたRDBMSを使用します:) NoSQLは、主にトランザクションをサポートしないため、より高速でスケーラブルです。

両方が必要な場合は、トランザクションをサポートするトランザクションレイヤーと他の目的のNoSQLレイヤーを用意することをお勧めしますか?場合によっては、MongoDBとPostgreSQLなどを使用してハイブリッドシステムを作成することは難しくありません。

于 2011-07-04T21:04:03.080 に答える