たたかいのきろく。

2022-08-09

【DBスペシャリスト】CAP定理(CAP theorem),分散システム(distributed computing system)

冗長構成

サーバのパーティショニング。サーバを複数に分けて管理する手法のこと。障害の影響範囲を小さくしたり、サーバ1台あたりの負荷を軽くすることができる。分散システム(distributed computing system)。

★障害:サーバの分断。ネットワーク上のサーバが分断されても、冗長構成により、他のすべてのサーバまでもが分断・停止する事態を防ぐことができる。

★この特性を活かせていない場合は、冗長構成になっていないと言える。

パーティショニング

データを複数に分けて格納すること。故障の影響範囲を狭めることができる。

ノード

サーバにおける「ノード」は、サーバ1台分の単位を表している場合がある。複数に分けたデータのうちの1つ。

CAP定理(CAP theorem)

冗長構成において、次の3つの状態を同時に満たすことはできないという定理。

  • 一貫性 (Consistency)
    矛盾がないこと。すべてのノードサーバにおいて、あるデータのアクセス結果が同じである。
  • 可用性 (Availability)
    使用できること。データの読み込みと書き込みが常に可能である。
  • 分断耐性 (Partition-tolerance)
    パーティショニング。ノードサーバの分断(=障害)が発生しても、他のノードサーバは継続して動作する。
What is the CAP Theorem?

★CAP定理は、冗長構成における障害時の特性を説明する。「一貫性 (Consistency)」または「可用性 (Availability)」のどちらを重視したパーティショニングであるのかによって、その冗長構成の特性を説明する。

Availability + Partition-tolerance

障害時はデータの不整合が発生する。データの読み書きが可能なため一定時間内であれば一貫性を成立させることができる。

Consistency + Partition-tolerance

障害時においてはデータの読み書きが制限される。データの読み書きのために応答待ちの一時停止状態になる。

Consistency + Availability ※補足

障害が発生すると、システムが動作しなくなる。単一サーバで操作する場合など、冗長構成ではないケース、非分散型システムで当てはまる。

todo: ユースケースについて考える。

参考リンク