GRAIL: A Scalable Index for Reachability Queries in Very Large Graphs
90-minute presentation for the Advanced topics in Data Management course at KAUST, on "GRAIL: A Scalable Index for Reachability Queries in Very Large Graphs" by Hilmi Yıldırım et al, published in VLDBJ '11.
than once, keep the post-order rank of the first visit. ⊆ ⇒ ↛ = [ , ] Post-order rank of u Minimum post-order rank of all the nodes in the sub-tree rooted at u ⊆ ⇏ →
v): may trigger multiple containment queries If containment is satisfied, return true If containment is not satisfied For all non-tree edges (x, y), x is a descendant of u, If Reachable(y, v), return true Return false // out of non-tree edges Query time: O(|E| - |V|) = O(t), for t non-tree edges
Hypothesis: Most of the reachability information is captured by interval labeling Reachable(u, v): If containment is not satisfied, return false. No false negatives If containment is satisfied, do something. May have false positives Can we decrease the number of false positives? Yes, compute many intervals. How? How do we handle false positives?
up* Heuristic (guided)* During the ith traversal, select the node with the most exceptions in the previous i – 1 traversals Too expensive Use some heuristics to select nodes with many possible exceptions Time complexity: O(d(n+m) + dn(Plog(P)), P = maximum out degree
select the node with the most exceptions in the previous i – 1 traversals Too expensive Maximum Volume Maximum minimum interval Maximum adjusted volume Maximum adjusted minimum interval