分散システムにおけるCAP定理とは

CDSLの新宮です. 今回は先日 卒業研究中間発表のテクニカルレポートのドラフト提出締切日だったので自分の卒業研究に関連するCAP定理について書いていこうと思います.

CAP定理

CAP定理は一貫性(Consistency), 可用性 (Availability), ネットワーク分断耐性 (Partition-tolerance)の頭文字で分散システムにおけるデータ複製に関する定理です. 2000年にEric Brewer氏が提案したことからブリュワーの定理とも呼ばれています.

一貫性(Consistency)

すべてのノードで最新のデータが同時に表示される

可用性 (Availability)

一部のノードで障害が発生しても生存ノードが必ず応答を返す

ネットワーク分断耐性 (Partition-tolerance)

ネットワークが分断されて2つ以上のノード群がお互いに疎通を取れなくなっても正常に動作する

CAP定理では以上の3つの要素すべてを同時に満たすことができないということが示されています.

CA(一貫性と可用性)の場合

すべてのノードで常に通信を行って最新のデータを更新し続けなければならないためネットワーク分断が発生すると”正常に”動作することができなくなります. つまりネットワーク分断耐性を持つことができません.

CP(一貫性とネットワーク分断耐性)の場合

ネットワーク分断では正常に動作を行います. しかしながら一貫性を持っていなければならないため最新のデータをやり取りできるようになるまで(ネットワークが復旧するまでは)運用を止めなければならず, 可用性を持つことができません.

AP(可用性とネットワーク分断耐性)の場合

ネットワーク分断が発生しても疎通が取れていたときまでのデータを返すことで運用を行うことができます. しかしながら, 疎通が取れていたときまでのデータを返すためデータの一貫性がなく, 一貫性を持つことができません.

それぞれ何を優先するかによってメリット・デメリットが存在しており, CAはRDB, CPは分散DB, APはDNS等に用いられていることが多いとされています.

最後に

今回は自分の卒業研究テーマに近いところのCAP定理について書かせていただきました. CDSLではクラウドや分散システム, IoTの分野に興味を持っている学生を募集しております. 本学の3年生はぜひ検討していただけると幸いです.

Leave a Reply