Slotted Page Layout
Keywords
Prerequisites
None — this is a starting concept.
Related Papers
Progress
Sign in to track your progress.
當我們要在固定大小的 disk page 中存放不定長度的 record 時,需要一個靈活的空間管理方式,這就是 slotted page layout 要解決的問題。我們在這個單元會學到一個 page 由三個部分組成:page header 記錄 metadata,slot array 從 page 前端往後成長,每個 slot 存放對應 record 的 offset 與長度,而實際的 record 資料則從 page 尾端往前堆疊成 heap。中間未使用的區域由 free-space pointer 追蹤。這種設計讓我們可以透過 slot indirection 自由搬移 record 來整理碎片空間,同時對外維持穩定的 record identifier,是 B+Tree leaf node 與許多儲存引擎 page 格式的基礎。
Key Concepts
我理解 slotted page 的三層結構:page header 記錄 metadata、slot array 從前端往後成長、record 資料從尾端往前堆疊成 heap area
我理解 slot array 中每個 slot 儲存對應 record 的 offset 與長度,透過這層 indirection 可以在不改變外部 record ID 的情況下搬移 record
我理解 free-space pointer 如何追蹤 slot array 與 heap area 之間的可用空間,以及何時需要進行 page compaction 來回收碎片空間
我了解為什麼 slotted page 適合處理 variable-length record:slot indirection 讓我們可以自由調整每筆 record 的大小與位置,不會影響其他 record 的參照方式