what’s buffer pool in dbms
content
-
it’s a part of DBMS that’s responsible for disk I/O
- i.e., moving data to and from memory and disk
- it decides the content in memory
- it gets pages from disk to memory, and passes a pointer to the data back to high level of dbms (execution engine)
- it maps page id to RAM address
-
it also acts as a cache
- frequently accessed data are cached in memory
-
two things DBMS is optimizing
- spatial control: pages that are often accessed together should be physically stored closer to each other on disks
- temporal control: when to read from disk and when to write back to disks
-
by implementing its own buffer pool and not relying on OS to manage pages, DBMS gets to decide its own page replacement policy
- i.e., DBMS decides when to evict or flush what pages
- DBMS operates on the concept of transactions, and OS doesn’t know anything about transactions