Hyrise is an experimental in-memory storage engine designed and developed at the Enterprise Systems research group at the Hasso Plattner Institute in Potsdam, Germany. Hyrise has undergone a major redesign in 2017 and has recently been released a new version with a completely rewritten codebase. While most of the core concepts remain the same, it has now a cleaner and more stable codebase that should be easier to understand for students and researchers. One of the ideas behind Hyrise is to provide a flexible platform for research in the area of in-memory data management, allowing to conduct experiments around new data management concepts.
- Hyrise is a strictly relational database, aiming at full SQL support . We support stored procedures, which are stored as named, static entries in our otherwise automatic query cache. Views are stored virtually as logical query plans that get embedded at planning time before the entire query gets optimized.
- In addition to our console, which supports helpful debugging features like inline query plan visualization, we also have a server that implements the PostgreSQL wire protocol.
- All data is stored in-memory. Currently, only columnar storage is supported, but row-based or hybrid storage is conceptually possible. Tables are horizontally partitioned into chunks, which can be compressed and migrated across NUMA nodes.
- We use MVCC to guarantee atomicity and isolation. Logging and Checkpointing as means for durability are currently under development. We do not yet support any primary key or other consistency constraints that have to be enforced.
- Data can optionally be indexed for easier access to point data. For non-indexed data, we make use of different types of filters to reduce the number of chunks that need to be accessed. Finding the sweet spot between different types of indexes and filters is part of our research.
- Our JIT compiler uses code specialization and operator fusion to compile multi-operator executables that can run certain queries faster than our traditional operator model. We are working on bringing support for more operators into the JIT subsystem and on automatically identifying queries that profit from it.
We are now at a point where most of the core features are implemented. As a next step, we are focusing on performance, both single- and multi-threaded. Currently, our performance numbers are not yet competitive, but we hope to be there soon.
Please have a look at the sidebar to navigate through our wiki.
Hyrise is developed by the research group of Prof. Plattner at the Hasso Plattner Institute in Potsdam, Germany. It is a joint effort by our PhD students, student assistants, and graduate students who contribute as part of a seminar, a master's project, or their master's theses.
While virtually all development is done at HPI, we encourage external researchers to use Hyrise and to adapt it to their needs. We will gladly help with such efforts.