DataBlitz is a general purpose main memory database management system, developed by Lucent Bell Labs Research from 1993 to 1995. It replaced various home-grown database products used throughout Lucent beginning in 1997. It was originally named "Dali", and provided recovery and concurrency control features. Later, Dali was renamed as "DataBlitz". DataBlitz provides a platform for building high-performance shared memory applications that can survive failures or organize large amounts of data with features suited to many applications. Applications for DataBlitz include: Switching and call routing in telecommunications Real-time billing High-performance Web servers Financial trading applications Data caching Features of DataBlitz Architecture for high performance No disk I/O for read operations and limited disk I/O for write operations (for Real Time apps.) All algorithms optimized for memory rather than disk Direct shared memory access to data Native C++ API for faster data access Support Multithread applications. Full Transaction Semantics Atomicity Consistency Isolation Durability High Availability Data replication to enhance availability and redundancy Asynchronous and Synchronous data replication Multi level Recovery to handle all kinds of failures Enhanced Fault Tolerance Code-word and Memory protection to detect and prevent data corruption due to stray application pointers Fuzzy checkpoints that only minimally interfere with transaction processing Relational C++ interfaces to optimize CPU cycles Supports a broad subset of ANSI SQL 99, using Dharma SQL engine Support SQL, ODBC and JDBC through Dharma SQL engine. On-line backup and restore facility Relational The DataBlitz Relational Manager is a C++ class library interface to a relational system with SQL support limited to definition statements. Schema information is stored in tables, and can be queried using the relational API itself. Indices may be created on arbitrary subsets of the attributes in a table. Referential integrity is supported (foreign key constraints), as are null values, date and time attribute types, and variable length fields. Navigation is supported through iterators over a single table. A conjunctive query may be specified for the iterator, and automatic index selection is performed. Both fine-grained and multi-granularity locking strategies are used for high concurrency without incurring too much overhead. Also, locks obtained by iterators avoid the "phantom" anomaly... Collections and Indices DataBlitz also provides higher-layer interfaces for grouping related data items, and performing scans as well as associative access (via indices) on data items in a group... Storage Manager Each database file in DataBlitz consists of segments, which are contiguous page-aligned units of allocation, similar