CAP理論によると、Cassandraは結果整合性しか持てません。さらに悪いことに、適切な処理を行わずに1つの要求中に複数の読み取りと書き込みが行われると、論理的な一貫性が失われる可能性があります。言い換えれば、私たちが物事を速く行うならば、私たちはそれを間違って行うかもしれません。
一方、Cassandraのデータモデルを設計するためのベストプラクティスは、実行するクエリについて考え、それにCFを追加することです。このように、1つのエンティティを追加/更新するということは、多くの場合、多くのビュー/CFを更新することを意味します。アトミックトランザクション機能がなければ、それを正しく行うことは困難です。しかし、それで、AとPの部分が再び失われます。
これは多くの人に関係しているとは思わないので、なぜだろうと思います。
- これは、1回のセッションで複数の読み取りと書き込みを行わないようにデータモデルを設計する方法を常に見つけることができるためですか?
- これは、「正しい」部分を無視できるからですか?
- 実際には、ACID機能は常に中間のどこかにありますか?アプリケーション層に実装するのか、それを処理するミドルウェアを追加するのか。