LWT が c* で利用可能になったので、更新された情報でこの古いスレッドを復活させます
歴史
Cassandra でのロックの実装が検討され、反対されました。この Jira で履歴、会話、最終的な解決策を確認できます --
https://issues.apache.org/jira/browse/CASSANDRA-5062 .
要約すると、1) cassandra に対して何らかのロックを実行できる外部オプションがいくつかあります (つまり、hector など) が、これらは次善のソリューションです。2) c* ロックを実装するのではなく (Zookeeper の統合と単一障害点の導入を意味します)、cassandra 独自の Paxos の実装を構築することが決定されました。これは、C* 2.0 以降で使用可能な軽量トランザクションとして公開されており、現在は DSE にあります。
例
このビデオでは、大手銀行が C* で LWT を使用している様子を見ることができます
https://www.youtube.com/watch?v=-sD3x8-tuDU&list=PLqcm6qE9lgKJkxYZUOIykswDndrOItnn2
注意点
1) LWT は、定義上、Cassandra の通常の挿入/更新ステートメントよりも遅く、少数のユース ケースで使用するように設計されています。ワークロードの 1%。
2) LWT はパーティション内でのみ機能します。クロス パーティション挿入は LWT をブロックしません。