Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Handling a High Performance PostgreSQL Database

Rain
May 25, 2021

Handling a High Performance PostgreSQL Database

Rain

May 25, 2021
Tweet

More Decks by Rain

Other Decks in Technology

Transcript

  1. Hello! I am Rain! ex- A. SWE @iCHEF ex- SWE

    @NetDB 2 GitHub: RainrainWu LinkedIn: Rain Wu
  2. 23 Primary WAL PG node Standby WAL PG node Standby

    WAL PG node pgpool-II Write Read Read Proxy Synchronization
  3. 24 Primary WAL PG node Standby WAL PG node Standby

    WAL PG node pgpool-II Write Read Read Proxy Synchronization 10 W 100 R 10 W 50 R 50 R 10 W 10 W
  4. Inverted Index ⬡ National : Doc1, Doc2 ⬡ Successful :

    Doc1 ⬡ University : Doc1, Doc2 ⬡ Failed : Doc2 30
  5. 34

  6. Isolation 的主流實作策略 ⬡ Shared-exclusive Lock (SX Lock) ∙ MySQL, MS

    SQL ⬡ Multiversion Concurrency Control (MVCC) ∙ PostgreSQL, Oracle 35
  7. SX Lock ⬡ 每筆資料可發行多把 S Lock 和一把 X Lock ⬡

    發行 S Lock 時不可有發行中的 X Lock,而發 行 X Lock 時不可有發行中的 S/X Lock ⬡ 只有 Read-Read 不會互相 block,Read-Write 和 Write-Write 都會 36
  8. 常聽到有人批評 PostgreSQL 做 Clustering 成效不如 MySQL ? ⬡ 讀寫分離解決了 MySQL

    中 SX Lock 機制的 Read-Write block 問題,而 PostgreSQL 中 MVCC 機制沒這問題 ⬡ 他的 Read 流量沒有大到需要讀寫分離 ⬡ 他配置有問題 38
  9. 39 Primary WAL PG node Standby WAL PG node Standby

    WAL PG node pgpool-II Write Read Read Proxy Synchronization 10 W 100 R 10 W 50 R 50 R 10 W 10 W
  10. OLTP v.s. OLAP ⬡ 兩者之間有個很關鍵的行為差異,就 是 range scan ⬡ 計算

    real time 指標、產報表都需要 ⬡ 資料庫儲存資料的結構影響很大 40
  11. 有沒有 Range Scan 差很多 ⬡ Heap Table 基本上要 Serial scan

    ⬡ 當你使用一個 OLTP server 做分析或報表,覺 得他做得很慢時,你可能需要另個 OLAP server 而不是開腦洞優化 OLTP server 43