一貫性とは?いっかんせい
一貫性とは、データベースのトランザクションにおける一貫性(ACIDのC)とは、トランザクションの実行前後でデータが定義された制約を満たす矛盾のない状態に保たれる性質。処理の途中で制約が崩れていてもよく、コミット時点で成立していればよい点が要点になる。IoTでゲートウェイやクラウド側のデータストアを扱うとき、組込み側の読者が最初に当たる語でもある。
最終更新:2026-10-06
この語が出る過去問を解く →背景
在庫を減らして出荷を記録する、といった複数の更新が揃って初めて意味を成す操作は、途中で電源や通信が落ちれば辻褄が合わなくなる。個々の更新を正しく書くだけでは守れないため、まとめて成立するか、まったく無かったことにするかという単位を設け、その境界で制約の成立を保証する取り決めにした。分散構成では全ノードで即座に揃えることが可用性と両立しないため、CAP定理の議論に繋がる。
具体例
PostgreSQLやSQLiteは主キー・外部キー・CHECK制約をコミット時に検査し、破れば全体をロールバックする。機器のログをクラウドへ集約する構成では、送信途中の切断で半端なレコードが残らないよう、この単位で書き込む。
試験での引っ掛け
隔離性(I)と役割が違う——一貫性は制約を満たしているかの話、隔離性は同時実行で互いに干渉しないかの話。さらにACIDの一貫性は単一DB内の制約を指し、複製間で同じ値が見えるというCAP定理の一貫性、マルチコアのキャッシュ一貫性(コヒーレンシ)とはいずれも別物。同じ語が三つの文脈で出る点が引っ掛けになる。
関連用語
出た過去問
出典:平成28年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問1(IPA)解説で登場
図に示すマルチプロセッサシステムにおいて、各MPUのキャッシュメモリの内容を正しく保つために、共有する主記憶の内容が変化したかどうかを監視する動作はどれか。
正解:バススヌープ
要点:バススヌープは共有バス監視でキャッシュ一貫性を保つ
複数のプロセッサがそれぞれキャッシュを持って主記憶を共有すると、あるプロセッサが書き換えた内容が他方の古いキャッシュに残り、内容が食い違うおそれがある。そこで各キャッシュ制御部が共有バス上のアドレスやトランザクションを常時見張り、自分が保持している行に関わる書込みを検知したら無効化や更新を行う。この監視動作がバススヌープで、キャッシュコヒーレンシを保つ基本的な手法である。
出典:令和4年度 秋期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問1(IPA)解説で登場
マルチコアプロセッサで用いられるスヌープキャッシュの説明として、適切なものはどれか。
正解:共有バスを介して、各コアのキャッシュが他コアのキャッシュの更新状態を管理し、コヒーレンシを保つ。
要点:共有バスを監視して他コアの書換えを検知するのがスヌープ方式
スヌープキャッシュは、各コアのキャッシュコントローラが共有バス上のトランザクションを常時監視(スヌープ)し、他コアが自分の保持するブロックを書き換えたことを検知して無効化や更新を行う方式である。これによりコア間でキャッシュの内容が食い違わないよう一貫性(コヒーレンシ)を保つ。バス監視という仕組み上、共有バス型の小〜中規模マルチコアに適し、コア数が増えるとバス帯域がボトルネックになる。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。