私はラムダアーキテクチャでCAP定理を打ち負かす方法についてNathan Marzのarticleを読んできましたが、最終的な一貫性がどのように変わらないのかを理解していません。不変データは最終的な一貫性をどのように自明にしますか?
次の段落は、記事から取られる:
キーはデータが不変であるということです。不変のデータとは、更新のようなものがないことを意味します。したがって、データの異なる複製が矛盾することは不可能です。これは、発散値、ベクトルクロック、またはリード修復がないことを意味します。クエリの観点からは、データが存在するか存在しないかのいずれかです。そのデータにはデータと関数だけがあります。最終的な一貫性を強制するために必要なことは何もありません。最終的な一貫性はシステムについての推論の仕方にはなりません。
私は2つのノードAとBを持つ分散型の挿入専用データベースを持っており、両方ともレコード[timestamp=1; id=1; value=10]
を保持しています。それと同時に、ノードAに対する挿入があり、結果は[timestamp=2; id=1; value=20]
であり、レコードのノードBに対する読み取りはid=1
である。
最終的な一貫性の問題を、この例では更新の可能性のあるデータベースよりもどのように解決するのですか?