13章分散トランザクション
分散システム内で順序性を管理するには、少なくとも一定の一貫性を保証する必要があります。「11.5 一貫性モデル」では、個々の操作に関して論理的に考察するうえで役立つ、単一オブジェクト、単一操作の一貫性モデルについて述べてきました。しかし、データベースにおいては、複数の操作をアトミックに実行することがしばしば必要になります。
アトミックな操作は、状態遷移の観点から説明されます。データベースがA
という状態にあったとします。これはトランザクションが開始される前のことで、トランザクションが終了するまでに、状態はA
からB
に変わりました。操作の観点から考えると、これは単純に理解できることです。トランザクションには事前に定められた状態がないからです。その代わりに、ある時点から開始して、操作をデータレコードに適用します。このおかげで、スケジュールと実行の観点から見た場合に、ある程度の柔軟性が得られます。トランザクションは順序を変えることができ、再試行することさえ可能です。
トランザクション処理の主な焦点となるのは、インターリーブ可能な実行シナリオをモデル化して表現するために、許容可能な履歴を決定することです。この場合、履歴は依存関係グラフを表します。つまり、現在のトランザクションが実行される前にどのトランザクションが実行されたかを表します。履歴は、これらのトランザクションをシーケンシャルに実行する一定の履歴と同等である場合、つまり同じ依存関係グラフを持つ場合、直列化可能(serializable)であると言われます。履歴の概念、その等価性、直列化可能性、およびその他の概念について確認するには、「5.3.1 直列化可能性」を参照してください。この章は、5章の内容を分散システムの側から見た内容になっています。ちなみに、 ...
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.