DMS Group Projects

This page details student projects, both at the B.Sc. and M.Sc. levels, that are available for students wanting to work together with the Data Management Systems (DMS) group at DIKU. The projects have been organized across broad research areas and topical themes across them. Each of these themes can have multiple B.Sc and M.Sc level projects depending on the actual scope of the project which can be discussed with project advisors. Currently, projects are offered in the following research areas:

  1. Stream Processing
  2. Actor Database Systems

Stream Processing

Actor Database Systems

An interesting new paradigm of organizing and building database systems for modern hardware and application software has been envisioned by integrating actor programming frameworks with database functionality leading to new class of systems named “Actor Database Systems”. This leads to an entirely new set of challenges that need to be solved to build and deploy these systems. An in-memory actor relational database system prototype (written in C++) targeting multi-core architecture named REACTDB has already been built and has shown excellent performance for multi-core architectures. A lot of projects are open in this area of actor database systems.

REACTDB

For projects in this domain contact Vivek Shah or Marcos Vaz Salles.

  1. Declarative Query Support: Currently REACTDB does not support high-level declarative querying similar to SQL and requires embedding of physical query plans in C++. This project theme explores how to translate a logical query written in a declarative query language (SQL/other languages) to a physical query plan in an actor database system. This theme also explores how to replace old mixed procedural and declarative query languages like PLSQL with modern languages (Kotlin/Rust/….). In addition it also explores the design space of declarative and/or imperative languages for querying actors and their state. This project theme requires knowledge of a functional language (for the compiler/interpreter design and implementation) and C++ to interface with REACTDB.

  2. Query Optimization: This project theme explores the design of query optimization mechanisms to pick an optimal phsical query plan (algorithms) from a logical query plan specified in a declarative language depending on the knowledge of the actor designs deployed in an actor database system and the data encapsulated in them. This project theme requires knowledge of C++ and/or a functional language (depending on the design of query optimizer).

  3. Fast Check-pointing and Recovery: This project theme explores the design of the durability guarantees and their implementation in the form of logging, checkpointing and recovery mechanisms in REACTDB. This is especially important in the context of modern hardware (SSD, NVRAM, battery backed RAM, RDMA) which require careful design and implementation to translate their benefits without costing their performance. This project theme requires knowledge of C++ and multi-threading.

  4. Concurrency Control: This project theme explores the design of the concurrency control mechanisms to provide transactional guarantees in REACTDB. With the advent of actor database systems, the transactional guarantees that are necessary and desirable in actor database systems need to be re-examined along with the implementation of classic concurrency control and commit protocols in light of the multi-core and distributed cluster infrastructure of today. This project theme requires knowledge of C++ and multi-threading.

  5. New Hardware: The hardware eco-system being used to deploy modern database systems is undergoing a sea-change. On the compute front GPU, FPGA, SOC with every more computational power are widely being deployed today. On the storage front the performance of DRAM, SSDs and NVRAMs are increasing. These new hardware systems pose interesting challenges on the design and implementation of actor database systems. This project theme explores the design and implementation challenges faced by REACTDB for this new hardware landscape. This project theme requires knowledge of C++, multi-threading, OS internals.

  6. Benchmarking: One of the central challenges of any system is the evaluation of its performance for a set of benchmark programs. This project theme involves porting existing OLTP benchmarks in REACTDB in addition to writing new ones to approximate new classes of applications not captured by existing benchmarks. This project theme also interestingly explores the benefits and challenges of modeling applications by decomposing them into actors in an actor database system. This project theme requires knowledge of C++ and SQL.