Advanced Topics in Computer Systems
Lecture 2
Edited by Eric Brewer based on notes by Joe Hellerstein

System R & DBMS Overview

DBMS History

Database View of Applications

Big, complex record-keeping applications like SAP and PeopleSoft, which run over a DBMS.  "Enterprise applications" to keep businesses humming. A smattering: Typically client-server (a Sybase "invention") with a form-based API. Focus on resource management secondary to focus on data management.

Traditionally, a main job of a DBMS is to make these kinds of apps easy to write

Relational System Architecture

See the article in Foundations and Trends in Databases for in-depth disussion of many of the issues below. Databases are BIG pieces of software. Typically somewhat hard to modularize. Lots of system design decisions at the macro and micro scale. We will focus mostly on micro decisions -- and hence ideas reusable outside DBMSs -- in subsequent lectures. Here we focus on macro design.

Disk management choices:

Process Model: Hardware Model: Basic modules:

Notes on System R

See the System R reunion notes for fun background and gossip.

Some "systems chestnuts" seen in this paper:
Some important points of discussion The "Convoy Problem":

System R and INGRES are the prototypes that all current systems are based on.  Basic architecture is the same, and many of the ideas remain in today's systems:

Stuff they got wrong:

OS and DBMS: Philosophical Similarities & Differences

So, a main goal of this class is to work from both of these directions, cull the lessons from each, and ask how to use these lessons today both within and OUTSIDE the context of these historically separate systems.