These are three closely-related draft entries for the DBMS2 analytic glossary. Please comment with any ideas you have for their improvement!
1. We coined the term memory-centric data management to comprise several kinds of technology that manage data in RAM (Random Access Memory), including:
- In-memory DBMS (DataBase Management Systems).
- Hybrid memory-centric DBMS.
- Other kinds of in-memory data stores, such as:
- Caching layers.
- In-memory data stores that are tightly tied to specific analytic tools, for example the in-memory data management part of QlikView.
- Complex event/stream processing.
- Many examples of memory-centric data management (April, 2012)
2. An in-memory DBMS is a DBMS designed under the assumption that substantially all database operations will be performed in RAM (Random Access Memory). Thus, in-memory DBMS form a subcategory of memory-centric data management systems.
Ways in which in-memory DBMS are commonly different from those that query and update persistent storage include:
- Data access processes which include a larger number of individually cheaper steps. In-memory database access is orders of magnitude cheaper than disk access, so it’s not as important to minimize the number of accesses.
- Reduced locking. At RAM speeds, the cost of database locks can be significant, so in-memory DBMS are designed to minimize their use.
If what otherwise appears to be an in-memory DBMS routinely queries data from disk, then we refer to it as being hybrid memory-centric. However, even true in-memory DBMS may copy data into persistent storage, so as to keep it safe.
Examples of in-memory DBMS include:
- SAP HANA.
- Oracle TimesTen.
- IBM TM1.
- Several NewSQL systems, such as VoltDB.
- Several NoSQL systems, such as Citrusleaf.
3. Hybrid memory-centric DBMS is our term for a DBMS that has two modes:
- Querying and updating (or loading into) persistent storage.
It is difficult to make the boundaries of this category precise, because:
- Almost any DBMS runs faster when the entire database is kept in RAM (Random Access Memory).
- For some DBMS, especially in high-volume short-request processing use cases, it is a best practice to keep one’s entire data working set in RAM.
That said, we prefer to reserve the term “hybrid memory-centric” for DBMS designed according to the same principles as in-memory DBMS, for example IBM solidDB.
Hybrid memory-centric DBMS form a subcategory of memory-centric data management systems.