Data Compression
Keywords
data compressionCPU vs I/O trade-offblock compressioncompression unitfixed-inputfixed-outputread amplificationin-place decompressionLZ4SnappyzstdgzipBrotlixzEROFSSquashfsAsk ChatGPT
Prerequisites
None — this is a starting concept.
Related Papers
Progress
Sign in to track your progress.
請問我解壓縮所花的 CPU 時間,有沒有比省下的 I/O 時間少呢? 答案會隨硬碟種類、壓縮演算法、和壓縮的單位而不同。 讓我們一同認識常見演算法,並學會挑選、以及理解 block compression 的單位選擇與 fixed-input/fixed-output 的差異。最後透過 EROFS 與 Squashfs 在 Android 手機上的正面對決,看為什麼「壓縮的單位該怎麼切」常常比「選哪個演算法」還重要。
貢獻 HackMD 共筆 💲大抄Key Concepts
我理解壓縮帶來的 CPU overhead 與節省 I/O 之間的 trade-off,並能用實際數字判斷在 HDD、SSD 等不同硬體上壓縮是否划算
我理解 block compression 的概念,即以固定大小的 block 作為壓縮與解壓縮的基本單位,以及 block 大小對壓縮率與 random access 成本的取捨
我理解 fixed-input 與 fixed-output 的設計取捨
我能透過 EROFS vs Squashfs 的案例,說明為什麼壓縮在 storage system 設計裡不只是「選哪個演算法」的問題,更是「壓縮的單位該怎麼切」的問題