【データベース】1ミリの狂いも即座に許さない!「強い整合性」|情報処理問題1000本ノック
分散データベースにおいて、「いずれ同じデータになる(結果整合性)」のではなく、「今この瞬間に全員が同じ最新データを共有する」という厳格な一貫性、強い整合性を攻略しましょう。
1. 【 問題 】:データの一貫性モデル
【 問題 】 分散データベースシステムにおいて、あるデータを更新した際、その処理が即座に反映され、それ以降にどのシステムやノードからデータを読み出しても、必ず最新の更新結果が返ってくることを保証する性質を何と呼ぶでしょうか?
① 最終整合性 (Eventual Consistency)
② 弱い整合性 (Weak Consistency)
③ 強い整合性 (Strong Consistency)
④ 因果整合性 (Causal Consistency)
2. 正解:
正解: ③ 強い整合性(Strong Consistency / ストロング・コンシステンシー)
3. 解説:「即座に反映」という絶対のルール
強い整合性は、従来のRDBMSのACID特性における「一貫性」を分散システムでも死守する考え方です。データのズレが許されない金融システムなどで必須となります。
■ 強い整合性(Strong Consistency)
・特徴:更新したら即座に全体へ反映。どこから読んでも「最新」。
・代償:全員の同期を待つため、書き込みの処理速度が落ちたり、通信が途切れた時にシステムが止まりやすい(可用性が下がる)。
■ 結果整合性(Eventual Consistency)
・特徴:更新した直後は古いデータが見えるかもしれないが、「いずれ(結果的に)」全員が同じ最新データに追いつく。
・利点:同期を待たないので超高速。一部のサーバーが死んでいても動き続けられる。
★ 分散システムでは「一貫性(C)」「可用性(A)」「分断耐性(P)」の3つのうち2つしか選べないという「CAP定理」があります。「強い整合性」を選ぶということは、一貫性(C)を最優先にするという意味です。
1. 理解のコツ: 銀行の口座残高をイメージしてください。AATMで現金を振り込んだら、別のBATMやスマホアプリで1秒後に残高を見ても、絶対に振り込み後の金額(最新)になっていなければ困ります。この「いつでもどこでも即座に最新」が強い整合性です。
2. 試験対策の視点: 「結果整合性に対して」「即座に反映を保証」「どのレプリカから読んでも同じ最新値」という表現があれば「強い整合性」が正解です。NewSQLなどの文脈でも非常によく出題されます。
4. まとめ
「更新処理を即座に反映し、常に最新の同一データを保証する特性」。これが強い整合性です。速度や可用性を犠牲にしてでも、データの正確性を最優先にするシステム設計の根幹となる概念です。