これはDocumentDBに関する新しい質問です。アプリケーションにDocumentDBを使用したいと考えています。 DocumentDBに格納されているデータを複数のユーザーが変更しています。あるユーザーが別のユーザーの変更を上書きしないようにするにはどうすればよいですか?DocumentDBの並行性
4
A
答えて
-4
DocumentDBは並行性を保護しません。既存の文書に新しいバージョンの文書を投稿すると、古い文書は上書きされます。並行書き込みに対して保護できる場合は、文書のタイムスタンプを使用する必要があります。 documentDB内のすべてのドキュメントには、最後のアクションのタイムスタンプがあります。
更新するたびに、更新するドキュメントのタイムスタンプが取得したタイムスタンプと同じか、変更されたかどうかを確認できます。 isが変更された場合、ユーザーには最新のバージョンがないため、更新をキャンセルすることができます。
最高のことは、ストアドプロシージャを作成して、このロジックをストアドプロシージャ内に配置して、アプリケーションに依存しないようにすることです。
13
DocumentDBにはのオプティミスティックな並行性があり、各ドキュメントにはETag
があります。書き込み中にETagが変更された場合、書き込みは失敗します(ETagが変更された場合、他の誰かがその文書を変更したことを意味します)。この状態では、問題のドキュメントを再度読み込んで変更する必要があります。
詳細はfaq hereを参照してください。
関連する問題
- 1. DocumentDbストアドプロシージャを並列に実行する
- 2. 並行性と並行性の低下
- 3. jQuery - 並行性?
- 4. HashTable並行性
- 5. WCF並行性?
- 6. Elmの並行性
- 7. シェルスクリプトファイルウォッチャーの並行性
- 8. tbb並行コンテナの性能
- 9. Androidとの並行性
- 10. JSF並行性の問題
- 11. RejectedExecutionExceptionとClojureの並行性
- 12. フレックスとデータの並行性
- 13. JS&並行性の問題?
- 14. C - 並行性の問題
- 15. Haskellの並行性と永続性
- 16. azure documentdb culture並べ替え中
- 17. WCF並行性とマルチスレッドクライアント
- 18. Ember並行性とWebワーカー
- 19. 並行性とレート制限
- 20. Django - Postgresql:トランザクションと並行性
- 21. スウィフトキュー/並行性とロック
- 22. C#並行性とエージェント
- 23. Azure DocumentDB分散Webアプリケーションの一貫性
- 24. Spockでのスレッドの並行性のテスト
- 25. YARN:ジョブの並行性の制御
- 26. C#MVCアプリケーションの並行性の問題
- 27. MSSQLの並行性チェック(TSEQUALの代替)
- 28. ClojureのSTMとの並行性
- 29. Python-C APIの並行性の問題
- 30. parallel()の並行性の問題
これを特に扱う組み込みのETagメカニズムがあります。タイムスタンプをチェックしても、サーバーがETagに基づく書き込みを拒否することはできません(2人のライターは同時にタイムスタンプをチェックできます)。 –
デビッドが本当に良い答えです。 「楽観的同時実行性」、「ETag」、これらは正しい用語です。 ETagがタイムスタンプであることは明らかではありません。また、私はsprocsが2人のユーザーから来る書き込みのこの単純な状況に最適であるとは言いません。 ETagメカニズムは、sprocsよりもエラー処理に対処する方が簡単で簡単です。 Sprocs _は、あなたが同じトランザクションで読み書きしている場合、またはお互いに一貫している必要がある複数の書き込みを行っている場合に最適です。私はまた、データ検証を行うための書き込みのためにsprocsを好む。 –