データベースシステムにおける
直列化可能性と等価な
時刻割り当てルールの提案
星野 喬、光成 滋生 @サイボウズ・ラボ
2019-05-28
xSIG2019
1
Rev.3
背景と動機
• ACID の Isolation 担保
• 実践: Concurrency Control (CC) プロトコル
• 理論: Serializability (直列化可能性)
• Serializability 理論と CC プロトコルの乖離
• 1VCC の元で CSR (= gen(2PL)) が事実上の標準だった
• 理論上でも比較したくなる MVCC プロトコルの登場
• 既存の Serializability モデルはグラフ構造を利用
• グラフ構造を使わずにより分かりやすく定式化して
現代 CC プロトコルを説明できそう
2
研究の貢献
• TMR: Timestamp Mapping Rule の提案
• 既存スケジュール空間と等価な制約を表す
• グラフ構造を使わない
• (最近の CC プロトコルを分析しやすい)
• (良い CC プロトコルを作れる)
• スケジュール空間の包含関係を整理
• MVSR、VSR、CSR、その他
3
ページモデル概要
• 𝔻 ∶= {𝑥, 𝑦, … } ページ集合
• 𝕆 ≔ 𝑟, 𝑤 × 𝔻 ⊔ {𝑐, 𝑎} オペレーション集合
• (𝑟, 𝑥), (𝑤, 𝑥) は慣習に従い 𝑟(𝑥), 𝑤(𝑥) とかく
• 𝕋: トランザクション集合 𝑇 全体
• 𝕋 ∋ 𝑇 = 𝑡0, 𝑡1, 𝑡2, …
• 𝑇 ∋ 𝑡𝑖 = 𝑜1, 𝑜2, … , 𝑜 𝑁 𝑖
後述
• op 𝑇 ≔ 𝑖, 𝑜 ∈ op(𝑡𝑖) ∣ 𝑡𝑖 ∈ 𝑇 𝑟𝑖(𝑥), 𝑤𝑖(𝑥), 𝑐𝑖, 𝑎𝑖 とかく
• RFS(𝑇): 𝑇 の reads-from 関係 𝑅 全体 (後述)
• ORD(𝑇): op(𝑇) の元を並べて作る列 𝑂 全体 (後述)
• MV history 𝑚 ≔ 𝑇, 𝑅, < 𝑂
• 𝕋 ∋ 𝑇, RFS 𝑇 ∋ 𝑅, ORD 𝑇 ∋ 𝑂 を read-from-order 条件
(後述)を満たすようにとったもの
4
Transaction
• 𝑇 ∋ 𝑡𝑖 = 𝑜1, 𝑜2, … , 𝑜 𝑁 𝑖
• トランザクションはオペレーション列
• 𝑜1, 𝑜2, … , 𝑜 𝑁 𝑖
∈ 𝑖 × 𝕆
• 同一の 𝑥 ∈ 𝔻 については、𝑟𝑖(𝑥), 𝑤𝑖(𝑥) がそれぞれ高々 1 回、
両方現れる場合は 𝑟𝑖(𝑥) が先
• 𝑐𝑖, 𝑎𝑖 は最後にのみ現れる。本発表では 𝑐𝑖 のみ考える
• 𝑥 ∈ 𝔻 に注目したときのパターン
• 𝑟𝑖(𝑥)のみ: read-only (RO)
• 𝑤𝑖(𝑥)のみ: blind-write (BW)
• 𝑟𝑖 𝑥 と𝑤𝑖(𝑥): read-modify-write (RMW)
• 𝑡0は初期値を書いたことを表す
• op 𝑡0 = 𝑤0 𝑥 𝑥 ∈ 𝔻 ⊔ {𝑐0}
5
History の構成要素
• RFS(𝑇): 𝑇 の reads-from 関係 𝑅 全体
• rf: 𝑥, 𝑖 𝑟𝑖 𝑥 ∈ op 𝑇 → 𝑗 𝑤𝑗 𝑥 ∈ op 𝑇
• ある rf の元で 𝑟𝑖 (𝑥) を 𝑗 = rf(𝑥, 𝑖) を用いて 𝑟𝑖(𝑥𝑗) とかく
• 𝑅rf ≔ { 𝑡𝑗, 𝑥, 𝑡𝑖 ∣ 𝑟𝑖 𝑥 ∈ op 𝑇 , 𝑗 = rf 𝑥, 𝑖 } reads-from 関係
• Rfs: rf 全体
• RFS(𝑇) ∶= {𝑅rf ∣ rf ∈ Rfs}
• ORD(𝑇): op(𝑇) の元を並べて作る列 𝑂 全体
• 𝑂 = 𝑜1, 𝑜2, … , 𝑜 𝑀
• 𝑜1, 𝑜2, … , 𝑜 𝑀 ∈ op 𝑇 , 𝑜𝑖 = 𝑜𝑗 ⇔ 𝑖 = 𝑗, 𝑀 = |op 𝑇 | (制約1)
• 𝑜𝑖 < 𝑂 𝑜𝑗
def
𝑖 < 𝑗 < 𝑂 を operation order という
• ∀𝑡𝑖 ∈ 𝑇. ∀𝑜 𝑘, 𝑜𝑙 ∈ op 𝑡𝑖 . 𝑜 𝑘 < 𝑡 𝑖
𝑜𝑙 ⇒ 𝑜 𝑘 < 𝑂 𝑜𝑙. (制約2)
6
MV History (MVH 空間)
• Reads-from-order 条件
• RFS 𝑇 ∋ 𝑅, ORD 𝑇 ∋ 𝑂 について、
∀ 𝑡𝑗, 𝑥, 𝑡𝑖 ∈ 𝑅. 𝑤𝑗 𝑥 < 𝑂 𝑟𝑖 𝑥 . を満たす
• MV history 𝑚 ≔ 𝑇, 𝑅, < 𝑂
• 𝕋 ∋ 𝑇, RFS 𝑇 ∋ 𝑅, ORD 𝑇 ∋ 𝑂 を read-from-order 条件を
満たすようにとったもの
• 𝑇 は trans(𝑚)、𝑅 は RF(𝑚)、< 𝑂 は < 𝑚 とかく
• MVH: MV history 全体
• MV history 例 (𝑡0は省略)
• 𝑤1 𝑥 𝑟2 𝑥1 𝑤2 𝑦 𝑐2 𝑟3 𝑥0 𝑤1 𝑦 𝑐1 𝑟3 𝑦2 𝑤3(𝑥) 𝑐3 𝑡𝑖で色分け
• 𝑤1 𝑥 𝑟2 𝑥1 𝑤2 𝑦 𝑐2 𝑟3 𝑥0 𝑤1 𝑦 𝑐1 𝑟3 𝑦2 𝑤3(𝑥) 𝑐3 𝑥, 𝑦で色分け
7
重要な History 部分空間 (1)
• Serial history (SEH)
• < 𝑚 においてトランザクションが混ざらない
• 𝑡𝑖 < 𝑚 𝑡𝑗
def
∀𝑝 ∈ op 𝑡𝑖 . ∀𝑞 ∈ op 𝑡𝑗 . 𝑝 < 𝑚 𝑞.
• 𝑚 ∈ SEH
def
trans 𝑚 , < 𝑚 が全順序集合
• 例: 𝑤1 𝑥 𝑤1 𝑦 𝑐1 𝑟2 𝑥1 𝑤2 𝑦 𝑐2 𝑟3 𝑥0 𝑟3 𝑦2 𝑤3(𝑥) 𝑐3
• 1V history (1VH)
• < 𝑚 において直前の書き込みを読む
• 𝑚 ∈ 1VH
def
∀ 𝑡𝑗, 𝑥, 𝑡𝑖 ∈ RF 𝑚 .
∄𝑘. 𝑤 𝑘 𝑥 ∈ op 𝑚 ∧ 𝑤𝑗 𝑥 < 𝑚 𝑤 𝑘 𝑥 < 𝑚 𝑟𝑖 𝑥 .
• 例:𝑤1 𝑥 𝑟2 𝑥1 𝑤2 𝑥 𝑐2 𝑟3 𝑥2 𝑤1 𝑦 𝑐1 𝑟3 𝑦1 𝑤3(𝑥) 𝑐3
8
重要な History 部分空間 (2)
• 1V-serial history (1VSEH)
• Serial history かつ 1V history
• 1VSEH ∶= SEH ∩ 1VH
• 1V-serial history の挙動を「正しい」とする前提
• 並列に動作(𝑚 ∉ 1VSEH)させても 1V-serial history と
「等価」なら「正しい」
• genH 𝑚 ≔ {𝑚′ ∈ MVH ∣ trans 𝑚 = trans 𝑚′ }
• genSEH 𝑚 ≔ genH 𝑚 ∩ SEH
• gen1VSEH 𝑚 ≔ genH 𝑚 ∩ 1VSEH
9
Conflicts
• conf 𝑝𝑞 𝑚
≔ 𝑝𝑖 𝑥 , 𝑞 𝑗 𝑥 𝑝𝑖 𝑥 , 𝑞 𝑗 𝑥 ∈ op 𝑚 , 𝑝𝑖 𝑥 < 𝑚 𝑞 𝑗 𝑥
• 𝑝, 𝑞 ∈ {(𝑤, 𝑟), (𝑤, 𝑤), (𝑟, 𝑤)}
• conf 𝑚
≔ conf 𝑤𝑟 𝑚 ⊔ conf 𝑤𝑤 𝑚 ⊔ conf 𝑟𝑤 𝑚
10
Serializability
• MVSR (multi-version view serializability)
• 𝑚 ∈ MVH
• 𝑚 ∈ MVSR
def
∃𝑚 𝑠 ∈ gen1VSEH 𝑚 . RF 𝑚 = RF 𝑚 𝑠 .
• VSR ((mono-version) view serializability)
• VSR ≔ MVSR ∩ 1VH
• CSR (conflict serializability)
• 𝑚 ∈ 1VH
• 𝑚 ∈ CSR
def
∃𝑚 𝑠 ∈ gen1VSEH 𝑚 . conf 𝑚 = conf(𝑚 𝑠).
• ...
11
従来の Membership Testing
• MVSR の場合
• version order ≪ : 各 𝑥 ∈ 𝔻 について {𝑤𝑖 𝑥 ∈ op(𝑚)} に与え
た全順序関係 ≪ 𝑥 の和集合
• ∃≪. MVSG 𝑚, ≪ is acyclic ⇔ 𝑚 ∈ MVSR.
• MVSG 𝑚, ≪ ≔ (trans 𝑚 , 𝐸) となる directed graph
• ∀ 𝑡𝑗, 𝑥, 𝑡𝑖 ∈ RF 𝑚 . 𝑡𝑗, 𝑡𝑖 ∈ 𝐸.
• ∀ 𝑡𝑗, 𝑥, 𝑡𝑖 ∈ RF 𝑚 . ∀𝑘 ≠ 𝑖, 𝑗. 𝑤 𝑘 𝑥 ∈ op 𝑚 ⇒
𝑤 𝑘 𝑥 ≪ 𝑤𝑗 𝑥 ⇒ 𝑡 𝑘, 𝑡𝑗 ∈ 𝐸 ∨ 𝑤𝑗 𝑥 ≪ 𝑤 𝑘 𝑥 ⇒ 𝑡𝑖, 𝑡 𝑘 ∈ 𝐸 .
• CSR の場合
• 𝑚 ∈ 1VH
• CG(𝑚) ∶= (trans(𝑚), 𝐸) となる directed graph
• ∀ 𝑝𝑖 𝑥 , 𝑞 𝑗 𝑥 ∈ conf 𝑚 . 𝑡𝑖, 𝑡𝑗 ∈ 𝐸.
• CG 𝑚 is acyclic ⇔ 𝑚 ∈ CSR.
12
Timestamp Mapping (TM)
• 単射写像 ts: trans 𝑚 → ℝ を
𝑚 の timestamp mapping (TM) と呼ぶ
• 𝑡𝑖 <ts 𝑡𝑗
def
ts 𝑡𝑖 < ts(𝑡𝑗)
• genTs(𝑚) ∶= 𝑚 の TM 全体
• genOrdSEH 𝑚, ts
≔ {𝑚 𝑠 ∈ genSEH 𝑚 ∣ 𝑡𝑖 <ts 𝑡𝑗 ⇔ 𝑡𝑖 < 𝑚 𝑠
𝑡𝑗}
• genOrdSEH 𝑚, ts ∩ 1VH = 1
• ord1VSEH 𝑚, ts ≔ 𝑚 𝑠 ∈ genOrdSEH 𝑚, ts ∩ 1VH
13
Membership Testing 手法比較
• グラフ構造利用 (従来)
• (MVSG や CG などの) digraph is acyclic
⇔ topological sort 可能 ⇔ (partial order となる)
⇔ compatible な total order が存在
• 背理法を使う証明が多い
• 実践的な CC プロトコルのほとんどはグラフ構造を使わない
• TMR 利用 (提案)
• Rules を満たす TM が存在
⇔ compatible な total order が存在
• ほとんど背理法を使わずに証明できる
• 実践的な CC プロトコルの多くはより
直接的に compatible total order (もしくは timestamp) を扱う
14
TM によるスケジュール空間の拡張
• MVHT ≔ { 𝑚, ts ∣ 𝑚 ∈ MVH, ts ∈ genTs(𝑚)}
• 𝜋: MVHT ∋ 𝑚, ts ↦ 𝑚 ∈ MVH (射影)
• H ⊂ MVH を H 空間と呼ぶ
• 𝜋−1(H) ≔ 𝑚, ts 𝑚 ∈ H, ts ∈ genTs 𝑚 . (拡張)
• HT ⊂ 𝜋−1
(H) を HT 空間と呼ぶ
• 𝜋(HT) ⊂ H. (定義より)
• 既存空間の拡張
• MVHT = 𝜋−1(MVH)
• 1VHT ≔ 𝜋−1(1VH)
• 1VSEHT ≔ 𝜋−1(1VSEH)
• …
15
ts ∈ genTs(𝑚)
𝑚 ∈ MVH
H = 𝜋(HT)
𝜋−1
(H)
HT
HT 空間の性質
• ∀HT1, HT2 ⊂ MVHT = 𝜋−1(MVH).
• ∀H3 ∈ MVH.
• 𝜋 HT1 ∪ HT2 = 𝜋 HT1 ∪ 𝜋 HT2 . 和集合は保存
• HT1 ⊂ HT2 ⇒ 𝜋 HT1 ⊂ 𝜋(HT2). 包含関係は保存
• 𝜋 HT1 ∩ HT2 ⊂ 𝜋 HT1 ∩ 𝜋 HT2 . 積集合は保存されず
• 𝜋 HT1 ∩ 𝜋−1(H3) = 𝜋 HT1 ∩ H3. 片方が拡張なら保存
16
Timestamp Mapping Rules (TMR)
• Reads-from rules
• c-rule: ∀ 𝑡𝑗, 𝑥, 𝑡𝑖 ∈ RF 𝑚 . 𝑡𝑗 <ts 𝑡𝑖.
• v-rule: ∀ 𝑡𝑗, 𝑥, 𝑡𝑖 ∈ RF 𝑚 .
∄𝑘. 𝑤 𝑘 𝑥 ∈ op 𝑚 ∧ 𝑡𝑗 <ts 𝑡 𝑘 <ts 𝑡𝑖.
• Conflicts rules
• pq-rule: ∀ 𝑝𝑖 𝑥 , 𝑞 𝑗 𝑥 ∈ conf 𝑝𝑞 𝑚 . 𝑡𝑖 <ts 𝑡𝑗.
• wr-rule, ww-rule, rw-rule
• HTrules ≔ rules を全て満たす (𝑚, ts) 全体
• Hrules ≔ 𝜋(HTrules)
17
TMR による等価な H 空間
• 𝐌𝐕𝐒𝐑 = 𝐇 𝒄,𝒗
• VSR = H 𝑐,𝑣 ∩ 1VH
• CSR = H 𝑤𝑟,𝑤𝑤,𝑟𝑤 ∩ 1VH
= H 𝑐,𝑣,𝑤𝑤 ∩ 1VH
= H 𝑐,𝑣,𝑤𝑟,𝑤𝑤
• …
• 証明は全て HT 空間で行い、最後に H 空間に落とす
• HTrules ⊂ 𝜋−1(Hrules) であることに注意
18
• 𝐌𝐕𝐒𝐑𝐓 ≔ 𝐇𝐓𝒄,𝒗
• VSRT ≔ HT𝑐,𝑣 ∩ 1VHT
• CSRT ≔ HT 𝑤𝑟,𝑤𝑤,𝑟𝑤 ∩ 1VHT
= HT𝑐,𝑣,𝑤𝑤 ∩ 1VHT
= HT𝑐,𝑣,𝑤𝑟,𝑤𝑤
• …
重要な補題と定理
• 補題
• ∀𝑚 ∈ MVH. ∀ts ∈ genTs 𝑚 .
𝑚 𝑠 ≔ ord1VSEH 𝑚, ts . ∀𝑝𝑖 𝑥 , 𝑞 𝑗 𝑥 ∈ op 𝑚 .
𝑝𝑖 𝑥 < 𝑚 𝑠
𝑞 𝑗 𝑥 ⇔ 𝑡𝑖 < 𝑚 𝑠
𝑡𝑗 ⇔ 𝑡𝑖 <ts 𝑡𝑗.
• HT 𝑤𝑟,𝑤𝑤,𝑟𝑤 ∩ 1VHT ⊂ HT𝑐,𝑣
• HT𝑐,𝑣,𝑤𝑤 ⊂ HT𝑟𝑤
• 定理
• MVSR = H 𝑐,𝑣
∵ 𝑚 ∈ MVSR ⇔ RF 𝑚 = RF(𝑚 𝑠) ⇔ 𝑚, ts ∈ HT𝑐,𝑣 ⇔ 𝑚 ∈ H 𝑐,𝑣
• CSR ⊂ VSR
∵ 𝜋 HT 𝑤𝑟,𝑤𝑤,𝑟𝑤 ∩ 1VHT ⊂ 𝜋 HT𝑐,𝑣 ∩ 1VHT
• HT𝑐,𝑣,𝑤𝑤 ⊂ HT𝑐,𝑣,𝑟𝑤
19
𝐇𝐓𝒄,𝒗,𝒘𝒘
CSRT
𝐇𝐓 𝒄, 𝒗, 𝒘𝒓
VSRT
1VSEHT
𝐇𝐓 𝒄, 𝒗 𝐇𝐓 𝒄, 𝒗, 𝒓𝒘
HT 空間の包含関係
20
1VHT
MVHT
部分空間の定量的な大きさは不明であることに注意
関連研究 (理論)
• D. P. Reed. 1978
• MVTO プロトコルの提案 (c-rule, v-rule 相当)
• Christos H. Papadimitriou. 1979
• VSR の NP-completeness 証明
• Philip A. Bernstein, et al. 1983
• MVSG 提案(MVSR との等価性証明)、gen MVTO ⊂ MVSR の証明
• Mihalis Yannakakis. 1984
• CSR という言葉の初出、CSR ⊂ VSR の証明
• Christos H. Papadimitriou, et al. 1984
• MVSR の NP-completeness 証明、H 𝑐,𝑣,𝑤𝑤 相当の議論
• Toshihide Ibaraki, et al. 1987
• Non-full schedule 空間の包含関係を議論 (本研究は full schedule 相当)
21
関連研究 (現代の CC プロトコル)
• Stephen Tu, et al. 2013
• Silo プロトコル (2PL 互換の現代版 OCC) の提案、1VCC
• Tianzheng Wang, et al. 2015
• SSN (SI 等と組み合わせて serializable) の提案、MVCC
• Xiangyao Yu, et al. 2016
• TicToc プロトコル (Timestamp Ordering 現代版) の提案
• 1VCC だが MVCC 要素あり
• (wts, rts) の timestamp ペアで制御
• Hyeontaek Lim, et al. 2017
• Cicada プロトコル (MVTO 現代版) の提案、MVCC
• (wts, rts) の timestamp ペアで制御
• Many-core アーキテクチャでのスケーラビリティ考慮(SSN 除く)
22
まとめ
• Serializability 理論をより使いやすくする目的
• TMR (Timestamp Mapping Rules) の提案
• 既存スケジュール空間との等価性を証明
• スケジュール空間の包含関係の整理
23
今後の課題
• Final state の整理
• 𝑡∞ は 1VH の世界で final state の等価性を担保するのに必要
• MVH で 𝑇∞ を考えたがうまく 𝑡∞ に帰着できない問題
• 現代 CC プロトコルの TMR を用いた解釈と分析
• 何を < 𝑚 だと考えるか
• (trans 𝑚 や RF(𝑚) は解釈の余地なし)
• 理論上の部分空間の大きさの見積もり
• ワークロード毎にスケジューリングの余地を
定量的に比較したい
• TMR を直接用いた CC プロトコルの提案
• オーバーヘッドとスケジューリング能力のトレードオフ
24

データベースシステムにおける直列化可能性と等価な時刻割り当てルールの提案 rev.3

  • 1.
  • 2.
    背景と動機 • ACID のIsolation 担保 • 実践: Concurrency Control (CC) プロトコル • 理論: Serializability (直列化可能性) • Serializability 理論と CC プロトコルの乖離 • 1VCC の元で CSR (= gen(2PL)) が事実上の標準だった • 理論上でも比較したくなる MVCC プロトコルの登場 • 既存の Serializability モデルはグラフ構造を利用 • グラフ構造を使わずにより分かりやすく定式化して 現代 CC プロトコルを説明できそう 2
  • 3.
    研究の貢献 • TMR: TimestampMapping Rule の提案 • 既存スケジュール空間と等価な制約を表す • グラフ構造を使わない • (最近の CC プロトコルを分析しやすい) • (良い CC プロトコルを作れる) • スケジュール空間の包含関係を整理 • MVSR、VSR、CSR、その他 3
  • 4.
    ページモデル概要 • 𝔻 ∶={𝑥, 𝑦, … } ページ集合 • 𝕆 ≔ 𝑟, 𝑤 × 𝔻 ⊔ {𝑐, 𝑎} オペレーション集合 • (𝑟, 𝑥), (𝑤, 𝑥) は慣習に従い 𝑟(𝑥), 𝑤(𝑥) とかく • 𝕋: トランザクション集合 𝑇 全体 • 𝕋 ∋ 𝑇 = 𝑡0, 𝑡1, 𝑡2, … • 𝑇 ∋ 𝑡𝑖 = 𝑜1, 𝑜2, … , 𝑜 𝑁 𝑖 後述 • op 𝑇 ≔ 𝑖, 𝑜 ∈ op(𝑡𝑖) ∣ 𝑡𝑖 ∈ 𝑇 𝑟𝑖(𝑥), 𝑤𝑖(𝑥), 𝑐𝑖, 𝑎𝑖 とかく • RFS(𝑇): 𝑇 の reads-from 関係 𝑅 全体 (後述) • ORD(𝑇): op(𝑇) の元を並べて作る列 𝑂 全体 (後述) • MV history 𝑚 ≔ 𝑇, 𝑅, < 𝑂 • 𝕋 ∋ 𝑇, RFS 𝑇 ∋ 𝑅, ORD 𝑇 ∋ 𝑂 を read-from-order 条件 (後述)を満たすようにとったもの 4
  • 5.
    Transaction • 𝑇 ∋𝑡𝑖 = 𝑜1, 𝑜2, … , 𝑜 𝑁 𝑖 • トランザクションはオペレーション列 • 𝑜1, 𝑜2, … , 𝑜 𝑁 𝑖 ∈ 𝑖 × 𝕆 • 同一の 𝑥 ∈ 𝔻 については、𝑟𝑖(𝑥), 𝑤𝑖(𝑥) がそれぞれ高々 1 回、 両方現れる場合は 𝑟𝑖(𝑥) が先 • 𝑐𝑖, 𝑎𝑖 は最後にのみ現れる。本発表では 𝑐𝑖 のみ考える • 𝑥 ∈ 𝔻 に注目したときのパターン • 𝑟𝑖(𝑥)のみ: read-only (RO) • 𝑤𝑖(𝑥)のみ: blind-write (BW) • 𝑟𝑖 𝑥 と𝑤𝑖(𝑥): read-modify-write (RMW) • 𝑡0は初期値を書いたことを表す • op 𝑡0 = 𝑤0 𝑥 𝑥 ∈ 𝔻 ⊔ {𝑐0} 5
  • 6.
    History の構成要素 • RFS(𝑇):𝑇 の reads-from 関係 𝑅 全体 • rf: 𝑥, 𝑖 𝑟𝑖 𝑥 ∈ op 𝑇 → 𝑗 𝑤𝑗 𝑥 ∈ op 𝑇 • ある rf の元で 𝑟𝑖 (𝑥) を 𝑗 = rf(𝑥, 𝑖) を用いて 𝑟𝑖(𝑥𝑗) とかく • 𝑅rf ≔ { 𝑡𝑗, 𝑥, 𝑡𝑖 ∣ 𝑟𝑖 𝑥 ∈ op 𝑇 , 𝑗 = rf 𝑥, 𝑖 } reads-from 関係 • Rfs: rf 全体 • RFS(𝑇) ∶= {𝑅rf ∣ rf ∈ Rfs} • ORD(𝑇): op(𝑇) の元を並べて作る列 𝑂 全体 • 𝑂 = 𝑜1, 𝑜2, … , 𝑜 𝑀 • 𝑜1, 𝑜2, … , 𝑜 𝑀 ∈ op 𝑇 , 𝑜𝑖 = 𝑜𝑗 ⇔ 𝑖 = 𝑗, 𝑀 = |op 𝑇 | (制約1) • 𝑜𝑖 < 𝑂 𝑜𝑗 def 𝑖 < 𝑗 < 𝑂 を operation order という • ∀𝑡𝑖 ∈ 𝑇. ∀𝑜 𝑘, 𝑜𝑙 ∈ op 𝑡𝑖 . 𝑜 𝑘 < 𝑡 𝑖 𝑜𝑙 ⇒ 𝑜 𝑘 < 𝑂 𝑜𝑙. (制約2) 6
  • 7.
    MV History (MVH空間) • Reads-from-order 条件 • RFS 𝑇 ∋ 𝑅, ORD 𝑇 ∋ 𝑂 について、 ∀ 𝑡𝑗, 𝑥, 𝑡𝑖 ∈ 𝑅. 𝑤𝑗 𝑥 < 𝑂 𝑟𝑖 𝑥 . を満たす • MV history 𝑚 ≔ 𝑇, 𝑅, < 𝑂 • 𝕋 ∋ 𝑇, RFS 𝑇 ∋ 𝑅, ORD 𝑇 ∋ 𝑂 を read-from-order 条件を 満たすようにとったもの • 𝑇 は trans(𝑚)、𝑅 は RF(𝑚)、< 𝑂 は < 𝑚 とかく • MVH: MV history 全体 • MV history 例 (𝑡0は省略) • 𝑤1 𝑥 𝑟2 𝑥1 𝑤2 𝑦 𝑐2 𝑟3 𝑥0 𝑤1 𝑦 𝑐1 𝑟3 𝑦2 𝑤3(𝑥) 𝑐3 𝑡𝑖で色分け • 𝑤1 𝑥 𝑟2 𝑥1 𝑤2 𝑦 𝑐2 𝑟3 𝑥0 𝑤1 𝑦 𝑐1 𝑟3 𝑦2 𝑤3(𝑥) 𝑐3 𝑥, 𝑦で色分け 7
  • 8.
    重要な History 部分空間(1) • Serial history (SEH) • < 𝑚 においてトランザクションが混ざらない • 𝑡𝑖 < 𝑚 𝑡𝑗 def ∀𝑝 ∈ op 𝑡𝑖 . ∀𝑞 ∈ op 𝑡𝑗 . 𝑝 < 𝑚 𝑞. • 𝑚 ∈ SEH def trans 𝑚 , < 𝑚 が全順序集合 • 例: 𝑤1 𝑥 𝑤1 𝑦 𝑐1 𝑟2 𝑥1 𝑤2 𝑦 𝑐2 𝑟3 𝑥0 𝑟3 𝑦2 𝑤3(𝑥) 𝑐3 • 1V history (1VH) • < 𝑚 において直前の書き込みを読む • 𝑚 ∈ 1VH def ∀ 𝑡𝑗, 𝑥, 𝑡𝑖 ∈ RF 𝑚 . ∄𝑘. 𝑤 𝑘 𝑥 ∈ op 𝑚 ∧ 𝑤𝑗 𝑥 < 𝑚 𝑤 𝑘 𝑥 < 𝑚 𝑟𝑖 𝑥 . • 例:𝑤1 𝑥 𝑟2 𝑥1 𝑤2 𝑥 𝑐2 𝑟3 𝑥2 𝑤1 𝑦 𝑐1 𝑟3 𝑦1 𝑤3(𝑥) 𝑐3 8
  • 9.
    重要な History 部分空間(2) • 1V-serial history (1VSEH) • Serial history かつ 1V history • 1VSEH ∶= SEH ∩ 1VH • 1V-serial history の挙動を「正しい」とする前提 • 並列に動作(𝑚 ∉ 1VSEH)させても 1V-serial history と 「等価」なら「正しい」 • genH 𝑚 ≔ {𝑚′ ∈ MVH ∣ trans 𝑚 = trans 𝑚′ } • genSEH 𝑚 ≔ genH 𝑚 ∩ SEH • gen1VSEH 𝑚 ≔ genH 𝑚 ∩ 1VSEH 9
  • 10.
    Conflicts • conf 𝑝𝑞𝑚 ≔ 𝑝𝑖 𝑥 , 𝑞 𝑗 𝑥 𝑝𝑖 𝑥 , 𝑞 𝑗 𝑥 ∈ op 𝑚 , 𝑝𝑖 𝑥 < 𝑚 𝑞 𝑗 𝑥 • 𝑝, 𝑞 ∈ {(𝑤, 𝑟), (𝑤, 𝑤), (𝑟, 𝑤)} • conf 𝑚 ≔ conf 𝑤𝑟 𝑚 ⊔ conf 𝑤𝑤 𝑚 ⊔ conf 𝑟𝑤 𝑚 10
  • 11.
    Serializability • MVSR (multi-versionview serializability) • 𝑚 ∈ MVH • 𝑚 ∈ MVSR def ∃𝑚 𝑠 ∈ gen1VSEH 𝑚 . RF 𝑚 = RF 𝑚 𝑠 . • VSR ((mono-version) view serializability) • VSR ≔ MVSR ∩ 1VH • CSR (conflict serializability) • 𝑚 ∈ 1VH • 𝑚 ∈ CSR def ∃𝑚 𝑠 ∈ gen1VSEH 𝑚 . conf 𝑚 = conf(𝑚 𝑠). • ... 11
  • 12.
    従来の Membership Testing •MVSR の場合 • version order ≪ : 各 𝑥 ∈ 𝔻 について {𝑤𝑖 𝑥 ∈ op(𝑚)} に与え た全順序関係 ≪ 𝑥 の和集合 • ∃≪. MVSG 𝑚, ≪ is acyclic ⇔ 𝑚 ∈ MVSR. • MVSG 𝑚, ≪ ≔ (trans 𝑚 , 𝐸) となる directed graph • ∀ 𝑡𝑗, 𝑥, 𝑡𝑖 ∈ RF 𝑚 . 𝑡𝑗, 𝑡𝑖 ∈ 𝐸. • ∀ 𝑡𝑗, 𝑥, 𝑡𝑖 ∈ RF 𝑚 . ∀𝑘 ≠ 𝑖, 𝑗. 𝑤 𝑘 𝑥 ∈ op 𝑚 ⇒ 𝑤 𝑘 𝑥 ≪ 𝑤𝑗 𝑥 ⇒ 𝑡 𝑘, 𝑡𝑗 ∈ 𝐸 ∨ 𝑤𝑗 𝑥 ≪ 𝑤 𝑘 𝑥 ⇒ 𝑡𝑖, 𝑡 𝑘 ∈ 𝐸 . • CSR の場合 • 𝑚 ∈ 1VH • CG(𝑚) ∶= (trans(𝑚), 𝐸) となる directed graph • ∀ 𝑝𝑖 𝑥 , 𝑞 𝑗 𝑥 ∈ conf 𝑚 . 𝑡𝑖, 𝑡𝑗 ∈ 𝐸. • CG 𝑚 is acyclic ⇔ 𝑚 ∈ CSR. 12
  • 13.
    Timestamp Mapping (TM) •単射写像 ts: trans 𝑚 → ℝ を 𝑚 の timestamp mapping (TM) と呼ぶ • 𝑡𝑖 <ts 𝑡𝑗 def ts 𝑡𝑖 < ts(𝑡𝑗) • genTs(𝑚) ∶= 𝑚 の TM 全体 • genOrdSEH 𝑚, ts ≔ {𝑚 𝑠 ∈ genSEH 𝑚 ∣ 𝑡𝑖 <ts 𝑡𝑗 ⇔ 𝑡𝑖 < 𝑚 𝑠 𝑡𝑗} • genOrdSEH 𝑚, ts ∩ 1VH = 1 • ord1VSEH 𝑚, ts ≔ 𝑚 𝑠 ∈ genOrdSEH 𝑚, ts ∩ 1VH 13
  • 14.
    Membership Testing 手法比較 •グラフ構造利用 (従来) • (MVSG や CG などの) digraph is acyclic ⇔ topological sort 可能 ⇔ (partial order となる) ⇔ compatible な total order が存在 • 背理法を使う証明が多い • 実践的な CC プロトコルのほとんどはグラフ構造を使わない • TMR 利用 (提案) • Rules を満たす TM が存在 ⇔ compatible な total order が存在 • ほとんど背理法を使わずに証明できる • 実践的な CC プロトコルの多くはより 直接的に compatible total order (もしくは timestamp) を扱う 14
  • 15.
    TM によるスケジュール空間の拡張 • MVHT≔ { 𝑚, ts ∣ 𝑚 ∈ MVH, ts ∈ genTs(𝑚)} • 𝜋: MVHT ∋ 𝑚, ts ↦ 𝑚 ∈ MVH (射影) • H ⊂ MVH を H 空間と呼ぶ • 𝜋−1(H) ≔ 𝑚, ts 𝑚 ∈ H, ts ∈ genTs 𝑚 . (拡張) • HT ⊂ 𝜋−1 (H) を HT 空間と呼ぶ • 𝜋(HT) ⊂ H. (定義より) • 既存空間の拡張 • MVHT = 𝜋−1(MVH) • 1VHT ≔ 𝜋−1(1VH) • 1VSEHT ≔ 𝜋−1(1VSEH) • … 15 ts ∈ genTs(𝑚) 𝑚 ∈ MVH H = 𝜋(HT) 𝜋−1 (H) HT
  • 16.
    HT 空間の性質 • ∀HT1,HT2 ⊂ MVHT = 𝜋−1(MVH). • ∀H3 ∈ MVH. • 𝜋 HT1 ∪ HT2 = 𝜋 HT1 ∪ 𝜋 HT2 . 和集合は保存 • HT1 ⊂ HT2 ⇒ 𝜋 HT1 ⊂ 𝜋(HT2). 包含関係は保存 • 𝜋 HT1 ∩ HT2 ⊂ 𝜋 HT1 ∩ 𝜋 HT2 . 積集合は保存されず • 𝜋 HT1 ∩ 𝜋−1(H3) = 𝜋 HT1 ∩ H3. 片方が拡張なら保存 16
  • 17.
    Timestamp Mapping Rules(TMR) • Reads-from rules • c-rule: ∀ 𝑡𝑗, 𝑥, 𝑡𝑖 ∈ RF 𝑚 . 𝑡𝑗 <ts 𝑡𝑖. • v-rule: ∀ 𝑡𝑗, 𝑥, 𝑡𝑖 ∈ RF 𝑚 . ∄𝑘. 𝑤 𝑘 𝑥 ∈ op 𝑚 ∧ 𝑡𝑗 <ts 𝑡 𝑘 <ts 𝑡𝑖. • Conflicts rules • pq-rule: ∀ 𝑝𝑖 𝑥 , 𝑞 𝑗 𝑥 ∈ conf 𝑝𝑞 𝑚 . 𝑡𝑖 <ts 𝑡𝑗. • wr-rule, ww-rule, rw-rule • HTrules ≔ rules を全て満たす (𝑚, ts) 全体 • Hrules ≔ 𝜋(HTrules) 17
  • 18.
    TMR による等価な H空間 • 𝐌𝐕𝐒𝐑 = 𝐇 𝒄,𝒗 • VSR = H 𝑐,𝑣 ∩ 1VH • CSR = H 𝑤𝑟,𝑤𝑤,𝑟𝑤 ∩ 1VH = H 𝑐,𝑣,𝑤𝑤 ∩ 1VH = H 𝑐,𝑣,𝑤𝑟,𝑤𝑤 • … • 証明は全て HT 空間で行い、最後に H 空間に落とす • HTrules ⊂ 𝜋−1(Hrules) であることに注意 18 • 𝐌𝐕𝐒𝐑𝐓 ≔ 𝐇𝐓𝒄,𝒗 • VSRT ≔ HT𝑐,𝑣 ∩ 1VHT • CSRT ≔ HT 𝑤𝑟,𝑤𝑤,𝑟𝑤 ∩ 1VHT = HT𝑐,𝑣,𝑤𝑤 ∩ 1VHT = HT𝑐,𝑣,𝑤𝑟,𝑤𝑤 • …
  • 19.
    重要な補題と定理 • 補題 • ∀𝑚∈ MVH. ∀ts ∈ genTs 𝑚 . 𝑚 𝑠 ≔ ord1VSEH 𝑚, ts . ∀𝑝𝑖 𝑥 , 𝑞 𝑗 𝑥 ∈ op 𝑚 . 𝑝𝑖 𝑥 < 𝑚 𝑠 𝑞 𝑗 𝑥 ⇔ 𝑡𝑖 < 𝑚 𝑠 𝑡𝑗 ⇔ 𝑡𝑖 <ts 𝑡𝑗. • HT 𝑤𝑟,𝑤𝑤,𝑟𝑤 ∩ 1VHT ⊂ HT𝑐,𝑣 • HT𝑐,𝑣,𝑤𝑤 ⊂ HT𝑟𝑤 • 定理 • MVSR = H 𝑐,𝑣 ∵ 𝑚 ∈ MVSR ⇔ RF 𝑚 = RF(𝑚 𝑠) ⇔ 𝑚, ts ∈ HT𝑐,𝑣 ⇔ 𝑚 ∈ H 𝑐,𝑣 • CSR ⊂ VSR ∵ 𝜋 HT 𝑤𝑟,𝑤𝑤,𝑟𝑤 ∩ 1VHT ⊂ 𝜋 HT𝑐,𝑣 ∩ 1VHT • HT𝑐,𝑣,𝑤𝑤 ⊂ HT𝑐,𝑣,𝑟𝑤 19
  • 20.
    𝐇𝐓𝒄,𝒗,𝒘𝒘 CSRT 𝐇𝐓 𝒄, 𝒗,𝒘𝒓 VSRT 1VSEHT 𝐇𝐓 𝒄, 𝒗 𝐇𝐓 𝒄, 𝒗, 𝒓𝒘 HT 空間の包含関係 20 1VHT MVHT 部分空間の定量的な大きさは不明であることに注意
  • 21.
    関連研究 (理論) • D.P. Reed. 1978 • MVTO プロトコルの提案 (c-rule, v-rule 相当) • Christos H. Papadimitriou. 1979 • VSR の NP-completeness 証明 • Philip A. Bernstein, et al. 1983 • MVSG 提案(MVSR との等価性証明)、gen MVTO ⊂ MVSR の証明 • Mihalis Yannakakis. 1984 • CSR という言葉の初出、CSR ⊂ VSR の証明 • Christos H. Papadimitriou, et al. 1984 • MVSR の NP-completeness 証明、H 𝑐,𝑣,𝑤𝑤 相当の議論 • Toshihide Ibaraki, et al. 1987 • Non-full schedule 空間の包含関係を議論 (本研究は full schedule 相当) 21
  • 22.
    関連研究 (現代の CCプロトコル) • Stephen Tu, et al. 2013 • Silo プロトコル (2PL 互換の現代版 OCC) の提案、1VCC • Tianzheng Wang, et al. 2015 • SSN (SI 等と組み合わせて serializable) の提案、MVCC • Xiangyao Yu, et al. 2016 • TicToc プロトコル (Timestamp Ordering 現代版) の提案 • 1VCC だが MVCC 要素あり • (wts, rts) の timestamp ペアで制御 • Hyeontaek Lim, et al. 2017 • Cicada プロトコル (MVTO 現代版) の提案、MVCC • (wts, rts) の timestamp ペアで制御 • Many-core アーキテクチャでのスケーラビリティ考慮(SSN 除く) 22
  • 23.
    まとめ • Serializability 理論をより使いやすくする目的 •TMR (Timestamp Mapping Rules) の提案 • 既存スケジュール空間との等価性を証明 • スケジュール空間の包含関係の整理 23
  • 24.
    今後の課題 • Final stateの整理 • 𝑡∞ は 1VH の世界で final state の等価性を担保するのに必要 • MVH で 𝑇∞ を考えたがうまく 𝑡∞ に帰着できない問題 • 現代 CC プロトコルの TMR を用いた解釈と分析 • 何を < 𝑚 だと考えるか • (trans 𝑚 や RF(𝑚) は解釈の余地なし) • 理論上の部分空間の大きさの見積もり • ワークロード毎にスケジューリングの余地を 定量的に比較したい • TMR を直接用いた CC プロトコルの提案 • オーバーヘッドとスケジューリング能力のトレードオフ 24