Papadimitriou - Theory of Database Concurrency Control読書会16回:CSRの様々な定義,monotonic等
今日はCSRの定義が3つもあることを知ることができた。雑なので後日結構手を入れてfixするかも。
p46「Theorem 2.9」からp49「theorem 2.10」まで読んだ。次回p49「theorem 2.10のproof」から
Conflicts and Commutativity(可換を使ったCSRの2つ目の定義)
切れ目が悪いので再掲
s~s
:non-conflicting stepsを交換したスケジュールのこと- example
s A1:R(x) W(x) A2: R(x)W(y) s' s A1:R(x) W(x) A2: R(x) W(y)
- 交換した
W1(x)
とW2(y)
はconflictな関係ではないのでこの交換操作のスケジュール関係はs~s'
- この交換ルールをさらに拡張する(
~
⇨~*
) s~*s
~*
- reflexive-transitive closure
- reflexive:任意のaにおいてaRa=true
- transitive:aRb;bRc ⇨ aRc
- closure:上記が成り立つ元に制限した集合
- 推移的・反射的な交換が成り立つ?
- reflexiveにより交換が発生しなくてもsとs'(s)に
~*
関係がある - 推移律により交換操作を複数行っても推移的に交換関係を解決できれば
~*
が成り立っているといえる
- reflexive-transitive closure
定理2.9s~*s'
が成り立つ ↔︎s とs'がConflict equivalentである
Theorem 2.9 Two schedules s and s' are conflict equivalent if and only if
s~*s'
証明
- if direction(←):任意の回数の~交換はCSRを違反しない(雑)
- Only if direction(→) :
- 2つのスケジュールに出現する順序が違うstepのペアの数をkとする
- k=0のとき、明らかに
s~*s'
- k>0のとき
- s'で前後関係が異なるstepが2つ存在する
- 英語Memo:out of order=順序が違う
- ペアの順序関係が違うstepが隣接しているもののみの場合、明らかに
s~*s
- sと順序関係が違うs'のstep pairが隣接していないものがある場合、pairの間にあるstepとpairの少なくとも1要素とparitを作っているthird stepが必ず一つ存在する
s'
から~操作を実行して得られるorderをs''
とするs''
のout of order-step pair数は最大でk-1になる- 1回の交換の副作用で他のpairのorderも修正される可能性があるため
- この操作を繰り返していくことで
s''~*s
とすることができる推移的にこれはs'~*s
である□
- s'で前後関係が異なるstepが2つ存在する
新しい定義を使ったuninterpretend modelのvalidation
- この新しい定義を使えばuniterpreted mdelのtransactionのserializabilityを検査することができる
- Readwrite,multiversionのセマンティクスを必要としない。
- orderとconflict pairのみでschedulrのvalidationが可能である
- Readwrite,multiversionのセマンティクスを必要としない。
- Example 2.6
- s=a1b1a2c1a3b2c2c3a4c4b3
- Transaction
- A = a1,a2,a3,a4
- B = b1,b2,b3
- C = c1,c2,c3,c4
- Transaction
- Conflict c:{a2,b1},{a2,c1},{b1,c1},{b3,c4}
- s=a1b1a2c1a3b2c2c3a4c4b3
- stepのconflict pairでdirected graphを作り、transactionの粒度にshrinkさせればb,c間にcycleがあることがわかる
ConflictとProjectionsをつかったCSRの定義(3つ目)
新しい概念の定義
- schedule s内のトランザクションの集合を と定義する
- となるトランザクションの部分集合を定義する
- sからに含まれるトランザクションのstepのみを残すprojection を定義する
- sで成り立っている性質が でも成り立つ性質をmonotonicと定義する
monotonicとVSR/CSRの関係性
View serializabilityは常にmonotonicな性質ではない
CSRはmonotonicな性質である
- G(s)でacyclicな場合、任意のprojection ででacyclicになる
- CSRはVSRの中でmonotonicな性質を持つ最大の集合である。
- G(s)でacyclicな場合、任意のprojection ででacyclicになる
定理2.10:sが任意のprojection でVSRである ↔︎ sがCSRである
- Theorem 2.10: A schedule s is conflict serializable if and only if , for all subsets of the transactions in s, is view serializable
余談
- 冒頭の文章にツッコミ
Important concepts usually come in a number of alterative formulations
- ほんとかw
Theory of Database Concurrency Control
- 作者:Christos Papadimitriou
- 出版社/メーカー: Computer Science Pr
- 発売日: 1986/07/01
- メディア: ハードカバー