私のプロジェクト要件はこのようになります。私たちは、マルチデータセンター(DC)のカサンドラクラスターを使用しています。クラスタへの書き込み中は、書き込みが開始されたソースに基づいて書き込み要求を既に目的のDCにルーティングしているため、LOCAL DCのみでノードの書き込みを実行します。したがって、ローカルDCだけで書き込みを処理し、他のDCはノードで書き込みを実行しないようにします。しかし、後でDC間のノード間のレプリケーションのおかげで、書かれたデータをDC間でレプリケートする必要があります。最初の場所で1つのDCのみに書き込みを制限しているときに、DC間でこの複製が可能です。私はこれにDCAwareRoundRobinポリシーを使用することを考えました。書き込み操作中に異なるDCにあるREMOTEホストへの接続を開かないと、後でDC間でデータ複製が可能になります。すべてのDCでデータのレプリカが必要なのは、クラスタからのデータの読み取り中に、必ずしもローカルではなく、読み取り要求が発生するすべてのDCからデータを読み取るようにするためです。Cassandra multi-DC:LOCALで書かれていて、どんなDCでも読む必要があります
0
A
答えて
2
はい、間違いありません。接頭辞「LOCAL_」の一貫性レベルでは、単一のデータセンターにデータを書き込み、他のデータセンターに非同期でレプリケートできます。しかし、この場合、最終的な整合性のみが保証されます。つまり、書き込まれたデータは、非同期レプリケーションのために他のデータセンターにすぐには表示されません。データセンター間に強い整合性が必要な場合は、接頭辞「EACH」の整合性レベルを使用する必要がありますが、待ち時間に大きな影響を与えます。
単一のデータセンターで書き込み要求に強固な一貫性が必要な場合は、次のルールを満たす必要があります(nodes_written + nodes_read)> number_of_replicasたとえば、各データセンターに3つのレプリカがある場合は、 LOCAL_QUORUM整合性レベル(2 + 2> 3)を使用します。最終的な整合性が十分であれば、LOCAL_ONEを使用できます。
There is「地理的な場所のシナリオ」のセクションで同様のケース。
関連する問題
- 1. どのPEPを読む必要がありますか?
- 2. Postgres CTEは必ずしもすべての行を読み込む必要はありませんか?
- 3. ASP.NetでExcelファイルを読むにはExcelがサーバーにインストールされている必要がありますか?
- 4. テキストファイルを読み込んで新しいファイルに書き込む必要があります
- 5. range.format.fillは読み取り専用とみなされていますが、読み書きが必要です
- 6. フィールドが必要な場合でもJAWSは必要に応じてドロップダウンフィールドを読み取っていません
- 7. イメージデータをVCSに書き込む必要がありますか?
- 8. Apache Cassandraをアップグレードする必要がありますか?
- 9. Cassandra:マルチDCクラスタでは、各DCは完全なデータセットを持っていますか?
- 10. Python Cassandraドライバがインストールされていないか、PYTHONPATHにありません
- 11. XMLシリアル化でプロパティを読み書きする必要がありますか?
- 12. このようなトランザクションとしてすべてのデータベースアクセスを書き込む必要がありますか?
- 13. 私のアプローチで提案が必要です:継続的に書かれているファイルを読む?
- 14. MS OfficeはExcelシートを読み込んでSQL Serverテーブルに読み込む必要がありますか?
- 15. クラスがスマートポインタだけで構成されていてもデストラクタをdelclare/defineする必要がありますか?
- 16. はC++の出版物を読む必要があります
- 17. JavaアプレットはMySQLを読む必要があります
- 18. イオンアプリケーションのepubファイルを読む必要があります
- 19. アコーデオンはすべて表示できますが、いつでも開いている必要があります。
- 20. document.preventDefault()は必要なものではありません
- 21. OpenNLP - 略語辞書であっても、略語はまだ必要ですか?
- 22. 新しいアクセストークンを読み込む必要がありますか?
- 23. すべてのsaveOrUpdateメソッドをtry-catchで囲む必要がありますか?
- 24. Sinatraに永続的なフォームデータを保存する簡単な方法はありますか?それとも、ファイルに書式変数を書いて手動で読み込む必要がありますか?
- 25. Thread.sleepなしでセレンコードを書く必要があります
- 26. jQuery:divsは必要ありませんが、これは必要ありません。
- 27. QTscriptにEiskalt DC++用のスクリプトを書く必要があります。 Qtscriptの使用方法を学ぶにはどうすればよいですか?
- 28. パッケージはテスト用にのみ必要であり、インストール用には必要ないものはありますか?
- 29. このリクエストをcassandraで実行するには、cassandraユーザーIDでアクセスしても、匿名でログインする必要があります
- 30. Cassandra:バージョン3.3でも2.2.5でも動作していません
答えてくれてありがとうNikita。もう1つの説明。 3つのDC(DC1、DC2、DC3、各DCに3つのノードがあり、複製係数が3)を持つマルチDCクラスタの読み込み一貫性のためにLOCAL_QUORUMを使用します。このノードは故障しており、DC1の2番目のノードに接続されています.DC1のすべてのノードが故障したと想定します。次に、クラスタは、DC2またはDC3のいずれかを見て、LOCAL_QUORUMを満たすようにする。すなわち、いずれかのDC(DC2またはDC3)からの2つの一貫性のある読み取りの確認を探し、成功すれば成功とみなされるか? –
LOCAL_QUORUMがローカルデータセンターで成功することができない場合、CQLクエリは他のデータセンターにヒットしません。しかし、ドライバはDCAwareRoundRobinPolicyを使用してこのような機能を実装していますが、[推奨されません]ようです(https://medium.com/@foundev/cassandra-local-quorum-should-stay-local-c174d555cc57)。また、[この記事](https://medium.com/@foundev/cassandra-how-many-nodes-are-talked-to-with-quorum-also-should-i-use-it-98074e75d7d5)は役に立ちます適切な整合性レベルを選択する。 –