DBDB.io The Encyclopedia of Database Systems · Est. 2017
Database of Databases

Database Entry

HyPer


The HyPer DBMS is an in-memory database which aims to achieve high performance for both OLTP and OLAP workload; it creates a consistent snapshot of the transactional data by forking the OLTP process, so that the OLAP queries could operate on the consistent virtual memory snapshot. Besides, the HyPer DB group proposed a serializable Multi-Version Concurrency Control (MVCC) model which could provide full serializability isolation. Furthermore, they designed the Adaptive Radix Tree (ART) which is a high speed index for main-memory-based database systems. [01][03]

Country of Origin
DE
Start Year
2010 [18][19]
Acquired By
Project Type
Academic
Written in
C++
Supported Languages
C++
Compatible With
PostgreSQL
Operating System
Linux
License
Proprietary

HyPer uses Just-In-Time (JIT) compilation to generate LLVM codes for the incoming queries, which boosts the performance of the database and minimizes the memory traffic.

Database Entry

HyPer


The HyPer DBMS is an in-memory database which aims to achieve high performance for both OLTP and OLAP workload; it creates a consistent snapshot of the transactional data by forking the OLTP process, so that the OLAP queries could operate on the consistent virtual memory snapshot. Besides, the HyPer DB group proposed a serializable Multi-Version Concurrency Control (MVCC) model which could provide full serializability isolation. Furthermore, they designed the Adaptive Radix Tree (ART) which is a high speed index for main-memory-based database systems.

HyPer uses Just-In-Time (JIT) compilation to generate LLVM codes for the incoming queries, which boosts the performance of the database and minimizes the memory traffic.[01][03]

History[04]


HyPer is a DBMS project from the Technical University of Munich (TUM) database group. In the beginning, their objective was to build a hybrid in-memory database; during the process of developing HyPer, they published lots of paper about different parts of the system. HyPer is not open source, but it provides a web interface to execute queries on the system. HyPer is still in active development and the next big step of the HyPer group is to extend the functionality of HyPer to "exploratory workflows that are deeply integrated into the database kernel".

Checkpoints[05]


HyPer creates consistent backups and checkpoints by taking efficient snapshots.

Concurrency Control[06][07]


HyPer used MVCC scheme to handle both OLTP and OLAP queries.

Data Model[08][07]


HyPer is not a non-relational database (a.k.a NoSQL database) like MongoDB which is document-oriented database or HBase which uses column family; instead, HyPer is a relational database; however, the relations are not always maintained as arrays of entire records; the table layout in HyPer would change according to the workload, so HyPer is also the so-called New-SOL database.

Foreign Keys[06]


No documentations from HyPer specifically state that HyPer supports foreign key constrains, but in their fast serializable MVCC paper, they mentioned a senario where an transacion deletes a primary key and another concurrent transacion inserts a foreign key which refers to that primary key.

Indexes[09][10]


The adaptive radix tree (ART) index is the default indexing structure in HyPer. Two important features of ART are adaptive node structure and path compression.

Isolation Levels[05][06]


HyPer supports a novel serializability validation mechanism which is adapted from precision locking. Instead of tracking dependencies like the Serializable Snapshot Isolation (SSI) implemented in PostgreSQL, HyPer would "read predicates and validate the predicates against the undo log entries".

Joins[11][12]


It's positive that HyPer supports sort-merge joins; as for the hash join, they implemented a NUMA-aware hash join algorithm, but they didn't mentioned whether they have integrated hash join into HyPer or not.

Logging[05]


HyPer uses physical logging to support data durability.

Query Compilation[13][14]


HyPer uses Just-In-Time (JIT) code compilation to compile transacions and queries into efficient LLVM assembly code.

Query Execution[13]


Query Interface[15][16]


HyPer uses SQL or a PL/SQL-like scripting language to execute queries

Storage Architecture[07]


As described in the HyPer homepage, "HyPer is a main-memory-based relational DBMS for mixed OLTP and OLAP workloads."

Storage Model[08]


In HyPer, the storage layout would change according to the access patterns; for OLTP workload, it uses row store approach by organizing relations as arrays of entire records; as for the OLAP workload, it uses column store approach by partitioning relations into vactors of attribute values.

Stored Procedures[05]


The stored procedures in HyPer are written in a custom, iterator-free language called HyPerScript.

System Architecture[17]


ScyPer (Scaled-out HyPer) is a version of HyPer, which horizontally scales out on shared-nothing commodity hardware

Views[05]


HyPer supports normal views where a query would define a virtual table.

Citations

20 sources
  1. HyPer: Hybrid OLTP&OLAP High-Performance Database System hyper-db.de
  2. Database Architects blogspot.com
  3. https://hyper-db.de/nedb2014_abstract.pdf hyper-db.de Dead — Check Archive
  4. Database Architects blogspot.com Dead — Check Archive
  5. Concurrency in Main-Memory Database Systems tum.de
  6. https://db.in.tum.de/~muehlbau/papers/mvcc.pdf tum.de
  7. HyPer: Hybrid OLTP&OLAP High-Performance Database System hyper-db.de
  8. CONFERENCE: HyPer: A Hybrid OLTP&OLAP Main Memory Database System Based on Virtual Memory Snapshots doi.org Dead — Check Archive
  9. https://db.in.tum.de/~leis/papers/artsync.pdf tum.de
  10. http://wwwbayer.informatik.tu-muenchen.de/people/sites/roediger/papers/kemper2013hyper.pdf tu-muenchen.de Dead — Check Archive
  11. NimbusSanL-Regu cmu.edu
  12. http://imdm.ws/2013/papers/Lang.pdf imdm.ws Dead — Check Archive
  13. https://15721.courses.cs.cmu.edu/spring2017/papers/17-execution/p743-leis.pdf cmu.edu
  14. HyPer: Hybrid OLTP&OLAP High-Performance Database System hyper-db.de
  15. HyPer: Hybrid OLTP&OLAP High-Performance Database System hyper-db.de
  16. HyPer WebInterface hyper-db.de
  17. https://db.in.tum.de/people/sites/roediger/papers/muehlbauer2012scyper.pdf tum.de
  18. untitled hyper-db.de
  19. HyPer: Hybrid OLTP&OLAP High-Performance Database System hyper-db.de
  20. Tableau - Salesforce salesforce.com
Revision #8