In-memory database

from Wikipedia, the free encyclopedia

An in-memory database ( IMDB ) is a database management system , which the memory of a computer as a data storage uses. This differs from conventional database management systems that use hard disk drives for this purpose.

The main memory of a computer offers much higher access speeds than hard disk drives and the algorithms for access are simpler. This is why in-memory databases are much faster and their access times are more predictable than those of database management systems that access hard drives. However, main memory is much more expensive than hard disk space, so the individual computer usually has much less of it. However, if a database requires high storage capacity, this barrier for in-memory databases can be overcome through grid computing .

Non-persistence

Since in-memory databases store their data in volatile main memory, which they lose in the event of a system crash, they do not simply meet the requirement of permanent storage (persistence) of successfully completed transactions.

Many in-memory databases can help and achieve less or more persistence in data storage with the following methods:

  • Snapshot files save the state of the database at certain times, for example at scheduled intervals or when the database is switched off in a controlled manner. However, any changes since the most recent snapshot can still be lost with this procedure.
  • In additional log files are done recently changes to the database also resigned. The last valid state of the database can be automatically restored from the most recent snapshot and the log of the changes made in the meantime.
  • Use of non-volatile RAM memory , usually implemented as a combination of a conventional volatile RAM memory with an energy store, guarantees that the data is retained even when the system is restarted .
  • Highly available in-memory databases ensure durability through replication and, in the event of failure, switch ( failover ) to a conventional database.

Some in-memory databases can make parts of the database more or less persistent, if desired. You can save yourself the hassle of backing up data that is easy to regenerate or that is useless after a system crash anyway.

Hybrid in-memory databases

Hybrid in-memory databases are database systems that can store data both in main memory and on hard drives. These make it possible to achieve the appropriate balance between performance, costs, durability and form factor during operation.

Products

There are a number of commercial and open source implementations of in-memory databases. These include (in alphabetical order):

  • Apache Derby - can be configured as a pure in-memory database
  • Altibase - Hybrid DBMS
  • Berkeley DB - can be configured as a pure in-memory database
  • Exasol
  • eXtremeDB - in-memory database with options for high availability, cluster and SQL.
  • H2 - Java database, new project from the HSQLDB initiator, can be configured as a pure in-memory database
  • HSQLDB - can be configured as a pure in-memory database
  • IBM Informix Warehouse Accelerator
  • IBM solidDB - Relational In-Memory DBMS
  • IBM Cognos TM1 - an OLAP database, one of the first products in this field, launched in 1984
  • InfoZoom
  • JetstreamDB - Java Object-Graph storage engine and in-memory database
  • LucaNet - special software for business intelligence in accounting
  • Microsoft SQL Server 2014 ( Hekaton )
  • MySQL - comes with a cluster server for a distributed in-memory database
  • NexusDB is a relational in-memory database that is often used in the Embacadero Delphi environment
  • NF1DB - Java in-memory database
  • Oracle Times Ten
  • Oracle In-Memory Option of the Oracle Enterprise Edition
  • Raima - In-memory database with options for high availability and SQL.
  • Redis - a key-value system
  • SAP HANA - main memory database of the HANA platform
  • SQLite - can share main memory and hard drives
  • Tarantool - In Memory Data Grid
  • TIBCO ActiveSpaces - In Memory Grid Database
  • RxDB - Reactive JavaScript database

criticism

The term “in-memory database” is not very clear-cut. Conventional databases also usually use the main memory in order to avoid slow I / O accesses like on a hard disk. Depending on the configuration of the system, the entire database can also be kept in the main memory. Furthermore, the data or index structure is usually more important for the speed of a database system than the access speed of the storage medium. Only the optimization of these data structures on the main memory without structures for the I / O access represents a difference to conventional databases.

High speeds in "in-memory databases" are partly achieved by restricting the persistence and consistency capabilities . This is perfectly legitimate for databases that are primarily intended for read access, but problematic for other applications. To compensate for these problems, some products such as Redis and MySQL are also often combined and "in-memory databases" then serve the purpose of a cache .

See also

  • Grid computing - possibility of distributing in-memory databases
  • NoSQL - Another alternative to database management systems

literature

  • Jack Belzer: Very Large Data Base Systems to Zero-Memory and Markov Information Source . In: Albert G. Holzman (Ed.): Encyclopedia of Computer Science and Technology . tape 14 . Marcel Dekker Inc, 1980, ISBN 978-0-8247-2214-2 (English).
  • Hasso Plattner, Alexander Zeier: In-Memory Data Management: An Inflection Point for Enterprise Applications . 1st edition. Springer, 2011, ISBN 978-3-642-19362-0 (English).

Web links

Individual evidence

  1. Bernhard Cole: Hybrid embedded database merges on-disk and in-memory data management. Embedded.com, May 2, 2007, accessed July 6, 2010 .
  2. Steve Graves: Hybrid Data Management Gets Traction in Set-Top Boxes. (No longer available online.) Embedded.com, July 28, 2008, archived from the original on May 23, 2016 ; Retrieved July 6, 2010 (English). Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice. @1@ 2Template: Webachiv / IABot / www.embedded.com
  3. ^ IBM Informix Warehouse Accelerator. (No longer available online.) IBM.com, archived from the original on Aug. 8, 2011 ; Retrieved June 30, 2012 . Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice. @1@ 2Template: Webachiv / IABot / www-01.ibm.com
  4. IBM solidDB divestiture. IBM.com, accessed August 16, 2014 .
  5. DB-Engines Ranking of Key-Value Stores
  6. RxDB on Github
  7. ^ Craig S. Mullins: How to determine if an in-memory DBMS is right for your company. searchdatamanagement.techtarget.com, April 2015, accessed on March 18, 2019 .
  8. Bryana Knight: Moving persistent data out of Redis. github.blog, January 10, 2017, accessed on March 18, 2019 .