1 / 39

GRAIL: Scalable Reachability Index for Large Graphs VLDB2010

GRAIL: Scalable Reachability Index for Large Graphs VLDB2010. Vineet Chaoji Mohammed J. Zaki. 1. INTRODUCTION. Problem Definition

otylia
Download Presentation

GRAIL: Scalable Reachability Index for Large Graphs VLDB2010

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. GRAIL: Scalable Reachability Index for Large Graphs VLDB2010 Vineet Chaoji Mohammed J. Zaki

  2. 1. INTRODUCTION • Problem Definition • Given a directed graph G = (V,E) and two nodes u, v ∈ V , a reach ability query asks if there exists a path from u to v in G. If u can reach v, we denote it as u → v • Application • Semantic Web is composed of RDF/OWL data and Reach ability queries to infer the relationships among the objects. • network biology, reachability querying protein-protein interaction networks

  3. DAG 1 • the problem of reachability on directed graphs can be reduced to reachability on directed acyclic graphs (DAGs) • equivalent DAG G′ • each node represents a strongly connected component of original graph, each edge represents whether one component can reach another.

  4. DAG 2 • answer whether node u can reach v in G • look up their corresponding strongly connected components, Su and Sv, respectively, which are the nodes in G′. If Su = Sv, then u and reach v, If Su != Sv, then we pose the question whether Su can reach Sv in G′. • reachability queries on the original graph can be answered on the DAG, and thus we will discuss methods for reachability only on DAGs.

  5. Tradeoff between Query Time and Index Size

  6. Basic Approach: intervallabeling • reachability problem on trees can be solved effectively by interval labeling ; linear time and space for constructing the index, and provides constant time querying. • Definition • each node u with a range Lu = [rx, ru] • ru:denotes the rank of the node u in a post-order traversal of the tree, ranks begin at 1, and all the children of a node ordered and fixed for that traversal(reversed visiting order compared with rx)

  7. rx: DFS from root, number of nodes that has been popped + 1 currently

  8. Theorm 0 • For trees, u → v ⇐⇒ Lv ⊆ Lu. • Proof: • Consider one step reachability, • if u → v in one step, then for rx: u will be visited before v, so rx(u)<=rx(v); for ru: u will be visited in DFS before v, so, ru(u) >= ru(v), clearly Lv ⊆ Lu. • If Lv ⊆ Lu, then rx(u)<=rx(v), rx(u)<=rx(v) means u is visited before v in DFS process, and consider constraint of tree, so u → v in one step • Now because relationship u → v , Lv ⊆ Lu is equivalent relationship, and path_num(u,v) is at most 1, so u → v ⇐⇒ Lv ⊆ Lu(1 step) can deduce u → v ⇐⇒ Lv ⊆ Lu(n step)

  9. ensure that a node is not visited more than once, and a node will keep the post-order rank of its first visit. interval containment of nodes in a DAG is not exactly equivalent to reachability. For example, 5 !→ 4, but L4 = [1, 5] ⊆ [1, 8] = L5. generalize the interval labeling to a DAG

  10. 3. THE GRAIL APPROACH • The key idea is to do fast elimination for pairs of query nodes for whom non-reachability can be determined via the intervals. • employs multiple intervals that are obtained via random graph traversals. symbol d denote the number of intervals to keep per node

  11. THE GRAIL APPROACH • Definition

  12. THEOREM 1

  13. two main issues in GRAIL • i) how to compute the d random interval labels while indexing • ii) how to deal with exceptions, while querying

  14. 3.1 Index Construction • The best strategy is to cease labeling after a small number of dimensions (such as 5), with reduced exceptions, rather than trying to totally eliminate all exceptions

  15. Traversal Strategies • Randomized: shown in Algorithm 1, with a random traversal order for each dimension. • Randomized Pairs: first randomize the order of the roots and children, and fix it. We then generate pairs of labeling, using left-to-right (L-R) and right-to-left (R-L) traversals. • Bottom Up: this strategy we conceptually “reverse the edges” and process the nodes in reverse topological order. The bottom-up traversal can be done at random, or in random-pairs.

  16. 3.2 Reachability Queries • Exception’s Definition • For example, for the DAG in Figure 2(b), we can see that E2 = {1, 4}, E4 = {3, 7, 9}, • keeping explicit exception lists per node does not scale to very large graphs. Default approach in GRAIL is to use a “smart” DFS, with recursive containment check based pruning, to answer queries.

  17. Computational Complexity • querying takes O(d) time if Lv !⊆ Lu • exception lists are to be used, and they are maintained in a hash table, then the check in Line 3 takes O(1) time; otherwise, if the exceptions list is kept sorted, then the times is O(log(|Eu|)). • default option is to perform DFS, but note that it is possible we may terminate early due to the containment based pruning. Thus the worst case complexity is O(n + m) for the DFS

  18. 4.1 Datasets • Small-Sparse: These are small, real graphs, with average degree less than 1.2, • Small-Dense: These are small, dense real-world graphs • Large-Real: To evaluate the scalability of GRAIL on real datasets, we collected 7 new datasets which have previously not been been used by existing methods • Large-Synthetic: To test the scalability with different density setting, we generated random DAGs, ranging with 10M and 100M nodes, with average degrees of 2, 5, and 10.

  19. 4.2 Small Real Datasets: Sparse and Dense • Tables 7, 8, and 9 show the index construction time, query time, and index size for the small, sparse, real datasets. • Tables 10, 11, and 12 give the corresponding values for the small, dense, real datasets. • The last column in Tables 8 and 11 shows the number of reachable query node-pairs out of the 100K test queries; the query node-pairs are sampled randomly from the graphs

  20. 4.2 Small Real Datasets: Sparse and Dense • Conclusion • On the sparse datasets, GRAIL (using d = 2 traversals) has the smallest construction time • In terms of query time, PathTree is the best; it is 3-100 times faster than GRAIL • DFS gives reasonable query performance • On the small dense datasets, GRAIL (with d = 2) has the smallest construction times and index size. • indexing does deliver significant benefits in terms of query time performance.

  21. 4.3 Large Datasets: Real and Synthetic • Table 13 shows the construction time, query time, and index size for GRAIL (d = 5) and pure DFS, on the large real datasets. • We also ran PathTree, on cit-patents and citeseerx is aborted with a memory limit error (–(m)), whereas for the other datasets it exceeded the 20M ms time limit (–(t)). • Table 14 shows the construction time, query time and index sizes for GRAIL and DFS on the large synthetic graph • GRAIL is uniformly better than DFS in all cases. • we conclude that GRAIL is the most scalable reachability index for large graphs, especially with increasing density

  22. 4.4 GRAIL: Sensitivity • Table 15 shows the effect of using exception lists in GRAIL • Using exceptions does help in some cases, but increase construction time, and the large size of exception lists, do not justify the small gains. exceptions could not be constructed on the large real graphs.

  23. Number of Traversals/Intervals (d)

  24. increasing the number of intervals increases construction time, but yields decreasing query times. • at some point the overhead of checking a larger number of intervals negates the potential reduction in exceptions. (query time increases from d = 4 to d = 5 for ecoo)

  25. trade-off in query cost v.s. index size • To estimate the number of traversals that minimize the query time, or that optimize the index size/query time trade-off is not straightforward. • However, for any practical benefits it is imperative to keep the index size smaller than the graph size. This loose constraint restricts d to be less than the average degree.

  26. Effect of Reachability • For all of the experiments above, we issue 100K random query pairs. However, since the graphs are very sparse, the vast majority of these pairs are not reachable • As an alternative, we generated 100K reachable pairs by simulating a random walk • Tables 16 and 17 show the query time performance of GRAIL and pure DFS for the 100K random and 100K only positive queries, on some small and large graphs

  27. Observation • Generally speaking, querying only reachable pairs takes longer (from 2-30 times) for both GRAIL and DFS. Note also that GRAIL is 2-4 times faster than DFS on positive queries, and up to 30 times faster on the random ones.

  28. Effect of Query Distribution • for query sets with all reachable (positive) node-pairs, CV (coefficient of variation) decreases for GRAIL since the likelihood of pruning and early termination of the query decreases.

  29. Effect of Density • generating random DAGs with 10 million nodes, and varying the average density from 2 to 10, as shown in Figure 5. • both the construction and query time increase with increasing density. • GRAIL (with d =5) is an order of magnitude faster than pure DFS in query time.

  30. Question Remained • The question whether there exists an interval labeling with d dimensions that has no exceptions, is likely to be NP-complete. • My Opinion: • Algorithm 1 is based on DFS coding vertex • Each coding instance could be mapped to a DFS tree of graph G • So, d should as large as Number of trees for G to guarantee no exceptions • Number of trees for G is exponential for nodes number in G • That problem is not NPC

  31. Thanks

More Related