CMU15445 Lecture 23 Distributed OLTP Databases
阿新 • • 發佈:2022-03-13
OLTP vs. OLAP
OLTP
- txn的讀寫時間短
- 給系統留下的影響小
- 重複性的操作
OLAP
- txn主要是read,且時間長
- 涉及到複雜的join
- 要讀取大量資料,做分析
assumption
所有的node都是可以信任的,且所有的node都歸屬同一個管理域,否則需要Byzantine Fault Tolerant 協議來實現分散式事務,這樣的話效率非常低
Atomic Commit Protocols
用於保證一個txn相關的所有node保持atomic
- 2pc 用的多
- three-phase commit 基本不用
- paxos 用於協調事務的時候比較少,更多用於協調副本,投票方案
- raft
- ZAB 投票方案
- Viewstamped Replication
啥叫center data?2PC round trip更少?
Two-Phase Commit
Optimazation:
- 如果client傳送的query是最後一條,這時還沒有傳送commit,那麼remote node可以回覆prepare 的結果與query result
- coordinator先回復client,再去進入第二階段,也就是通知participant去commmit
Issues
- 如果coordinator中途掛了,那麼participants需要根據log回滾
- 如果participants中途掛了,那麼假裝為participants迴應了abort
Paxos
Paxos是一種不那麼嚴格的2PC,時間延遲更低
等到crash的acceptor恢復之後,proposer會持續的告訴這個acceptor去做相應的執行
拒絕lower的logical timestamp,而是去回覆higher timestamp嗎?
multi-paxos
multi-paxos用來解決兩個propser互相傳送higher timestamp而互相阻塞的情況?
為什麼可以跳過propose階段?為什麼要回退到full paxos?
Replication
Number of Primary Nodes
一個主節點,多個從節點,主節點傳播其update到從節點時不需要使用atomic commit protocol?為什麼不用,可能是因為可以先從主節點獲取,那麼從節點就不需要是最新的資料了
Multi-Primary
多個主節點,這裡就需要保證所有所有主節點強一致性的同步,也就是需要atomic commit protocol