I do both systems and theoretical research in data management and processing. My current systems research focuses on Graphflow, which is a new graph database we are building from scratch. The main goal of Graphflow is to integrate active features, such as triggers and constraints, that exist in relational databases into graph databases. If you are interested in using Graphflow for your application and project, please contact me diretly or our team at graphflow [at] uwaterloo [dot] ca. We greatly appreciate and welcome contributions to the project.

My theoretical research focuses on understanding the computational complexities of distributed algorithms that evaluate database queries. Many of the existing modern distributed systems are based on the BSP model of computation. Parallel algorithms running on these systems use three main resources: (1) number of rounds, i.e., synchronizations; (2) communication; and (3) memory, i.e., space. My work focuses on understanding the relationship between these three parameters and designing algorithms (specifically query processing algorithms) that are optimal in terms of one or more of these three resources.

During my PhD, my systems work was on large-scale graph processing systems. My research ranged from building an open-source platform for scalable graph processing, to algorithms for distributing graphs across machines, to developing extensions to existing graph processing systems with the goal of making them easier to program.




CS 341: Algorithms (Winter 2017)

CS 848/858: Modern Data Processing Systems (Fall 2016)

Contact Info

Office: DC 3351

Email: myfirstname.mylastname(at)uwaterloo.ca

Curriculum vitae