HGraph: I/O-efficient Distributed and Iterative Graph Computing by Hybrid Pushing/Pulling

In the big data era, distributed computation is becoming a preferred solution for iterative graph analysis. However, graphs are rapidly growing in size and more importantly, there exist a lot of messages across iterations. For better scalability, many distributed systems keep graph data and message data on disk. Now these systems solely employ either pushing or pulling mode to manage data, but neither can always work well during the entire computation. This is mainly because I/O access patterns are dynamic and complex. This paper proposes a hybrid solution. It achieves the optimal performance in different scenarios by dynamically and adaptively switching modes between pushing and pulling. Specifically, we first devise a new block-centric pulling technique. It pulls messages much more I/O-efficiently than the existing vertex-centric pulling mode. We then combine pushing and pulling. For general-purpose, we categorize graph algorithms and accordingly present two seamless switching frameworks. We also design performance prediction components specialized to the two frameworks, to decide how and when we can switch modes. Some optimization strategies are also given to further enhance performance, such as priority scheduling and lightweight fault-tolerance. Extensive experiments against state-of-the-art solutions confirm the effectiveness of our proposals.

[1]  Enhong Chen,et al.  Kineograph: taking the pulse of a fast-changing and connected world , 2012, EuroSys '12.

[2]  Chengcui Zhang,et al.  GraphD: Distributed Vertex-Centric Graph Processing Beyond the Memory Limit , 2018, IEEE Transactions on Parallel and Distributed Systems.

[3]  Charalampos E. Tsourakakis,et al.  FENNEL: streaming graph partitioning for massive scale graphs , 2014, WSDM.

[4]  Jin-Soo Kim,et al.  HAMA: An Efficient Matrix Computation with the MapReduce Framework , 2010, 2010 IEEE Second International Conference on Cloud Computing Technology and Science.

[5]  Joy Arulraj,et al.  Apache Giraph , 2018, Encyclopedia of Social Network Analysis and Mining. 2nd Ed..

[6]  Pangfeng Liu,et al.  Kylin: An efficient and scalable graph data processing system , 2013, 2013 IEEE International Conference on Big Data.

[7]  Ge Yu,et al.  Hybrid Pulling/Pushing for I/O-Efficient Distributed and Iterative Graph Computing , 2016, SIGMOD Conference.

[8]  Gabriel Kliot,et al.  Streaming graph partitioning for large distributed graphs , 2012, KDD.

[9]  Wook-Shin Han,et al.  TurboGraph++: A Scalable and Fast Graph Analytics System , 2018, SIGMOD Conference.

[10]  Aart J. C. Bik,et al.  Pregel: a system for large-scale graph processing , 2010, SIGMOD Conference.

[11]  Willy Zwaenepoel,et al.  Chaos: scale-out graph processing from secondary storage , 2015, SOSP.

[12]  Daniel Farmer,et al.  Titan , 2019, LISA.

[13]  Jimeng Sun,et al.  GBASE: a scalable and general graph management system , 2011, KDD.

[14]  Jennifer Widom,et al.  GPS: a graph processing system , 2013, SSDBM.

[15]  Haixun Wang,et al.  Trinity: a distributed graph engine on a memory cloud , 2013, SIGMOD '13.

[16]  Ge Yu,et al.  An I/O-efficient and adaptive fault-tolerant framework for distributed graph computations , 2017, Distributed and Parallel Databases.

[17]  Michael D. Ernst,et al.  HaLoop , 2010, Proc. VLDB Endow..

[18]  Joseph Gonzalez,et al.  PowerGraph: Distributed Graph-Parallel Computation on Natural Graphs , 2012, OSDI.

[19]  Chang Zhou,et al.  MOCgraph: Scalable Distributed Graph Processing Using Message Online Computing , 2014, Proc. VLDB Endow..

[20]  Volker Markl,et al.  "All roads lead to Rome": optimistic recovery for distributed iterative data processing , 2013, CIKM.

[21]  Panos Kalnis,et al.  Mizan: a system for dynamic load balancing in large-scale graph processing , 2013, EuroSys '13.

[22]  Chen Xu,et al.  Efficient fault-tolerance for iterative graph processing on distributed dataflow systems , 2016, 2016 IEEE 32nd International Conference on Data Engineering (ICDE).

[23]  Wilfred Ng,et al.  Effective Techniques for Message Reduction and Load Balancing in Distributed Graph Computation , 2015, WWW.

[24]  Wilfred Ng,et al.  Blogel: A Block-Centric Framework for Distributed Computation on Real-World Graphs , 2014, Proc. VLDB Endow..

[25]  M. Abadi,et al.  Naiad: a timely dataflow system , 2013, SOSP.

[26]  Makoto Onizuka,et al.  Graph Partitioning for Distributed Graph Processing , 2017, Data Science and Engineering.

[27]  Reynold Xin,et al.  GraphX: Graph Processing in a Distributed Dataflow Framework , 2014, OSDI.

[28]  Christos Faloutsos,et al.  PEGASUS: A Peta-Scale Graph Mining System Implementation and Observations , 2009, 2009 Ninth IEEE International Conference on Data Mining.

[29]  Bingsheng He,et al.  Large graph processing in the cloud , 2010, SIGMOD Conference.

[30]  Wenguang Chen,et al.  Chronos: a graph engine for temporal graph analysis , 2014, EuroSys '14.

[31]  Michael J. Carey,et al.  Pregelix: Big(ger) Graph Analytics on a Dataflow Engine , 2014, Proc. VLDB Endow..

[32]  Indranil Gupta,et al.  LFGraph: simple and fast distributed graph analytics , 2013, TRIOS@SOSP.

[33]  Jie Yan,et al.  GRE: A Graph Runtime Engine for Large-Scale Distributed Graph-Parallel Applications , 2013, ArXiv.

[34]  Gang Chen,et al.  Fast Failure Recovery in Distributed Graph Processing Systems , 2014, Proc. VLDB Endow..

[35]  Réka Albert,et al.  Near linear time algorithm to detect community structures in large-scale networks. , 2007, Physical review. E, Statistical, nonlinear, and soft matter physics.

[36]  Yafei Dai,et al.  Seraph: an efficient, low-cost system for concurrent graph processing , 2014, HPDC '14.

[37]  Yinghui Wu,et al.  Parallelizing Sequential Graph Computations , 2018, ACM Trans. Database Syst..

[38]  Luke M. Leslie,et al.  Zorro: zero-cost reactive failure recovery in distributed graph processing , 2015, SoCC.

[39]  Marcos Dias de Assunção,et al.  Apache Spark , 2019, Encyclopedia of Big Data Technologies.

[40]  Murat Demirbas,et al.  Giraphx: Parallel Yet Serializable Large-Scale Graph Processing , 2013, Euro-Par.