Paper · Foundations

Architecture of a Database System

J. M. Hellerstein, M. Stonebraker, J. Hamilton · Foundations and Trends in Databases · 2007

A guided tour of every major component inside a DBMS. The best map before diving into any one part.

Summary

Textbooks explain database algorithms one at a time, but rarely show how a real system fits them together. This long survey fills that gap. It describes the architecture of a relational DBMS as it is actually built in commercial and open-source systems, including the engineering choices those systems make.

The paper walks through process models (process per connection, threads, and pools), parallel architectures such as shared-memory, shared-nothing and shared-disk, the query processor and optimiser, the storage manager and buffer pool, and the transaction subsystem with locking, logging and recovery. It also covers shared components like the catalog and memory allocators.

It is the best map to read before studying any single component. When you later read a paper on buffer replacement or query compilation, you will know where that piece sits and what it has to interact with.

Key ideas

  • Process models: process per connection, thread per connection, and worker pools.
  • Shared-memory, shared-nothing and shared-disk parallel architectures.
  • How the parser, optimiser, executor, access methods and buffer pool fit together.
  • Transactional storage built from locking, latching, logging and recovery.

More Foundations papers