1. 程式人生 > 其它 >CMU15445 Lecture 23 Distributed OLTP Databases

CMU15445 Lecture 23 Distributed OLTP Databases

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