After reviewing the criteria to consider when evaluating an In-Memory DBMS , the editorial reviews the key offerings to help you determine which one is best for your business.
In-memory database management systems ( DBMS ) are becoming increasingly popular and the choice is vast.
The main feature of an In-Memory DBMS is its ability to store entire database structures in memory. The presence of data in memory prevents long disk I / O operations to be processed, resulting in improved performance and reduced response times.
There are many kinds of In-Memory DBMS : from NoSQL relational, from old to newer technologies, from In-Memory functionality added to existing relational systems (RDBMS) to completely new In-Memory offerings, and completely new systems. -Memory to hybrid In-Memory and disk storage combinations.
The different offers of SGBD In-Memory
One of the fastest growing relational DBMSs on the market is SAP HANA , an in-memory data management application platform that combines transactional and analytic processing into a single system with a single copy of the data.
Originally, the name HANA was the acronym for High-performance ANalytic Appliance . SAP HANA runs on SUSE Linux and Red Hat Enterprise Linux . SAP markets HANA as a database appliance, equipped with IBM or Hewlett-Packard hardware.
It is also marketed as a cloud offering by vendors such as Amazon and Microsoft Azure.
SAP HANA comes in four editions:
Basic Edition – which provides the main database services;
Platform Edition – which additionally offers predictive engines and graphical representation;
Enterprise Edition – which includes additional data provisioning features;
Runtime edition – intended for use with SAP applications.
Of course, SAP is targeting its customers already equipped with SAP applications to adopt HANA
instead of the existing relational DBMS (usually Oracle, DB2 or SQL Server).
HANA allows SAP applications to run with a single database in memory, used for both transactional and analytic processing. However, SAP does not offer HANA only for SAP applications, but as a system to completely replace traditional relational databases.
SAP HANA supports real-time analytics on a large scale and on a wide variety of data. It combines database, data processing and application server functionality, all running in memory, on a single dataset and platform.
SAP HANA helps you reduce data clutter and simplify processing and operations. It supports pooling, gives the possibility to store the active data (“warm”, or “warm”) on disk and offers a choice of models and deployment partners.
You can deploy SAP HANA onsite, in the cloud, or both in a hybrid configuration.
If you want to create and support business enterprise applications that require fast data access, SAP HANA is a good, up-to-date relational DBMS. It is worthwhile to be interested in ERP implementations , as well as for new home applications.
There is another relational In-Memory DBMS called TimesTen , which was acquired by Oracle in June 2005.
Oracle TimesTen In-Memory Database is a complete RDBMS that runs in the application layer, storing all data in main memory. It supports the complete semantics of SQL transactions and includes OCI, Pro * C and PL / SQL features for compatibility with Oracle Database.
The Oracle TimesTen In-Memory Database is integrated with the Oracle Exalytics In-Memory Machine , enabling Oracle Business Intelligence Standard Edition users to quickly execute complex analytic queries.
In addition to the standalone version of TimesTen, In-Memory features (discussed later in this article) are available in Oracle Database 12c.
VoltDB is another In-Memory relational DBMS developed by a team led by Michael Stonebraker, one of the pioneers of relational systems and one of the founders of Ingres.
VoltDB is an open source system that offers a community version and a commercial license. The latter offers high availability and disaster recovery features, as well as technical support.
Data is kept in memory for calculations and analysis, but all transactions are stored permanently on disk. VoltDB is compatible with the ACID concept (atomicity, coherence, isolation, durability) and provides fault-tolerant replication by replicating partitions across multiple servers; thus, in the event of a server failure, the data is always present in another partition.
The developers of VoltDB applications use Java, PHP or C # in SQL, and the stored procedures in Java are also supported. Data transfers to VoltDB are simple, thanks to the import tools and plug-and-play connectors provided to facilitate data ingestion and export.
But DBMS In-Memory are not all relational. Thus, Aerospike is an open source system for managing NoSQL and In-Memory databases . This key-value data store enables developers to create personalized user experiences and data-driven applications that grow to handle millions of transactions per second with response times of less than one millisecond.
Aerospike runs on Linux and supports a large number of different Linux distributions, including precompiled binaries for Red Hat, Ubuntu, CentOS and Debian.
Aerospike is available in open source, but a commercial license is also available. This commercial edition also offers features such as replication between datacenters (for the synchronization of several clusters), a fast restart and enhanced security.
One of the most important features of Aerospike is that it simplifies the work of programmers to create and run new applications on a large scale. Indeed, the prerequisite administrative tasks are reduced to a minimum.
Other uses of Aerospike are data caching (for example, storing session information or user profiles) and customizing the user experience on web portals and in mobile applications.
Support for In-Memory features by relational systems
You do not need to install a state-of-the-art DBMS to benefit from In-Memory database processing. The three leading relational system vendors, Oracle, IBM, and Microsoft, all offer In-Memory functionality in the latest versions of their DBMS.
Thus, Oracle Database 12c includes a new database technology optimized memory that speeds up the analytical processing. Oracle Database In-Memory is a column-based In-Memory data format designed to process SQL code quickly without loss of functionality.
Oracle Database In-Memory easily deploys with any Oracle Database-compatible application without requiring any changes to the application. This feature is fully integrated with Oracle’s scale-up, scale-out, storage tiering, availability, and security technologies, combining the benefits of relational systems with the speed of in-memory DBMS.
IBM DB2 10.5 with BLU Acceleration also combines a series of innovations developed by IBM’s research and development labs, including In-Memory features. By accelerating the processing of operational and historical data requests, BLU Acceleration helps improve the analytical collection process.
IBM DB2 with BLU Acceleration offers more than just In-Memory features, including relational columnar storage functionality that accelerates analytic processing and a workable compression feature that allows up to ten times less storage space .
This product also implements the SIMD model (Single Instruction Multiple Data) and a technology called “data-skipping” which improves query performance.
Microsoft SQL Server 2014 also offers In-Memory capabilities , providing a memory-optimized database engine integrated with the core SQL Server engine.
For OLTP In-Memory processing, the tables must be defined as being optimized in memory. These tables are fully compliant with the ACID concept and the system accesses them using Transact-SQL in the same way as for disk tables.
Queries and transactions can thus reference and update data in both memory-optimized tables and disk-based tables. SQL Server’s OLTP In-Memory Engine is designed to support multiple simultaneous accesses.
All relational DBMS vendors claim significant performance gains through the use of their systems’ In-Memory capabilities, ranging from a few percentage points to a multiplication of 20 and up. Of course, the performances obtained vary according to the implementation, the use and other criteria.
In addition to In-Memory DBMS, there are NewSQL database systems that support the latest architectures and combine in-memory functionality, cloud-based database management, and / or highly scalable distribution.
If the definition of a NewSQL DBMS does not answer to absolute rules, one can put in this category NuoDB .
NuoDB is a web-distributed DBMS that offers full SQL implementation and real ACID transactions. It is designed for today’s datacenters, but can also be used as a scale-out database in the cloud.
The DBMS NewSQL are designed without any management operations and features built to older DBMS developed in the 1970s The advantage of these new RDBMS developed in the 21 th century is that they do not have to bother with ‘inherited code and architecture.
Make the right choice
In-memory databases are increasingly being adopted to improve the efficiency of analytical processing.
In many cases, the same In-Memory DBMSs that speed up analytic queries can also improve the speed of operational transactions.
But it is clear that a large number of variables and options come into play when choosing an In-Memory DBMS. For applications that demand high performance, in-memory DBMS is the best choice because it offers fast response times.
However, do not forget to calculate the additional costs, not just in terms of hardware, but for example the costs of supporting a new DBMS and all associated costs.