The performance needs of many database applications require that the e
ntire database be stored in main memory. The Dali system is a main mem
ory storage manager designed to provide the persistence (that is, the
retention of data after a crash), availability, and safety guarantees
that users typically expect from a disk-resident database including su
pport for transactions Because ii is tuned to support in-memory data,
Dali offers very high performance. User processes map the entire datab
ase into their address space and access data directly, thereby avoidin
g expensive remote procedure calls and buffer manager interactions typ
ical of accesses in the disk-resident commercial systems available tod
ay. Dali recovers from a system or process failure by restoring the da
tabase to a consistent state, It also provides unique concurrency cont
rol and memory protection features as well as index management and a r
elational application programming interface.