Optimizing Navigational Graph Queries
Thomas Mulder, George Fletcher, Nikolay Yakovets
TL;DR
The paper tackles the impractical evaluation of complex navigational graph queries by introducing a cohesive optimization framework that seeds transitive closures, employs graph-structured query plans, and uses a top-down, memoized enumerator. It presents novel concepts such as interior/exterior closures, seeding strategies, and a cost-based optimization layer, all embedded in a graph-based plan model with eleven operator types. The experimental study across DBPedia and STRING demonstrates orders-of-magnitude improvements in query evaluation times and cardinalities, while keeping optimization overhead modest. The work significantly advances practical graph querying by enabling efficient evaluation of Regular Queries under realistic workloads and datasets, with clear avenues for extending cost estimation and expressivity in future work.
Abstract
We study the optimization of navigational graph queries, i.e., queries which combine recursive and pattern-matching fragments. Current approaches to their evaluation are not effective in practice. Towards addressing this, we present a number of novel powerful optimization techniques which aim to constrain the intermediate results during query evaluation. We show how these techniques can be planned effectively and executed efficiently towards the first practical evaluation solution for complex navigational queries on real-world workloads. Indeed, our experimental results show several orders of magnitude improvement in query evaluation performance over state-of-the-art techniques on a wide range of queries on diverse datasets.
