誰にも見えないブログ

雑なメモ。まとまってない文章等

Papadimitriou - Theory of Database Concurrency Control読書会16回:CSRの様々な定義,monotonic等

今日はCSRの定義が3つもあることを知ることができた。雑なので後日結構手を入れてfixするかも。

connpass.com

p46「Theorem 2.9」からp49「theorem 2.10」まで読んだ。次回p49「theorem 2.10のproof」から

f:id:yuyubu:20191204210408j:plain
本日の板書

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)に~*関係がある
      • 推移律により交換操作を複数行っても推移的に交換関係を解決できれば~*が成り立っているといえる

定理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である□

f:id:yuyubu:20191204210745j:plain

新しい定義を使ったuninterpretend modelのvalidation

  • この新しい定義を使えばuniterpreted mdelのtransactionのserializabilityを検査することができる
    • Readwrite,multiversionのセマンティクスを必要としない。
      • orderとconflict pairのみでschedulrのvalidationが可能である
  • Example 2.6
    • s=a1b1a2c1a3b2c2c3a4c4b3
      • Transaction
        • A = a1,a2,a3,a4
        • B = b1,b2,b3
        • C = c1,c2,c3,c4
    • Conflict c:{a2,b1},{a2,c1},{b1,c1},{b3,c4}

f:id:yuyubu:20191204210751j:plain
validation

  • stepのconflict pairでdirected graphを作り、transactionの粒度にshrinkさせればb,c間にcycleがあることがわかる

ConflictとProjectionsをつかったCSRの定義(3つ目)

新しい概念の定義

monotonicとVSR/CSRの関係性

  • View serializabilityは常にmonotonicな性質ではない

  • CSRはmonotonicな性質である

    • G(s)でacyclicな場合、任意のprojection  \tau' G(s_{\tau'})でacyclicになる
      • CSRはVSRの中でmonotonicな性質を持つ最大の集合である。

定理2.10:sが任意のprojection  s_{\tau'}でVSRである ↔︎ sがCSRである

  • Theorem 2.10: A schedule s is conflict serializable if and only if , for all subsets  \tau' of the transactions in s,  s_{\tau'}is view serializable
    • 証明
      • if direction(→)
        • CSRがmonotonicなので成立する
      • Only if direction(←):背理法
        • sがCSR出ないと仮定するとVSRではないprojection  s_{\tau'}を示すことができる(前提に矛盾)

余談

  • 冒頭の文章にツッコミ

Important concepts usually come in a number of alterative formulations

  • ほんとかw

Theory of Database Concurrency Control

Theory of Database Concurrency Control

  • 作者:Christos Papadimitriou
  • 出版社/メーカー: Computer Science Pr
  • 発売日: 1986/07/01
  • メディア: ハードカバー