GraphflowDB: A Graph Database Management System

GraphflowDB is a graph database management system (GDBMS) we are building from scratch. The system is implemented in Java and supports the openCypher language. Our research focuses on rethinking each core database component for contemporary GDBMSs, including core query optimization and processing techniques such as join optimization, indexes, and cardinality estimation.


Related Readings:

Query Optimizer & Processor for labeled Subgraph Queries

VLDB Proc. 2019

[7/01/19] Check out our new paper accepted to VLDB 2019. The paper is on optimizing subgraph queries using worst-case optimal joins and binary joins. Worst-case optimal (WCO) joins are n-ary joins using intersections. WCO plans require an ordering on the attributes to match them one at a time. We study the problem of attribute ordering. We combine the linear WCO plans with binary joins (Hash Join operators) and produce what we name in the paper Hybrid plans. WCO plans and Hybrid plans in our system are produced by a dynamic programming optimizer which takes the cost of intersections in WCO plans and combines it with the cost of Hash Join operators. Finally, we introduce an adaptive query optimization for WCO plans by picking a different attribute ordering per input tuple at different operators in the dataflow.

First Demo of Graphflow


[5/14/17] We present the capabilities of Graphflow, a new graph database built from scratch in three ways: (1) A magicRecs application: Continuously detecting who-follows-whom twitter diamond patterns and sending follower recommendations as emails to the attendees; (2) SIGMOD Cliques application: Continuously finds a clique of 4 users and showing the most recent cliques of SIGMOD attendees on our monitor; and (3) the runtime difference between worst-case optimal (WCO) plans and traditional binary join (BJ) plans.


Current Contributors Previous Contributors