Introduction
CoGaDB is a prototype of a column-oriented GPU-accelerated database management system developed at the University of Magdeburg. Its purpose is to investigate advanced coprocessing techniques for effective GPUs utilization during database query processing. It utilizes our hybrid query processing engine (HyPE) for the physical optimization process.
CoGaDB's main purpose is to investigate a GPU-aware database architecture to achieve optimal performance of DBMS on hybrid CPU/GPU platforms. We are currently working on a architecture proposal and try to benefit from past experiences of hybrid CPU/GPU DBMS. Therefore, CoGaDB provides an extensible architecture to enable researchers an easy integration of their GPU-accelerated operators, coprocessing techniques and query optimization heuristics. Note that CoGaDB assumes that the complete database can be kept in main memory, because GPU-acceleration is not beneficial for workloads where disc I/O is the dominating factor.
Features
Currently, CoGaDB implements the following features:
- Written mainly in C++ and Cuda C
- Column-oriented InMemory Database Management System
- SQL Interface
- CPU and GPU operators for selection, sort, join, and simple aggregations using optimized parallel algorithms from the libraries Intel® TBB (CPU) and Thrust (GPU) and CPU only operators for projections and mangement operators
- Uses HyPE, our hybrid query processing engine, for physical optimization and query processing
- Implements a novel coprocessing technique, which reduces the copy overhead between processing devices, the major bottleneck for GPU coprocessing in DBMS
Work in Progress
- Logical Optimization
- Implement pure column-oriented query processing with early and late materialization
- Implement compression techniques for columns
Supported Platforms
- Runs (currently) only on Linux: Ubuntu 12.04 (32 and 64 Bit)
Detailed Documentation
Here a list for more detailed documentation:
Project
Project Members:
- Sebastian Breß (University of Magdeburg)
- Robin Haberkorn (University of Magdeburg)
- René Hoyer (University of Magdeburg)
- Steven Ladewig (University of Magdeburg)
- Tobias Lauer (Jedox AG)
- Manh Lan Nguyen (University of Magdeburg)
- Gunter Saake (University of Magdeburg)
- Norbert Siegmund (University of Magdeburg)
- Patrick Sulkowski (University of Magdeburg)
Contributors:
- Darius Brückers (contributed Compression Technique: Run Length Encoding)
- Sebastian Krieter (contributed Compression Technique: Delta Coding)
- Steffen Schulze (contributed Compression Technique: Bit Vector Encoding)
Project Partners:
- Ladjel Bellatreche (LIAS/ISEA-ENSMA, Futuroscope, France)
Former Project Members:
- Ingolf Geist (University of Magdeburg)
Publications
- Sebastian Breß.
Ein selbstlernendes Entscheidungsmodell für die Verteilung von
Datenbankoperationen auf CPU/GPU-Systemen.
Master thesis, University of Magdeburg, Germany, March 2012.
In German.
- Sebastian Breß, Siba Mohammad, and
Eike Schallehn.
Self-Tuning Distribution of DB-Operations on
Hybrid CPU/GPU Platforms.
In Proceedings of the 24st Workshop Grundlagen von Datenbanken
(GvD), pages 89–94. CEUR-WS, 2012.
- Sebastian Breß, Eike Schallehn, and
Ingolf Geist.
Towards
Optimization of Hybrid CPU/GPU Query Plans in Database Systems.
In Second ADBIS workshop on GPUs In Databases (GID), pages 27–35.
Springer, 2012.
- Sebastian Breß, Felix Beier, Hannes
Rauhe, Eike Schallehn, Kai-Uwe Sattler, and Gunter Saake.
Automatic Selection of Processing Units for Coprocessing in Databases.
In 16th East-European Conference on Advances in Databases and Information
Systems (ADBIS), pages 57–70. Springer, 2012.
- Sebastian Breß, Ingolf Geist, Eike
Schallehn, Maik Mory, and Gunter Saake.
A Framework for Cost based Optimization of Hybrid CPU/GPU Query Plans in
Database Systems.
Control and Cybernetics, 41(4):715–742,
2012.
- Sebastian Breß, Stefan Kiltz, and
Martin Schäler.
Forensics on GPU Coprocessing in Databases – Research
Challenges, First Experiments, and Countermeasures.
In Workshop on Databases in Biometrics, Forensics and Security
Applications (DBforBFS), BTW-Workshops, pages 115–130.
Köllen-Verlag, 2013.
- Sebastian Breß, Felix Beier, Hannes
Rauhe, Kai-Uwe Sattler, Eike Schallehn, and Gunter Saake.
Efficient
Co-Processor Utilization in Database Query Processing.
Information Systems, 38(8):1084–1096, 2013.
http://dx.doi.org/10.1016/j.is.2013.05.004.
- Sebastian Breß.
Why it is
Time for a HyPE: A Hybrid Query Processing Engine for Efficient GPU
Coprocessing in DBMS.
In The VLDB PhD workshop. VLDB Endowment,
2013.
- Sebastian Breß, Norbert Siegmund,
Ladjel Bellatreche, and Gunter Saake.
An
Operator-Stream-based Scheduling Engine for Effective GPU Coprocessing.
In 17th East-European Conference on Advances in Databases and Information
Systems (ADBIS), pages 288–301. Springer,
2013.
- Sebastian Breß, Max Heimel, Norbert
Siegmund, Ladjel Bellatreche, and Gunter Saake.
Exploring the Design Space of a GPU-aware Database Architecture.
In ADBIS workshop on GPUs In Databases (GID), pages 225–234.
Springer, 2013.