Database Storage - Part I

Overview:

  • We now understand what a database looks like at a logical level and how to write queries to read/write data from it.
  • We will next learn how to build software that manages a database.

Layout of Database:

graph TD;
	1[Query Planning]
	2[Operator Execution]
	3[Access Methods]
	4[Buffer Pool Manager]
	5[Disk Manager]
	1 --> 2
	2 --> 3
	3 --> 4
	4 --> 5

We will go through these different layers bottom-up.


Disk-Oriented Architecture

  • The DBMS assumes that the primary storage location of the database is on non-volatile disk.
  • The DBMS ’s components manage the movement of data between non-volatile and volatile storage.

Remembering that in the storage hierarchy, layers above DRAM are volatile, random access and byte-addressable, and the layers underneath SSD are non-volatile, sequential access and block-addressable.

We now care about moving data that is non-volatile into layers that data that is volatile.

In this course, we will call DRAM memory, and any layer below SSD Disk.

System Design Goals

We want to create an illusion to the applications that we have enough memory to store their entire database in the memory. We want to allow the DBMS to manage databases that exceed that amount of memory available.

High-level Overview of The Total Design