Introduction#

We will focus only on hard disk drives when speaking of disks.

The disk space management is the lowest layer of DBMS which manages space on disk.

  • Map pages to locations on disk

  • Load pages from disk to memroy

  • Save pages back to disk & ensuring writes

Higher level can call the following API

  • Read/write a page

  • Allocate/de-allocate logical pages

Block Level Storage#

  • Read and Write large chunks of sequential bytes

  • Sequential: Access of a neighboring disk block. Access of sequential blocks are fastest

  • Prediction increases performance

    • Cache popular blocks

    • Buffer writes to sequential blocks

Block : A unit of transfer for disk read/write

* Typically 64KB or 128KB

Page : A synonym for block

* Sometimes used for block-size chunk in RAM
  • The next or neighboring block is any of the following:

    • Same track but the block immediately after

    • Same cylinder but different disk

    • Adjacent cylinder

Implementation#

DPM are implemented with the OS’ file system.

  • Allocate single large “contiguous” file on a nice empty disk, and assume sequential/nearby byte access are fast

  • Most FS optimize disk layout for sequential access

  • “DBMS file” may span multiple FS files on multiple disks/machines