In-Memory Database Software System
An In-Memory Database Software System is a database management system that is an In-Memory Program (primarily relies on main memory for computer data storage).
- Context:
- It can (often) be applied to an In-Memory Database Task, such as distributed caching.
- It can avoid fetching data of a disk.
- It can avoid having to import whole blocks from disk and decoding them.
- It can range from being a Row-Oriented In-Memory DBMS to being a Column-Oriented In-Memory DBMS.
- It can support an In-Memory Dataset.
- …
- Example(s):
- Counter-Example(s):
- See: Database Management System, Disk Storage, Seek Time, Data Analytics, Two-Phase Commit Protocol.
References
2018
- (Wikipedia, 2018) ⇒ https://en.wikipedia.org/wiki/In-memory_database Retrieved:2018-8-16.
- An in-memory database (IMDB, also main memory database system or MMDB or memory resident database) is a database management system that primarily relies on main memory for computer data storage. It is contrasted with database management systems that employ a disk storage mechanism. In-memory databases are faster than disk-optimized databases because disk access is slower than memory access, the internal optimization algorithms are simpler and execute fewer CPU instructions. Accessing data in memory eliminates seek time when querying the data, which provides faster and more predictable performance than disk.[1] [2]
Applications where response time is critical, such as those running telecommunications network equipment and mobile advertising networks, often use main-memory databases. IMDBs have gained a lot of traction, especially in the data analytics space, starting in the mid-2000s – mainly due to multi-core processors that can address large memory and due to less expensive RAM.[3] [4] A potential technical hurdle with in-memory data storage is the volatility of RAM. Specifically in the event of a power loss, intentional or otherwise, data stored in volatile RAM is lost. With the introduction of non-volatile random access memory technology,in-memory databases will be able to run at full speed and maintain data in the event of power failure. [5] [6] [7]
- An in-memory database (IMDB, also main memory database system or MMDB or memory resident database) is a database management system that primarily relies on main memory for computer data storage. It is contrasted with database management systems that employ a disk storage mechanism. In-memory databases are faster than disk-optimized databases because disk access is slower than memory access, the internal optimization algorithms are simpler and execute fewer CPU instructions. Accessing data in memory eliminates seek time when querying the data, which provides faster and more predictable performance than disk.[1] [2]
2018
- (Wikipedia, 2018) ⇒ https://en.wikipedia.org/wiki/List_of_in-memory_databases Retrieved:2018-8-16.
Name | Developer | Availability | License | Description/Notes |
---|---|---|---|---|
ActiveSpaces | TIBCO Software | Proprietary with developer download | For Java/.Net./C, distributed, hybrid, event enabled, NewSQL | |
Aerospike | Aerospike Company | 2012 | Open Source (AGPL) | Flash-optimized in-memory open source NoSQL database. |
AirConcurrentMap | Boiler Bay Inc. | 2016 | Proprietary | Java extended standard ConcurrentNavigableMap. NoSQL, ordered key/value in-memory store with internal parallel scan, multi-core concurrency. boilerbay.com |
ALTIBASE HDB | Altibase Corporation | Open source(GNU-AGPLv3, GNU-LGPLv3(for client-libraries)) | "Hybrid DBMS" that combines an in-memory database with a conventional disk-resident database in a single unified engine. Supports full ACID properties, standard connectivity interfaces such as JDBC and ODBC [fully supported] as well as interoperability. | |
ALTIBASE XDB | Altibase Corporation | Open source(GNU-AGPLv3, GNU-LGPLv3(for client-libraries)) | General purpose database that has high data processing speeds in main-memory alone. It comes with high-availability, replication and scalability features; three interfaces (including Direct Access Mode and Direct Access API Mode) as well as conventional client/server protocols such as TCP/IP and IPC for more complex database operations. Supports full ACID properties, standard connectivity interfaces such as JDBC and ODBC [fully supported] as well as interoperability. | |
Ancelus | Time Compression Strategies | Proprietary | Ancelus is an ACID compliant database with extreme performance characteristics. It replaces pre-defined storage structures with an algorithmic process that delivers constant performance at any size or complexity.[8] | |
Apache Geode | Apache Software Foundation, Pivotal Software | 2015 | Open source (Apache License) | Open source backend to Pivotal Software's Gemfire database, is an Apache Software Foundation top-level project. Described as an "open source distributed, in-memory database for scale-out applications". |
Apache Ignite | Apache Software Foundation, GridGain Systems | 2014 | Open Source (Apache License Version 2.0) | Apache Ignite is an in-memory computing platform that is durable, strongly consistent, and highly available with powerful SQL, key-value and processing APIs.
With full SQL support, one of the main use cases for Apache Ignite is the in-memory database which scales horizontally and provides ACID transactions. |
ArangoDB | ArangoDB GmbH | 2011 | Open Source (Apache License
Version 2.0) |
ArangoDB is a transactional native multi-model database supporting three major NoSQL data models (graph, JSON document, key-value) with one query language. Written in C++ and optimized for in-memory computing. In addition ArangoDB integrated RocksDB for persistent storage. ArangoDB supports Java, JavaScript, Python, PHP, NodeJS, C++ and Elixir. For resilient cluster behavior, ArangoDB offers a Raft-based cluster management. |
BigMemory | Terracotta, Inc. (Software AG) | Proprietary (free editions) | ||
dashDB | IBM | 2014 | Proprietary | IBM dashDB is an in-memory data warehouse in the cloud on IBM Bluemix as a managed service. It includes parallel vector processing, actionable compression, and data-skipping technologies, collectively called IBM BLU Acceleration by IBM. It also includes in-databases analytics originally from the Netezza analytics appliance (Pure Data for Analytics) for R, spatial analytics etc. Released in June 2014. |
Datablitz (formerly Dali) | Bell Labs (Alcatel-Lucent) | Proprietary | Dali prototype was a research project at Bell Labs. It was commercialized and used by Lucent as database for in premier wireline and wireless products. | |
DB2 BLU | IBM | 2013 | Proprietary | IBM DB2 for Linux, UNIX and Windows supports dynamic in-memory (in-memory columnar processing) parallel vector processing, actionable compression, and data-skipping technologies, collectively called IBM BLU Acceleration by IBM. Released in June 2013. |
DB2 for i | IBM | 1992 | Proprietary | IBM DB2 for i (DB2/400) in conjunction with the IBM i operating system supports simultaneous in-memory and on-disk tables and indexes. |
Ehcache | Terracotta, Inc. (Software AG) | Open source (Apache License) | For Java, distributed | |
Exasol | Exasol | 2008 | Proprietary | Relational (SQL over ODBC, JDBC, or ADO.NET), multi-dimensional (MDX over ODBO or XMLA); Exasol leads the well-respected international TPC-H benchmark,[9] since 2008, in the data volume-based categories 100GB, 300GB, 1TB, 3TB, and 10TB; Exasol architecture: shared-nothing, column-store, in-memory database |
eXtremeDB | McObject | 2001 | Proprietary | Cross-platform, including Linux, Windows, RTOS and server platforms. Interfaces include type-safe, native C/C++; native Java & .NET; SQL/ODBC/JDBC. Specialized editions for (for example) clustering, high availability, 64-bit support, and hybrid (in-memory and persistent) storage. eXtremeDB Financial Edition implements columnar data handling, vector-based statistical function library, integrated performance monitoring. |
FuelDB | Wonderfuel Inc. | 2014 | Open Source (MIT License) | Realtime database based on NodeJS |
GemFire | Pivotal Software Inc. | Proprietary | Written in Java, distributed, shared-nothing, NoSQL key-value store for OLTP | |
GemFire XD | Pivotal Software Inc. | Proprietary | Relational, distributed, NewSQL, HDFS-integration | |
GridGain | GridGain Systems | 2009 | Proprietary | GridGain is an in-memory computing platform, built on Apache Ignite, that is durable, strongly consistent, and highly available with powerful SQL, key-value and processing APIs.
With full SQL support, one of the main use cases for GridGain is the in-memory database which scales horizontally and provides ACID transactions. |
H2 (DBMS) | H2 | Open Source (Mozilla Public License or Eclipse Public License) | For Java | |
HSQLDB | HSQL Development Group | Open Source (BSD License) | Relational, for Java[10] | |
Hazelcast | Hazelcast Team | Open Source (Apache License 2.0) | For Java, NoSQL, distributed | |
Hyrise | Hasso Plattner Institut | Open Source (MIT) | A research in-memory database. | |
Informix Warehouse Accelerator | IBM | Proprietary | IWA supports Dynamic In-memory (in-memory columnar processing) Parallel Vector Processing, Actionable Compression, and Data Skipping technologies, collectively called "Blink Technology" by IBM (the same technology underlying IBM BLU Acceleration). The Informix Advanced Enterprise and Advanced Workgroup Editions include IWA. Released: March 2011. | |
InMemory.Net | InMemory.Net | 2014 | Proprietary | Dot Net Native in-memory database with import scripting language, that can query large amounts of data via Dot Net, ODBC or COM. |
InfinityDB | Boiler Bay Inc. | 2002 | Proprietary | Java extended standard ConcurrentNavigableMap NoSQL with caching, durability, transactions, compression. |
Kinetica | Kinetica (formerly GIS Federal) | 2014 | Proprietary | GPU-accelerated, in-memory, distributed database for analytics. Functions like a RDBMS (structured data) for fast analytics on datasets in the hundreds of GBs to 10's of TBs range. Interact with SQL and REST API. Geospatial objects and functions. UDF framework allows for custom code and machine learning workloads to run in-database. Received $50mil Series A funding in June 2017.[11] |
Kognitio Analytical Platform | Kognitio, Limited | 1989 (beta) | Proprietary | Development of an in-memory database, specialized for analytical workloads started at White Cross Systems, Limited in 1988, based on the INMOS Transputer. The first full production release was offered in 1992. White Cross merged in 2005 with Kognitio, Limited in the United Kingdom and as of 2014[update] markets version 8 of the same code-base as the "Kognitio Analytical Platform". |
Levyx Helium | Levyx, Inc. | 2013 | Proprietary | Flash-optimized key-value backend datastore targeting use as a back-end data storage engine. |
LokiJS | TechFort | 2013 | Open Source (MIT) | In-memory database written in JavaScript, compatible with node.js and browser environments. |
MapD | MapD Technologies | 2013 | Open Source (Apache License 2.0) | GPU-accelerated database and visualization platform for real-time analytics. Product consists of the core database plus a BI visualization tool. SQL interface. v3.0 announced in April 2017 with distributed architecture.[12] Became open-source and received $25mil Series A funding in May 2017.[13] |
Memcached | Danga Interactive | Open Source (BSD) | Hashtable with LRU purge | |
MemSQL | MemSQL, Inc. | Proprietary | SQL relational | |
SQLite | SQLite | Open Source (Public domain) | SQL database that supports in-memory storage with the :memory: connection string.[14] | |
Microsoft COM+ IMDB | Microsoft Corporation | Proprietary | Defunct | |
Microsoft SQL Server | Microsoft | 2012 | Proprietary | Hekaton, a new in-memory technology in SQL Server 2014 for OLTP databases, requires native compiled procedures using C language. Rows in tables are versioned by a hash key. Supports only hash indexes. Columnstore indexes had been extended to support OLTP workloads.
SQL Server 2012 also included an in-memory technology called xVelocity column-store indexes targeted for data-warehouse workloads. |
Mnesia | Ericsson | 2014 | Open Source Erlang Licence | Mnesia is a distributed, soft real-time database management system written in the Erlang programming language. It is distributed as part of the Open Telecom Platform. |
MonetDB | CWI | 2004 | Open Source (MonetDB License, based on MPL 2.0 (as of version Jul2015, released on Friday, August 28, 2015). Older versions are based on MPL 1.1) | Column-store RDBMS with an SQL top-level interface and ODBC, JDBC drivers |
Oracle RDBMS | Oracle Corporation | 2014 | Proprietary | RDBMS Oracle 12c contains an option for in-memory technology (additional licenses required). |
Oracle Coherence | Oracle Corporation | Proprietary with developer download | For Java, relational, distributed | |
Oracle Exalytics | Oracle Corporation | Proprietary | Appliance | |
OrigoDB | Devrex Labs | 2008 | Open Source (embedded engine, commercially licensed enterprise features) | 100% ACID transactional engine written in C# for Microsoft NET and Mono. Entities, datastructures and transactions (commands and queries) are written using C# and LINQ. OrigoDB uses Write-ahead logging with optional snapshots for persistence. Enterprise features include master/slave replication. |
Polyhedra | ENEA AB (previously Perihelion Software) | 1993 | Proprietary, with a free-to-use edition (Polyhedra Lite) | Relational (SQL, ODBC, JDBC) in-memory database system originally developed for use in SCADA and embedded systems, but used in a variety of other applications including financial systems. Supports data durability via snapshots and journal logging, and high availability via a hot-standby. First released in 1993; version 8.7 released in March 2013.[15] Polyhedra Lite appeared with a free-to-use license in 2012.[16] |
P*time | Seoul National University, Big Data Institute, Korea and Transact In Memory, Inc. (TIM) | 1997 | Commercial | Initial focus on the telecommunication industry.[17] General availability 2001. The successor product was acquired and integrated by SAP. |
Raima | Raima Database Manager (RDM) | 1982 | Proprietary | Raima Database Manager (RDM) is an In-memory database management system used by application developers. It is a linkable library of functions that becomes a part of the application program. It has multiple interfaces available to C, C++, C#, or Java programmers. RDM supports ODBC, JDBC, SQL and SQL PL in RDM 14.0. RDM 14.0 was released in 2016. |
Redis | Redis Labs | 2009 | Open Source (BSD) | Redis is an open-source software project that implements data structure servers. It is networked, in-memory, and stores keys with optional durability. |
Redisson | Redisson Team | 2014 | Open Source (Apache License 2.0) | Redisson is a Redis based In-Memory Data Grid for Java. It offers distributed objects and services. Provides more convenient and easiest way to work with Redis. Supports Tomcat, Spring, Spring Session, Spring Cache, Hibernate and JCache API (JSR-107). |
rqlite | rqlite | 2014 | Open Source (MIT) | Lightweight, distributed relational database, with a SQLite-based storage engine. rqlite runs the SQLite in-memory engine by default. |
SafePeak | SafePeak Technologies | Proprietary | Automated In-Memory Dynamic Caching for SQL Server OLTP applications and databases. Code-free, Dynamic Caching, Relational | |
SAP HANA | SAP SE | 2012 | Proprietary | SAP HANA, short for 'High Performance Analytic Appliance' is an in-memory, column-oriented, relational database management system written in C, C++ |
Scuba | Proprietary | |||
SharedHashFile | Hardy-Francis Enterprises Inc. | 2014 | Open Source (AGPL) | 10+M TPS per server in-memory open source NoSQL database. |
solidDB | Unicom Global | 1992 | Proprietary | Relational with standard SQL support. ODBC and JDBC interfaces. Includes in-memory and on-disk tables in the same engine. Supports high availability. |
SQL CE | Microsoft Corporation | Free | Compact relational embedded database produced by Microsoft for applications that run on mobile devices and desktops. ADO.NET, OLE DB. No ODBC driver. | |
SQLFire | Pivotal Software Inc. | Proprietary | Relational, distributed, NewSQL | |
Tarantool | Mail.ru Group | 2010 | Open Source (BSD) | In-memory database and application server (data grid) |
TimesTen | now Oracle Corporation | 1997 | Proprietary | Standalone database or in-memory cache for Oracle Database |
TPF (Transaction Processing Facility) | IBM | 1979 | Marketed | Generalized extension of IBM Airlines reservation system. IBM's DB/DC system backed up the in-memory transaction processing computer.[18] |
UnQLite Embedded Database | Symisc Systems | Open Source (BSD, SPL) | UnQLite supports for in-memory databases as well on-disk databases using the same API with pluggable run-time interchangeable storage engines (B+tree, Hash, etc.) | |
Starcounter | Starcounter AB | 2014 | Proprietary | In-memory database engine combined with an application server that melds the Virtual Machine and the Database Management System. |
VoltDB | VoltDB Inc. | Open Source (GPL) / Proprietary | Relational; implements H-Store design | |
Xeround | Xeround Inc. | Proprietary / Not for sale, service only | Cloud database, defunct as of 2014 |
Forrester Research created the first in-memory database platform wave in 2015.[19]
Many DBMS support in-memory-only storage engines,[20] including:
- ↑ Cite error: Invalid
<ref>
tag; no text was provided for refs namedDefinition: in-memory database
- ↑ Cite error: Invalid
<ref>
tag; no text was provided for refs namedThe Rise of In-Memory Databases
- ↑ Cite error: Invalid
<ref>
tag; no text was provided for refs namedFalling RAM Prices Drive In-Memory Database Surge
- ↑ Cite error: Invalid
<ref>
tag; no text was provided for refs namedRise of In-Memory Databases Impacts Wide Range of Jobs
- ↑ Historically, RAM was not used as a persistent data store and therefore data loss in these instances was not an issue.Whole-system Persistence with Non-volatile Memories http://research.microsoft.com/apps/pubs/default.aspx?id=160853
- ↑ The Bleak Future of NAND Flash Memory http://research.microsoft.com/apps/pubs/default.aspx?id=162804
- ↑ AGIGARAM NVDIMM saves data through system failure https://www.embedded.com/electronics-products/electronic-product-reviews/real-time-and-performance/4422291/AGIGARAM-NVDIMM-saves-data-through-system-failure
- ↑ Howard, Philip (May 2014). "InDetail: Ancelus". Bloor Research. http://www.tcsdb.com/images/ancelus/Bloor%20Research%20-%20Ancelus.pdf.
- ↑ TPC-H - Homepage. Tpc.org (2010-04-21). Retrieved on 2013-09-18.
- ↑ "Chapter 1. Running and Using HyperSQL". http://hsqldb.org/doc/2.0/guide/running-chapt.html#rgc_hsqldb_db.
- ↑ "Kinetica Secures Series A Investment of $50 Million - Kinetica GPU Database". 29 June 2017. https://www.kinetica.com/blog/kinetica-secures-series-a-investment/.
- ↑ "Pushing A Trillion Row Database With GPU Acceleration". 26 April 2017. https://www.nextplatform.com/2017/04/26/pushing-trillion-row-database-gpu-acceleration/.
- ↑ "MapD Raises $25M Series B to Drive Adoption of GPU-Powered Analytics". 29 March 2017. https://www.mapd.com/blog/2017/03/29/mapd-raises-25m-series-b-to-drive-adoption-of-gpu-powered-analytics/.
- ↑ "In-Memory Databases". http://www.sqlite.org/inmemorydb.html.
- ↑ Template:Citation
- ↑ Template:Citation
- ↑ Sang Kyun Cha, Ki Hong Kim, Juchang Lee: Database Architecture for Location and Trajectory Management in Telecommunications; Databases in Telecommunications, International Workshop Co-located with VLDB-99, Edinburgh, Scotland, UK, September 6, 1999
- ↑ Siwiec,J.E.: A High-Performance DB/DC System;IBM, G321-5051, 1978
- ↑ "The Forrester Wave™: In-Memory Database Platforms, Q3 2015". http://www.forrester.com/pimages/rws/reprints/document/120222/oid/1-V7OVKQ.
- ↑ "DB-Engines, list of databases with their properties". http://db-engines.com/en/systems.