11章レプリケーションと一貫性

合意とアトミックなコミットのアルゴリズムの検討に進む前に、それらを深く理解するために必要な最後のピースである一貫性モデルについてまとめておきましょう。一貫性モデルは、データのコピーが複数存在するときにシステムの可視性と振る舞いを説明するという点で、重要です。

フォールトトレランスとは、コンポーネントの障害があっても正しく動作し続けられるシステムの特性です。システムをフォールトトレラントと言われる状態にするのは容易な作業ではなく、既存のシステムにフォールトトレランスを追加するのは困難です。主要な目的は、システムから単一障害点を取り除き、ミッションクリティカルなコンポーネントに冗長性を持たせるようにすることです。通常、冗長性はユーザーにとって完全に透過的です。

システムが正しく動作し続けられるのは、データの複数のコピーを格納して、マシンの中の1台が障害を発生したときに、別のマシンがフェイルオーバーの切り替え先として機能できるようにしているからです。信頼できる唯一の情報源(single source of truth)とも言われるような、プライマリ/レプリカデータベースを持つシステムでは、レプリカを昇格させて新しいプライマリにすることによって、フェイルオーバーが明示的に行われます。他のシステムでは明示的な再構成の必要がなく、読み取りおよび書き込みの問い合わせの際に複数の参加ノードから応答を集めることで、一貫性を保証します。

データのレプリケーションは、データの複数のコピーをシステム内で管理して、冗長性を達成する方法の1つです。ただし、データの複数のコピーをアトミックに更新するのは合意に匹敵する難しい問題になるので[MILOSEVIC11]、データベースのすべての操作でこれを行うのは、かなりコストがかかる可能性があります。それに対して、参加者間の不一致をある程度許容したうえで、ユーザーの目にはデータに一貫性があるように ...

Get 詳説 データベース ―ストレージエンジンと分散データシステムの仕組み now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.