第12回 トランザクション処理(2) 同時実行制御 10.2 同時実行制御の必要性 10.3 スケジュールの直列化可能性 10.4 ロック法 (pp.274-297) 10.2 同時実行制御の必要性 • 時間的にオーバラップするトランザクションは 上手く制御しないと様々な異常を発生する。 – 遺失更新異常:更新内容が失われる – 不正整合検索異常:一貫性のないデータの検索 – 波及ロールバック異常 – 汚読異常 10.3 スケジュールの直列化可能性 • [1]直列化可能スケジュール • 直列スケジュール – トランザクションの集合を時間的にオーバラップ(並行)せ ず、ひとつずつ実行する。 – 一貫性を保てるが、非効率。 • 直列化可能スケジュール – トランザクションを並行に実行するが、結果は、ある直列ト ランザクションと等価なもの。 – 一貫性と効率性を両立できる。 • ビュー等価とは? 10.3 スケジュールの直列化可能性 • [4]相反グラフ解析 • ノード:トランザクション • 有効辺:ある項目xを異なるトランザクションで read, writeするとき、有効辺が引かれる • グラフが非巡回(acyclic)なら、直列化可能な スケジュールがある。 10.4 ロック法 • [1]ロック法の目的 – 直列化可能スケジュールを自動的に生成するこ とができる。 • [2]ロッキングプロトコル – トランザクションが項目xにロック(鍵)をかける。 – 2重にロックをかけることはできない。 – 直列化可能とは限らない. 10.4 ロック法 • [3]2相ロッキングプロトコル(2PL) – 第1層(成長相、Lock相) – 第2相(縮退相、Unlock相) – 直列化可能スケジュールを保証する。 • [4]デッドロック – トランザクションが互いにロックしあって、処理が 進まなくなる。 – そのような状況を監視し、発見したら関係してい るトランザクションのいずれかをアボートする。 理解チェック(レポート提出不要) 1. 直列化可能スケジュールとは何か? 2. 相反グラフ解析を説明しなさい。 3. 2層ロックプロトコルを説明しなさい。 レポート提出 1. 遺失更新異状となるトランザクションの例(T1,T2) をあげなさい。 2. 直列化可能性のうち「ビュー等価」を説明しなさい。 3. 以下のトランザクションT1とT2について(a)直列ス ケジュールの例をあげよ。また、非直列スケジュー ルのうち(b-1)ビュー直列化可能な例と(b-2)ビュー 直列化可能でない例を答えよ。 T1: {begin read(x); read(y); x = x-y; write(x) end} T2: {begin read(y); read(x); y = y-x; write(y) end} 4. 2相ロッキングプロトコルを説明しなさい。
© Copyright 2024 ExpyDoc