Optimizing Subgraph Queries by Combining Binary and WorstCase Optimal Joins. We study the problem of optimizing subgraph queries using the new worstcase optimal join plans. Worstcase optimal plans evaluate queries by matching one query vertex at a time using multiway intersections. The core problem in optimizing worstcase optimal plans is to pick an ordering of the query vertices to match. We design a costbased optimizer that (i) picks efficient query vertex orderings for worstcase optimal plans; and (ii) generates hybrid plans that mix traditional binary joins with worstcase optimal style multiway intersections. Our cost metric combines the cost of binary joins with a new cost metric called intersectioncost. The plan space of our optimizer contains plans that are not in the plan spaces based on tree decompositions from prior work. In addition to our optimizer, we describe an adaptive technique that changes the orderings of the worstcase optimal subplans during query execution. We demonstrate the effectiveness of the plans our optimizer picks and adaptive technique through extensive experiments. Our optimizer is integrated into the Graphflow DBMS.

Optimizing Ordered Graph Algorithms with GraphIt. Many graph problems can be solved using ordered parallel graph algorithms that achieve significant speedup over their unordered counterparts by reducing redundant work. This paper introduces a new prioritybased extension to GraphIt, a domainspecific language for writing graph applications, to simplify writing highperformance parallel ordered graph algorithms. The extension enables vertices to be processed in a dynamic order while hiding lowlevel implementation details from the user. We extend the compiler with new program analyses, transformations, and code generation to produce fast implementations of ordered parallel graph algorithms. We also introduce bucket fusion, a new performance optimization that fuses together different rounds of ordered algorithms to reduce synchronization overhead, resulting in 1.2times3times speedup over the fastest existing ordered algorithm implementations on road networks with large diameters. With the extension, GraphIt achieves up to 3times speedup on six ordered graph algorithms over stateoftheart frameworks and handoptimized implementations (Julienne, Galois, and GAPBS) that support ordered algorithms.