+-----------------------------+
| Page Header |
| - Number of records |
| - other metadata |
+-----------------------------+
| Record 1 (fixed offset) |
| Record 2 (fixed offset) |
| Record 3 (fixed offset) |
| ... |
+-----------------------------+
slotted page: the length of records (tuples) is variable
different tuple can have different length
it’s tuple oriented
+--------------------------+
| Page Header |
| - Number of slots |
| - Offset to free space |
| - other metadata |
+--------------------------+
| Slot Directory (array of |
| pointers to records) |
+--------------------------+
| ... free space ... |
+--------------------------+
| Record N |
| Record N-1 |
| ... |
| Record 1 |
+--------------------------+
problem with slotted page tuple oriented structure:
fragmentation: when a tuple is deleted, it leaves empty space on page
I/O on non-volatile disks is block-addressable, any operation on one tuple means that the whole block needs to be fetched