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 are faster than disk-optimized databases since the internal optimization algorithms are simpler and execute fewer CPU instructions. Accessing data in memory provides faster and more predictable performance than disk. In applications where response time is critical, such as telecommunications network equipment that operates 9-1-1 emergency systems, main memory databases are often used. [1]
Contents |
[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] "Hybrid" in-memory/on-disk databases
Technology emerged in approximately 2007 that combined in-memory and on-disk data storage in a single database system. The advantage to this approach, as stated by companies including McObject, Raima or Altibase, is flexibility: the developer can strike a balance between performance (which is enhanced by sorting, storing and retrieving specified data entirely in memory, rather than going to disk); cost, because a less expensive hard disk can be substituted for more memory; persistence; and form factor, because RAM chips cannot approach the density of a small hard drive.[2]
Manufacturing efficiency is another reason a combined in-memory/on-disk database system may be chosen. Some device product lines, especially in consumer electronics, include some units with permanent storage, and others that rely on memory for storage (set-top boxes, for example). If such devices require a database system, a manufacturer can adopt a hybrid database system at lower cost, and with less code customization, than using separate in-memory and on-disk databases, repectively, for its disk-less and disk-based products.[3]
[edit] Commercial products
In recent years, main memory databases have attracted the interest of larger database vendors. TimesTen, a start-up company founded by Marie-Anne Neimat in 1996 as a spin-off from Hewlett-Packard, was acquired by Oracle Corporation in 2005. Oracle now markets this product as both a standalone database and an in-memory database cache to the Oracle database. IBM acquired SolidDB in 2008, and Microsoft is widely rumored to be launching an in-memory solution in 2009. [4] CSQL , a main memory stand alone database and in memory cache for MySQL, Postgres and Oracle database developed by Lakshya solutions comes with dual licensing(open source and commercial) option. Lakshya solutions provides consulting and support for this product.
[edit] Products
- Polyhedra DBMS
- DataBlitz
- TimesTen
- eXtremeDB (including hybrid eXtremeDB Fusion)
- CSQL (dual licensing)
- solidDB
- FastDB (open source)
- MonetDB (open source)
- H2 (open source, in-memory)
- HSQLDB (open source, has a memory-only mode)
- SQLite (hybrid, open source) - RAM and disk dbs can be used together
- MySQL has a cluster server which uses a main-memory storage engine
- QuiLogic
- RDM Embedded (including hybrid)
- RDM Server (including hybrid)
- Altibase (commercial product, has in-memory and disk table; HYBRID DBMS)
[edit] References
- ^ http://findarticles.com/p/articles/mi_m0EIN/is_2002_June_24/ai_87694370
- ^ Cole, Bernard."Hybrid embedded database merges on-disk and in-memory data management", Embedded.com, February, 2007. Retrieved on August 15, 2008.
- ^ Graves, Steve. "Hybrid Data Management Gets Traction In Set-Top Boxes", Embedded.com, July, 2008. Retrieved on August 15, 2008.
- ^ http://www.intelligententerprise.com/channels/business_intelligence/showArticle.jhtml?articleID=210700171
[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
- In-Memory Database Systems Questions and Answers