The Architecture of the Dali Main-Memory Storage Manager

P. Bohannon, R. Rastogi, and A. Silberschatz

Bell Laboratories, Murray Hill, NJ

S. Sudarshan

Indian Institute of Technology, Bombay

Performance needs of many database applications dictate that the entire database be stored in main memory. The Dali system is a main memory storage manager designed to provide the persistence, availability, and safety guarantees one typically expects from a disk-resident database, including support for transactions, while at the same time providing very high performance by virtue of being tuned to support in-memory data. User processes map the entire database into their address space and access data directly, thus avoiding expensive remote procedure calls and buffer manager interactions typical of accesses in disk-resident commercial systems available today. Dali recovers the database to a consistent state in the case of system as well as process failures. It also provides unique concurrency control and memory protection features, as well as indices and a relational application programming interface.