arXiv · 2108.11212
The Choice Construct in the Souffle Language
Abstract
Datalog has become a popular implementation language for solving large-scale, real-world problems, including bug finders, network analysis tools, and disassemblers. These applications express complex behaviour with hundreds of relations and rules that often require a non-deterministic choice for tuples in relations to express worklist algorithms. This work is an experience report that describes the implementation of a choice construct in the Datalog engine Souffle. With the choice construct, we can express worklist algorithms such as spanning trees in a few lines of code. We highlight the differences between rule-based choice as described in prior work, and relation-based choice introduced by this work. We show that a choice construct enables certain worklist algorithms to be computed up to 10kx faster than having no choice construct.
Explore related subjects
Keep this discovery
Explore connections, maps & timelines
Xiaowen Hu, Joshua Karp, David Zhao, Abdul Zreika, Xi Wu, Bernhard Scholz. 2021-08-25. The Choice Construct in the Souffle Language. https://arxiv.org/abs/2108.11212
Cite the original work for its findings. Save a collection to share your selection of sources.