IT用語帳
PD-Dデータベース · データベース応用

結果整合性

Eventual Consistency

けっかせいごうせい

データの複製間で更新の反映に時間差があり、一時的に異なる値が読まれることを許すが、新たな更新がなければいずれすべての複製が同じ値に収束するという一貫性の考え方。強い一貫性よりも可用性と応答の速さを確保しやすく、多くのNoSQLデータベースやDNSなどで採用される。古い値を読んでも業務上問題がないかを見極めて採用する。

共有:

Related

他の資格での定義

AP結果整合性

更新直後は複製間で内容が食い違っても、一定時間が経てばすべての複製が同じ状態に収束するという整合性のモデル。可用性と応答性能を優先する分散システムで採用される。

SA結果整合性

分散システムにおいて、一定時間経過後にはすべてのレプリカが最終的に同じ状態に収束することを保証する一貫性モデル。強い一貫性より可用性とスケーラビリティを優先する場合に採用される。NoSQLデータベースで広く用いられる。

DB結果整合性(イベンチュアルコンシステンシー)

分散システムにおいて、更新がすぐに全ノードに反映されるわけではないが、十分な時間が経過すれば最終的にすべてのノードで一貫した状態になるという整合性モデル。強い一貫性と比較して可用性と性能に優れる。

PD-S結果整合性

分散システムにおいて、一定時間経過後にはすべてのレプリカが最終的に同じ状態に収束することを保証する一貫性モデル。強い一貫性より可用性とスケーラビリティを優先する場合に採用される。NoSQLデータベースで広く用いられる。

A-1結果整合性

分散システムで、更新の直後には複製の間で内容が一致しない期間があっても、新たな更新がなければ一定時間後にはすべての複製が同じ状態にそろうことを保証する整合性のモデル。可用性と応答性能を優先する分散データベースやクラウドのストレージで採用される。

Past Exams

過去問での出題

過去問で 1 回出題(データベーススペシャリスト試験 1)

出典: 独立行政法人情報処理推進機構(IPA)の過去問題。問題文は IPA のサイトの PDF で確認できます。用語名で照合しているため、関係の薄い問題が含まれることがあります。

Related

関連キーワードの用語

PD-Dクロスリージョンレプリケーション(CRR)

ストレージやデータベースのデータを、別のリージョンへ自動的に複製する機能。リージョン全体の障害や災害に備えたバックアップ、別の地域の利用者への低遅延なデータ提供、データ保管の要件への対応に使う。複製は通常、非同期で行われるため、障害時に直前の更新の一部が失われ得ることをRPOの設計で考慮する。

PD-DRPO(目標復旧時点)

障害や災害の発生時に、データをどの時点の状態まで復旧できればよいかの目標値で、失ってもよいデータの量を時間で表す。RPOが24時間なら日次のバックアップで足りるが、ゼロに近づけるには別の拠点へのリアルタイムの複製が必要になる。RTO、RLOとともにDRの方式を選ぶ基準となる。

PD-Dグラフ型のデータモデル

データをノード(頂点)とエッジ(関係)の集まりとして表すデータモデル。ノードとエッジに属性を持たせるプロパティグラフと、主語・述語・目的語の三つ組でつなぐRDFが代表的である。関係を直接たどれるため、関係モデルでは結合を何段も重ねる必要がある友人の友人や取引の連鎖のような多段の関係の探索に向く。

PD-Dドキュメント指向データベース

JSONやBSONなどの形式の文書(ドキュメント)を1件のデータとして格納するNoSQLデータベース。事前にスキーマを固定しなくてよく、入れ子の構造や項目の追加に柔軟に対応でき、文書内の任意の項目で検索や索引付けができる。文書をまたぐ結合や複数文書の更新の整合性の確保は関係データベースより弱く、MongoDBが代表例である。

PD-Dグラフデータベース

グラフ型のデータモデルでデータを格納し、ノード間の関係をたどる問合せを高速に処理するデータベース。プロパティグラフにはCypherや国際標準のGQL、RDFにはSPARQLといった問合せ言語を使う。推薦、不正取引の検知、ナレッジグラフ、ネットワーク構成の管理など、つながりそのものを分析する用途に使われ、Neo4jが代表例である。

PD-Dキーバリュー型データベース

一意のキーと、それに対応する値の組だけでデータを管理するNoSQLデータベース。キーを指定した読み書きに機能を絞ることで、高速な応答と、サーバを増やして処理能力を上げるスケールアウトを実現する。値の中身による検索や複雑な問合せには向かず、セッション情報やキャッシュの保存に使われる(Redis、Amazon DynamoDBなど)。