結果整合性
Eventual Consistency
分散データベース環境で一定時間経過後には最終的のデータの一貫性が整うこと
結果整合性とは、エンティティに対して新たな更新がない限り、最終的にそのエンティティのすべての読み取りに、最後に更新された値が返されることを理論的に保証するものです。
hiroki.icon最後に更新された値を返すことを保証するけど、常に最新の値になっているとは限らないという話
S3とかiamとかdnsとか当てはまる
マイクロサービスで必ずデータの整合性が問題になる。その時にシステム全体として結果整合性を実装することになるけどかなり難しくなりそう。結果整合性は無茶苦茶で良いというものではなく一貫性はしっかりと担保しなければいけないのだ。 ACID特性が更新されたデータは即座に反映されているという思想を担保する 結果整合性はある一定時間経過でデータが反映されていれば良いという思想。
table:強整合性と結果整合性
強整合性 結果整合性
データのロック あり なし
スケーラビリティ 低い(アップ) 高い(アウト)
一貫性 即座に担保 すぐには担保されない
マイクロサービスとかで結果整合性が許容できない
→トランザクションを分割するべきではない
hiroki.iconどちらかを選択するしかないので選択の問題