In-memory database

An in-memory database ( IMDB ) or a main memory database is a database management system that uses the memory of a computer for data storage. This is different from traditional database management systems that use this disk drives.

The memory of a computer offers much higher access speeds than hard disk drives and the algorithms for the access easier. Therefore, in-memory databases much faster and their access times are more predictable than those accessing it from on disk database management systems. However, memory is much more expensive than disk storage, the single host usually has therefore much less of it. If a database requires high storage capacity, however, can be overcome by grid computing this bound for in-memory databases.

Applications often use in-memory databases, when it reaches them on high access speeds or data transfer rates. Example is telecommunications networks or emergency call systems.

Non- persistence

Since in-memory databases store their data in volatile memory that loses in system crashes, they do not meet the requirement of readily persistent storage (persistence ) successfully completed transactions.

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

  • Snapshot files store the state of the database at particular times, such as at scheduled intervals or in a controlled shutdown of the database. All changes since the most recent snapshot can be lost in this process, however, remains.
  • In additional log files recent changes to the database are also laid down. The most recent snapshot and the log of the changes made ​​since the last valid state of the database can be restored automatically.
  • Use of non-volatile RAM, usually implemented as a combination of a conventional volatile RAM with an energy storage device, guarantees the preservation of the data even when the system is restarted.
  • Fault-tolerant in-memory databases provide durability through replication and exchange in case of failure ( failover ) to a conventional database secure.

Some in-memory databases can make persistent in greater or lesser degree as desired parts of the database. One can thus save the cost of securing data that recreate easily or after a system crash are useless anyway.

Hybrid in-memory databases

Hybrid in-memory databases are database systems that can store data both in memory and on disks. These make it possible to achieve the proper balance between performance, cost, durability and form factor in operation.

Products

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

  • Apache Derby - can be configured as a pure in-memory database
  • Berkeley DB - can be configured as a pure in-memory database
  • EXASolution - in-memory database system centered EXASOL for real-time data warehousing ( technology leader by TPC- H benchmark against Oracle, in all categories )
  • EXtremeDB - in-memory database with options for high availability, clustering and SQL.
  • H2 - Java database HSQLDB new project from the 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 Cognos TM1 - OLAP database, one of the first products in this area, since 1984 on the market
  • Info Zoom
  • LucaNet - Special software for business intelligence in accounting
  • Microsoft SQL Server 2014 ( Hekaton, in development)
  • MySQL - comes with a clustered server for a distributed in-memory database
  • Oracle TimesTen
  • Redis - the most popular key-value store
  • SAP HANA - the main memory database HANA appliance
  • SQLite - can use main memory and hard disk together
  • TIBCO Active Spaces - In Memory Grid Database
378458
de