tombo2-progress’s diary

できるだけ毎日1時間を切り取ってここに晒す。誤字脱字気にしない。日本語が崩壊するのも気にしない。最終的にまとめて本ブログに書く

Transactional Information Systems続き(chap 3.3)

3.3 Syntax of Histories and Schedules

この節ではschedulerがオンラインで正しいスケジューリングをどう判断するかを議論するにあたって、スケジュールの記法を明確にする。

P65下から9行目, Here we try to respect ... のrespectが訳せない。

まず、トランザクションは必ずtermination operationで終了するものとする。 - c: commit, トランザクションは他のトランザクションに邪魔されることなく終了し、トランザクションの結果は他のトランザクションに見える状態になっている - a: abort, トランザクションの影響がdatabaseに一切ない状態になっている。 - abortにはrecovery処理が必要だがこれはpart3以降で扱う

次にhistoriesscheduleを次のように区別する

  • histories
    • スケジュール(schedules)の中ですべてのトランザクションの結果がわかるもの
    • トランザクションtermination operationを含むすべてのオペレーションが記述されているもの
    • これをcomplete schedulesとも言う
  • schedule
    • 部分的もしくはすべてのスケジュールが明らかになっているもの
    • historiesのprefixに相当する部分で、termination operationなど、オペレーションのすべてが明らかになっていないもの

DEFINITION 3.1

正直このままなので、コピペ。

スクリーンショット 2018-10-23 22.43.04

スクリーンショット 2018-10-23 22.43.20

historyは - (a) すべてのトランザクションのすべてのオペレーションを含んでいる - (b) 個別にtermination operationを持っている必要がある - (c) トランザクション内ですべての順序を保持している - (d) それぞれのトランザクションの最後にtermination operationを持っている必要がある - (e) 同じデータへの操作は順序付けられている? 原文 -> (orders conflicting operations)

(a)と(b)を満たすとき、historyはcomplete scheduleと呼ばれる

DEFINITION 3.2

これもそのまま

スクリーンショット 2018-10-23 22.57.15

あるステップpがstepqの前にあるときp < qとかく。 特にschedule s(transaction t)のコンテキストにおいてそう書きたいときはp <_s q(p <_t q)とかく。

また、半順序(partial order)のprefix(約不明)は"reachability chain"の最後の部分を削除することで得られる。 より正確に言うと、

(以下の分が画像に続く) if s = スクリーンショット 2018-10-24 1.41.16

となる。

次のような3つのトランザクションがあるとき、

スクリーンショット 2018-10-24 1.43.59

全順序(total order)と半順序(partial order)を図示すると以下のようになる。

スクリーンショット 2018-10-24 1.44.04

この図において、(a)がtotal order,(b)がpartial orderである。

(このあと例による説明が続く) サンプル3.5のprefixがわからん。

スクリーンショット 2018-10-24 1.46.33

また、以下のようにscheduleを表記する。

p70より スクリーンショット 2018-10-24 1.48.16