Hybrid Garbage Collection for Multi-Version Concurrency Control in SAP HANA 論文閱讀筆記

Hybrid Garbage Collection for Multi-Version Concurrency Control in SAP HANA 論文閱讀筆記

GC 的基本方法是把所有 commit-ts < 最小的 txn 的 version 回收(除了最後的)。但是 OLAP 會有 long-lived read txn,ts 比較小,在這個 read duration 中的 version 都不會被回收(但部分其實可以)

SAP HANA

  • version storage
    • table space 存 original (oldest),在 GC 時可能被更新
    • version space 是 newest to oldest

在這裏插入圖片描述

Garbage Collector

Timestamp

與 global minimum txn-ts 比較

Interval Garbage Collector

如果沒有 txn-ts 落在2個連續 version 之間,那麼較早的 version 可以被清除。

Single / Group Garbage Collector

GC in SAP HANA

  • group version + timestamp
  • single version + interval
  • table garbage collectors

Group Garbage Collector

在這裏插入圖片描述

維護一個全局 txn-ts list,node 使用 ref count

在這裏插入圖片描述

GC 的單位是 txn group

Interval Garbage Collector

從 GroupCommitContext 裏面 > min-ts 的開始,遍歷 version chain,檢查 interval

Table GC

在這裏插入圖片描述

如果可以預先知道哪些 table 會被訪問,那麼就可以做出優化。那些最近不會被訪問的 table 就可以做 GC

HybridGC

在這裏插入圖片描述

  • 先粗粒度 group version GC,然後 table GC 或者 interval GC
  • table GC 檢查 GroupCommitContext 的子集,回收 < global-min-ts
  • interval GC 檢查所有 version chain

Reference

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章