PostgreSQL
Skilled
A Tour of PostgreSQL Concurrency Control
409-1 12:15 ~ 12:55 MandarinConcurrency Control「並發控制」是資料庫中能夠保持 ACID 中的 I (Isolation 隔離性) 和 C (Consistency 一致性) 的機制。
常見的「並發控制」技術有三種,分別是:MVCC (Multiversion Concurrency Control,多版本並發控制),S2PL (Strict TwoPhase Locking,嚴格的兩階段鎖定) 與 OCC (Optimistic Concurrency Control,樂觀並發控制)。
PostgreSQL 使用的是 MVCC 來實現「並發控制」,本次 Talk 藉由探討 PostgreSQL MVCC 的內部實作,來理解 PostgreSQL 的資料庫特性。最後藉由比較 PostgreSQL 與 Mysql 的 MVCC 實作上的不同,來理解兩個主流資料庫的差異性。
聽完本次 Talk 你會學到下列知識點:
- 理解 Heap Tuple 結構
- 什麼是 MVCC?
- PostgreSQL 如何實做 MVCC ?
- 「新增資料」、「刪除資料」、「更新資料」在 PostgreSQL 如何進行。
- 交易快照 (Transaction Snapshot)是什麼?
- Heap Only Tuple (HOT) 是什麼?
- PostgreSQL 跟 Mysql 的 MVCC 有什麼不同?
- 比較 PostgreSQL 跟 Mysql 的 MVCC 在極端情況下的表現。
Collaborative note: https://hackmd.io/@coscup/By3CCflNH