storage

  • DBMS always target maximizing sequential access (on non-volatile memory)
  • design goal of DBMS is managing DB that exceeds the amount of memory available
  • not use mmap in DBMS due to correctness/performance

pages

  • fixed-size block of data (1-16KB)
  • page layout
    • slotted pages: maps slots to offsets

memory

  • move data back and forth between disk and memory with Buffer Pool Manager

buffer pool

  • is in-memory cache (write-back) of pages
  • is array of fixed-size frames
  • page directory maps page IDs to page locations in DB files. all changes must be recorded on disk
  • page table maps page IDs to a copy of pages in buffer pool frames

locks/latches

  • lock is a higher-level, logical primitive that protects the contents of a DB from other transactions
  • latch is a low-level protection primitive that DBMS uses for critical sections in internal data structures

buffer replacement policies

  • LRU
  • CLOCK
    • similar to LRU without a separate timestamp per page (use reference bit - 1 is page is accessed)
    • LRU/CLOCK are susceptible to sequential flooding