AI活用の教科書
データベース設計むずかしい3分で読了

結果整合性

Eventual Consistencyけっかせいごうせい

ひとことで言うと

今すぐではなく、時間が経てば全コピーのデータが同じ値に落ち着く、というゆるやかな整合性の考え方です。

📖 もうちょい詳しく

何が新しいの?

データを世界中の複数のサーバーに分けて持つと、書き換えた瞬間に「どのサーバーも同じ値」とそろえるのが重くなります。結果整合性は、その「すぐにそろえる」をあえてゆるめた考え方です。書き込みは速く受け付け、各コピーのつじつまは少し遅れて合わせます。

どうやって動いてるの?

あるサーバーがデータを書き換えると、その変更は他のコピー(複製)へ少しずつ伝わっていきます。伝わりきるまでの短い間は、サーバーごとに古い値と新しい値が混ざります。新しい書き込みが止まれば、いずれすべてのコピーが同じ最新の値に落ち着きます。この「いずれそろう」を保証するのが結果整合性です。

何ができるの?

一部のサーバーが遅れていたり、つながりが悪かったりしても、システム全体は止まらずに読み書きを返せます。SNSの「いいね」数や閲覧数のように、数秒の遅れが問題になりにくいデータと相性が良いです。世界中の利用者に速い応答を返したいサービスで使われます。

🌱 身近なたとえ

複数店舗で在庫メモを共有する様子で例えると分かりやすいです。本店で「在庫を1つ減らす」とメモしても、その連絡が支店に届くまで数秒かかります。届くまでの間、支店のメモは古いままです。でも連絡さえ届けば、最後にはすべての店のメモが同じ数になります。この「最後にはそろう」が結果整合性です。

✅ まず覚えるポイント

  • 書き込み直後は、コピーごとに値が食い違うことがあります
  • 新しい更新が止まれば、いずれ全コピーが同じ値に落ち着きます
  • 「すぐ一致」より「止まらず速い」を優先する設計の考え方です
  • 数秒の遅れが許せるデータ(いいね数・閲覧数など)に向きます
  • 多くのNoSQLや分散データベースが選択肢として採用しています

🧭 よくある勘違い

データが食い違ったまま直らないの?

直らないわけではありません。新しい書き込みが止まれば、遅れて伝わる仕組みによって、すべてのコピーが最終的に同じ値へ収束します。「ずっとバラバラ」ではなく「一時的にバラバラ、最後はそろう」が正しい理解です。

強整合性より劣ったやり方なの?

優劣ではなく、用途で選ぶものです。銀行の残高のように一瞬のズレも許せないデータには、すぐ一致を保証する強整合性が向きます。一方で速さや止まりにくさを重視する場面では、結果整合性のほうが適しています。

どれくらい遅れてそろうの?

多くの場合は数ミリ秒から数秒で収束しますが、決まった時間は保証されません。ネットワークの混み具合やサーバーの状態によって変わるため、「必ず○秒以内」とは言い切れない点に注意します。

🧩 関連して覚えると楽な言葉

  • レプリケーション: データを複数サーバーに複製する仕組み。結果整合性はこの複製の遅れを前提にした考え方です
  • ACID: トランザクションの厳密さを保証する性質。こうした厳密な仕組みは、結果整合性とよく対比されます
  • NoSQL: 柔軟さや拡張性を重視したデータベース群。結果整合性を選べるものが多いです
  • シャーディング: データを分割して複数サーバーに配る手法。分散するほど整合性の扱いが課題になります

🏁 ひとことでまとめ

「今この瞬間に全部そろっている」ではなく「ほうっておけば最後にはそろう」を選ぶことで、速さと止まりにくさを手に入れる整合性の考え方です。