Transactional Information Systems 第5章 演習問題解答
Transactional Information Systemsにおける第5章演習問題の自分なりの解答。
間違っていたらご指摘ください。
5.1 Q
以下の3つの履歴について、MVSRやMCSRに属するか、MVSRなら必要なバージョン数についても判定せよ。
5.1 A
モノバージョンスケジュール とreads-from関係が等しいので 。適切な は 。
からバージョン表記を取り除いてもreads-from関係が変わらないので ですらある。
モノバージョンスケジュール とreads-from関係が等しいので 。適切な は 。
バージョン表記を取り除いた場合は、 を手前に出すだけで逐次的なスケジュール になるので ですらある。
モノバージョンスケジュール とreads-from関係が等しいので 。適切な は 。
バージョン表記を取り除いた場合は、もとから逐次的なスケジュールなので ですらある。
5.2 Q
マルチバージョンスケジュール
について、 が閉路を持たないような が存在するか判定せよ。
5.2 A
において、reads-from関係に基づく辺は のみである。
これに辺が追加された際に閉路を生まないような を考えればよい。
MVSGにおける辺追加規則を振り返ると、 があるとき
- は常にある (reads-from関係に基づく辺)
- なら
- なら
reads-from関係以外で辺を生じうる操作の組み合わせは
がバージョン順で最小であることは自明である。よって、前者二つは 、 という辺を生む。
次に、3つ目の組み合わせは
- なら という辺が生じる。閉路 が生じるのでダメ。
- なら という辺が生じる。
よって、 を満たすバージョン順ならば条件を満たす。
全順序を適当に定めて が答えになる。
5.3 Q
no blind writes モデル (データアイテムに書き込む前に必ず読み込まなければならないモデル) では であることを示せ。
5.3 A
は一般に成り立つので、追加で を示せばよい。
な を考える。逐次的なモノバージョンスケジュール が存在して となる。
ここで、 がMCSRの意味でも へ帰着できること、すなわち を示せばよい。
だが と仮定して矛盾を導く。
において、 はno blind write性より、ある直近の書き込み から読み込む。また、 は、 があることから、直近の書き込み から読み込む。仮定 と合わせて、これら関連するトランザクションの逐次実行順は
がモノバージョンであることから、 と の間には の書き込みは挟まらない。
ここで はある直前の への書き込み から読み込んでおり、no blind write性から もまた直前の への書き込みから読み込む。再帰的に考えて、すべてreads-from関係からなる連鎖
が において生じていることが分かる。 なので、このreads-from関係がすべて でも成り立つ。したがって
であり、これは仮定 に反するため矛盾。
以上より である。
5.4 Q
action モデル (各ステップは同一データアイテムへの読み込み+書き込みからなる) ではMVSR=VSRであることを示せ。
5.4 A
は既に示されているので、あとは を示せばよい。
を考える。逐次的なモノバージョンスケジュール が存在して、 である。actionモデルであることから、各データアイテムへのactionについて、直前のactionと直後のactionとの間にreads-from関係が必ず存在する。
これが でも成り立つことから、 からバージョンを落としたスケジュール でもこの関係が変化せず、また もモノバージョンスケジュールなのでバージョンを落とした でも関係が変化しないので である。したがって 。
5.5 Q
バージョンの定義されていない古典的なスケジュール
がマルチバージョンの意味でserializableなことを示し、適切なバージョン順を与えよ。
MVTOや2V2PLプロトコルではどのように処理されるか?
5.5 A
そのままだとreads-from関係が閉路を作るのでVSRでない。
一方、バージョン関数を与えて
とすればモノバージョンスケジュール とreads-from関係が等しいのでMVSR。
MVTOでの処理
開始順から 。
操作に適宜バージョンが割り当てられていき、
→ が拒否されて が中止 →
と進む。
2V2PLでの処理
のコミット時点で、 へのread lock、 へのwrite lockを保持し、certify lock待ちで にブロックされる。 が実行され、write lockが競合するので はブロックされる。ブロックされていないのは だけになるが、これも のcertify lock待ちで にブロックされ、デッドロックとなる。
5.6 Q
はMVTOでどのように処理されるか?
5.6 A
開始順から 。
まで実行され、 は が既にスケジューリングされているので不正、 が中止される。最後に 。
5.7 Q
は2V2PLでどのように処理されるか?
5.7 A
の順で並んでいるので、write lockによるデッドロックが起こり、どちらかが中止される。
5.8
MVTO, 2V2PL, ROMV の正当性。HackMD読書ノートに記載している。
5.9
ROMVにおいて、updaterトランザクションのスケジューリングを緩和した際の正当性について。HackMD読書ノートに記載している。