← Go back

A Dynamic Datastructure for Worst-Case Optimal Joins in Graph Databases

Bachelor Thesis

Background

In the DICE group, we develop new a new generation of graph databases that go beyond the traditional binary joins you have learned about in your undergraduate database course. With the advent of worst-case optimal joins (WCOJs) graph-based analytics can often be speed up massively, in practice up to 1000x. WCOJs achieve this by lowering the complexity class for many queries compared to binary joins.

WCOJs are demanding, though. They come with strict conditions on the data layout and available access paths. One index to support such joins is the Ring by Arroyuelo et.al.. The Ring is a succinct data structure. That means the memory it requires to store it is close to the informantion theoretic minimum but it also means that you cannot update it once it is built.

Your Task

You will take the basic concept of the ring and make a dynamic datastructure that supports updating the contained data efficiently. Your implementation will be in C++ with a Tentris compatible API. For the evaluation, you will integrate your dynamic ring implementation into Tentris and compare it with it's basline index implementation hypertrie. The evaluation will be executed with established graph database benchmarks like WDBench and WatDiv.

Your Profil

  • Good modern C++ coding skills (C++20/23)
  • You have fun with datastructures and are interest in the internals of databases.
  • Experience with knowledge graph standards like SPARQL and RDF (helps, but is not required)