Advanced Database Systems, fall 2003 (Mondays 7-9)

Professor: Dennis Shasha (shasha@cs.nyu.edu)
Teaching Assistant: Zhihua Wang

Graduate Division

Computer Science



To study the internals of database systems as an introduction to research and as a basis for rational performance tuning.

The study of internals will concern topics at the intersection of database system, operating system, and distributed computing research and development. Specific to databases is the support of the notion of transaction: a multi-step atomic unit of work that must appear to execute in isolation and in an all-or-nothing manner. The theory and practice of transaction processing is the problem of making this happen efficiently and reliably.

Tuning is the activity of making your database system run faster. The capable tuner must understand the internals and externals of a database system well enough to understand what could be affecting the performance of a database application. We will see that interactions between different levels of the system, e.g., index design and concurrency control, are extremely important, so will require a new optic on database management design as well as introduce new research issues. Our discussion of tuning will range from the hardware to conceptual design, touching on operating systems, transactional subcomponents, index selection, query reformulation, normalization decisions, and the comparative advantage of object-oriented database systems. This portion of the course will be heavily sprinkled with case studies from database tuning in biotech, telecommunications, and finance. Also, since the book that Philippe Bonnet and I have just completed has many tests associated with it, you will get the benefit of those tests.

Because of my recent research (and product) interests, this year will include frequent discussions of

Office hours

Class materials

Here are the tuning assignment questions for problem set 2

Here are some experiments having to do with database tuning .

Here find a brief lecture on the paper "Easy Impossibility Proofs for Distributed Consensus Problems" by Fischer, M. and Lynch, N. and Merritt, M. Here is a relevant picture.

Here are some challenges and solution concerning the tuning of stored procedures.

Here is how to call C from K: Don Orth's description of how to call C from K.

Here are Alan Fekete's slides on snapshot isolation Snapshot Isolation and Fixes to It

Here is Joe Conron's nice paper on indexes (from when he was a master's student).

Here are Alberto Lerner's excellent notes on performance monitoring.