2017-01-26 10 views
0

MongoDBにトランザクションがなく、複数のサーバー上のアプリケーションが複数のコレクションを同時に変更する場合、既存のプロジェクトでは、ロックを処理する分散キャッシュ(Infinispan)を使用する回避策があります。私はこの問題を避けるために何らかの方法でデータベースを設計すべきであることを知っていますが、他の方法はありませんので、q分散キャッシュを必要とせずにこの問題に対処する他の方法を見つけたのだろうかと思います。あなたは、トランザクションがMongoDBのを使用していない必要がある代わりに、RDBMSを使用する場合はMongoDBロックアロスコレクションの回避策

答えて

1
  1. すぐに守る必要があるすべての情報を1つの文書に入れます。
  2. (これらはよりアップフロント配慮されているので)そのオプション1と2を想定すると、

は今、あなたのアプリケーションには適用されません最終的な一貫性を保つために、アプリケーションが寛容でください、あなたはにより例えばオプション3を目指すべき専用のサービスで各コレクションのコンテンツを提供し、httpコード(すなわち、見つからない、移動、変更されたものなど)の「トランザクション」のステータスをマッピングするか、トランザクションが完了するとすぐに不完全な情報を表示して更新をプッシュする。