In-memory database
From Wikipedia, the free encyclopedia
An in-memory database (IMDB; also main memory database system or MMDB) is a database management system that primarily relies on main memory for computer data storage. It is contrasted with database management systems which employ a disk storage mechanism. Main memory databases can be faster than databases which rely on disk storage because the MMDB does not have to perform disk I/O to update or query its data.
[edit] ACID Support
In their simplest form, main memory databases store data on volatile memory devices. These devices lose all stored information when the device loses power or is reset. In this case, MMDBs can be said to lack support for the durability portion of the ACID properties. (Volatile memory-based MMDBs can, and often do, support the other three ACID properties of atomicity, consistency and isolation).
Many MMDBs add durability via the following mechanisms:
- Transaction Logging, which records changes to the database in a journal file and facilitates automatic recovery of an in-memory database.
- Non-volatile RAM, usually in the form of static RAM backed up with battery power (battery RAM), or an electrically erasable programmable ROM (EEPROM). With this storage, the MMDB system can recover the data store from its last consistent state upon reboot.
- High Availability implementations that rely on database replication, with automatic failover to an identical standby database in the event of primary database failure.
[edit] Products
- Polyhedra DBMS
- DataBlitz
- TimesTen
- eXtremeDB
- CSQL (open source, middle-tier cache)
- solidDB
- FastDB (open source)
- MonetDB (open source)
- H2 (open source, in-memory)
- HSQLDB (open source, has a memory-only mode)
- MySQL has a cluster server which uses a main-memory storage engine
- QuiLogic
- RDM Embedded
[edit] External links
- Jack Belzer: Encyclopedia of Computer Science and Technology - Volume 14: Very Large Data Base Systems to Zero-Memory and Markov Information Source, Marcel Dekker Inc., ISBN 0-8247-2214-0
- Gorine, Andrei. Building durability into data management for real-time systems, Boards & Solutions, September, 2004
- run time access to data structures
- Martin Fowler wiki: InMemoryTestDatabase
- Sprint Project
- Article "Main Memory Database Systems: An Overview" by Hector Garcia-Molina and Kenneth Salem
- Citations from CiteSeer