Column-oriented GPU-accelerated Database Management System
CoGaDB
Documentation

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

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines