# CMU DB 23. Distributed OLTP Database Systems
tags: CMU DB
授業
OLTP vs OLAP
- On-line Transaction Processing(OLTP)
- 短命な読み書きtxn
- 小さなfootprint(稼働時に占有,消費する資源)
- 繰り返し処理
- On-line Analytical Processing(OLAP)
- 長寿な読み込み専用クエリ
- 複雑な結合
- 探索的なクエリ
重要な仮定.分散DBMS内の全てのノードはwell-behaved(性質が規則的で,直感に反さない)で,同じ管理ドメインの下にある.つまり,txnを完了するようにノードに命令したら,失敗せずにtxnを完了するということ.
atomic commit protocols
複数ノードのtxnが終了した際に,DBMSのノードは全ての関連ノードに完了しても安全かどうかを尋ねる必要がある.
- 2pc optimizations
- early prepare voting
- early acknowledgement after prepare
- two-phase commit(2pc)
- それぞれのノードが不揮発性のストレージのlogにそれぞれの段階の結果を記録する
- coordinatorがクラッシュしたら,participantが何をするべきかを決めなければならない
- partitipantがクラッシュしたら,coordinatorはもし了承が返ってこないときは中断と反応したと仮定する
- PAXOS
- 同意のプロトコル
- coordinatorは結果を提案し,participantsはその結果が成功したかを投票する
- multi-paxos
- システムがある期間の間の変化を提案する席にある単一のリーダーを選択するとしたら,Propose phaseを飛ばすことが可能.
- システムは定期的に誰かリーダーになるかを再び改める必要がある.
replication
DBMSは可用性(availability,システムが安定稼働出来る能力)を増すために,余ったノードに渡ってデータを複製することが可能.
設計指針は
- replica configuration
- master-replica
- multi-master
- K-safety
- propagation scheme
- propagation timing
- update method
consistency issues(CAP)
Consistent + Always Available + Networdk Partitioin Tolerantうちどれか2つしか選べないという理論.
失敗をどう取り組むかが,CAP理論のどの要素に対応しているかを決める.
- tradiditional/NewSQL DBMSs
- ノードの過半数が再接続されるまで更新を許すことを止める
- NoSQL DBMSs
- ノードが再接続された後に衝突を解決する仕組みを与える.
federated databases
複数のDBMSを繋げて単一の論理システムにする分散アーキテクチャ.
これは難しくて,誰も上手くはやれていない.
- モデル,クエリ言語,限界が違う
- クエリの最適化が難しい
- 多くのデータコピーがある(よくない)
結論
我々の分散DBMSのノードは友好的だと仮定した.
ブロックチェーンDBはノードは対抗的だと仮定している.これはtxnを完了するために複数のプロトコルを使わなければならないことを意味する.