<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>A Distributed Framework for Large-Scale Time-Dependent Graph Analysis</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Wissem Inoubli</string-name>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Livia Almada</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ticiana Linhares Coelho da Silva</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Gustavo Coutinho</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Lucas Peres</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Regis Pires Magalhaes</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jose Ant</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>onio Fernandes de Macedo</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sabeur Aridhi</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Engelbert Mephu Nguifo</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Federal University of Ceara, Computer Science Department</institution>
          ,
          <country country="BR">Brazil</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>University Clermont Auvergne</institution>
          ,
          <addr-line>CNRS, LIMOS, F-63000 Clermont-Ferrand</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>University of Lorraine, LORIA</institution>
          ,
          <addr-line>Campus Scienti que BP 239, Vandoeuvre-les-Nancy</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>University of Tunis El Manar, Faculty of sciences of Tunis</institution>
          ,
          <addr-line>LIPAH, 1060, Tunis</addr-line>
          ,
          <country country="TN">Tunisia</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>In the last few years, we have seen that many applications or computer problems are mobilized as a graph since this data structure gives a particular handling for some use cases such as social networks, bioinformatics, road networks and communication networks. Despite its importance, the graph processing remains a challenge when dealing with large graphs. In this context, several solutions and works have been proposed to support large graph processing and storage. Nevertheless, new needs are emerging to support the dynamism of the graph (Dynamic Graph) and properties variation of the graph during the time (temporal graph). In this paper, we rst present the concepts of dynamic and temporal graphs. Secondly, we show some frameworks that treat static, dynamic and temporal graphs. Finally, we propose a new framework based on the limits of the frameworks study.</p>
      </abstract>
      <kwd-group>
        <kwd>Big Graph Processing</kwd>
        <kwd>Dynamic Graph</kwd>
        <kwd>Temporal Graph</kwd>
        <kwd>Distributed Graph</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Graph data structure represents an appropriate model for several applications
in various domains such that social network (e.g., FaceBook, Twitter),
bioinformatics [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], road networks (e.g., Google Maps) [9][13], social networks [12] and
communication networks (e.g., cellular networks) [10]. Its interests increase
especially with the development of intelligent objects such as internet of things (IoT)
and deep-learning. Despite the fact that graph data structure shows its e
ectiveness for several problems and applications modeling, di erent linked problems
arise mainly: (1) centralized machines are not able to deal with complex tasks
on big graphs, (2) big graphs may change over time. Precisely, graphs can be
subject to a set of structural modi cations (addition and/or deletion of vertices
and/or edges) and updates of some properties. The high volume of changes in
dynamic graphs can be detected in applications like Facebook whose updates
exceed 86 thousands per second in 2013 [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Many solutions proposed to solve
queries in graphs fails to represent the reality in the sense that they do not
consider the temporal dependence. These tools were developed for solving queries
in static graphs and can not be directly extended to answer time-dependent
problems. In this paper, we present a novel framework for dynamic and
temporal graph processing. The proposed framework allows de ning time-dependent
graph processing tasks in a distributed way. Our framework provides a high level
API that allows the implementation of distributed and scalable time-dependent
algorithms. Since static (non-time-dependent) graphs are a particular case of
time-dependent graphs, our solution is also suitable for handling this kind of
graphs. The rest of the paper is structured as follows. In Section 2, we highlight
the related works on temporal and distributed graph processing. In Section 3,
we describe the proposed framework and its components.In Section 4, we draw
the conclusion and the future works.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Related works</title>
      <p>
        The graph processing topic has attracted many researchers and industrial
institutes [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. In fact, it is considered as huge consumers of computing resources
due to its complexity. Therefore, a single thread or a simple machine does not
meet our needs if we deal with large graphs or if we aim to treat complex tasks.
This challenge prompted the birth of new programming models and dedicated
frameworks to build e cient distributed and parallel applications [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. In this
context, considerable e orts have been made since distributed computing needs
very hard con guration like resources managers, fault tolerance, communications
between machines, data partitions, and other con gurations. In this section, we
brie y review related works and then determinate main constraints to support
dynamic and temporal graph processing e ectively. Pregel [15] is a scalable and
distributed framework for large graph processing. It represents an evolution of
the MapReduce framework [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] to graph processing system. It is known as the
rst implementation of Bulk Synchronous Parallel model which is based on
vertices computing and a sequence of iterations called supersteps. Each vertex sends
and receives messages to or from its neighbors. Note that in the framework or in
the programming model (BSP), the communication is a primordial aspect that
reduces the graph processing runtime. Giraph [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] is a distributed framework that
represents a next generation of Pregel. It uses multi-threading to optimize the
computing. Each computing task is considered as a Job and it uses HDFS to
store the input and/or the output data. Various works have been also conducted
to support dynamic aspects of Big graphs like PowerGraph [8], Graphchi [16],
and X-Stream [17] but they are limited to dynamic storage and partition.
Others systems like GraphIn [19] and BLADYG [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] have been proposed to ensure
dynamic graph processing. GraphIn proposes an incremental graph processing
and is based on a novel programming model called IN-GAS (based on
gatherapply-scatter programming paradigm). As for BLADYG, it consists of a scalable,
distributed and dynamic framework for graph processing which is based on an
actor model [18]. Note also that temporal graph analysis is an important aspect
that must be taken into consideration in future works. In this context, Graphast
[14] has been recently developed as a framework that supports such an aspect.
It is addressed to ensure a temporal processing graph and to provide users with
many tools for applications building on a time-dependent graph.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Distributed temporal and dynamic graph analysis</title>
      <p>Based on the theoretical study of the above-mentioned frameworks, we propose a
novel distributed framework for temporal and dynamic graph representation and
analysis. Figure 1 presents the global architecture of our proposed framework.
We mention that the proposed system aims to overcome the limits of the
abovementioned frameworks and to meet all the requirements for processing dynamic
and temporal big graphs. As shown in Figure 1, the proposed system is divided
into several layers.</p>
      <sec id="sec-3-1">
        <title>Storage layer</title>
        <p>The storage layer allows saving and persisting the considered graph. This layer
has been implemented in some frameworks. However, others solutions do not
implement this component or do not support very big graphs. In our framework,
we use distributed le systems in order to store large graphs and to guarantee a
fault tolerant storage solution.</p>
      </sec>
      <sec id="sec-3-2">
        <title>Execution layer</title>
        <p>The execution layer represents the core of our proposed framework. It is
implemented to support e ciently all the requirements for large graph processing.
Among these requirements, we cite basically the scalability of processing and
the fault tolerance. In this context, we note that several solutions such as GPS
and Graphast do not take into consideration some aspects such as the scalability
and the distributed computing, while others like BLADYG, Pregel and GraphX
ensure them. However, the latter can not guarantee fault tolerance. To handle
this limit, we have implemented a checkpoint service which aims to ensure and
capture the di erent processing states in real-time.</p>
      </sec>
      <sec id="sec-3-3">
        <title>Stream Graph layer</title>
        <p>We notice that the changes that occur to the graph data are mainly addition
and/or deletion of nodes/edges. The Stream Graph layer ensure the streaming
of graph changes/updates. To do that, we use Kafka Broker [11] as a streaming
tool that ensures the continuity and the scalability of data ows.</p>
      </sec>
      <sec id="sec-3-4">
        <title>Graph Model</title>
        <p>Graph Model describes the data structure used by the di erent layers and
component of the proposed framework. The Graph Model component describes the
edges and the vertices of the considered graph. It also describes the graph
updates. We also mention that the Graph Model layer allows to represent time
dependent costs on the edges. In our model, nodes and edges can have
timedependent costs as well as other properties such as the distance between nodes,
geographical coordinates, and description. Temporal functions represent
timedependent costs, mapping time periods to values. The model is exible enough
to allow the addition or removal of properties. It also allows dynamic updates
on property values. All the other modules of the framework interact with the
Graph Model.
To facilitate the development of user applications and to ensure a high level of
abstraction that allow the exploitation of this framework in several applications,
we propose an API level. It implements a programming interface that helps the
user to build several applications. We also mention that the level API allow the
implementation of e cient algorithms / queries on the graph model.</p>
      </sec>
      <sec id="sec-3-5">
        <title>RestFul Import/Export Service</title>
        <p>In this component, we propose a RestFul module which seeks to ensure the
compatibility with other systems or applications and to manipulate data e
ciently. This layer is responsible for importing/exporting data from given data
sources and formats, like GML, GraphML, and GraphSON, to build the Graph
Model. New data import/export services are easily added to the framework by
the implementation of a standard interface.
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Conclusion</title>
      <p>In this paper we present the architecture of a novel distributed framework for
dynamic and temporal graph processing. The proposed framework provides
various tools for graph processing like graph storage, graph streaming and
programming interfaces that allow the users to build concurrent and distributed
time-dependent graph applications. In future works, we aim to evaluate this
framework and compare it with existing systems in real world applications.
8. Gonzalez, J.E., Low, Y., Gu, H., Bickson, D., Guestrin, C.: Powergraph:
Distributed graph-parallel computation on natural graphs. In: OSDI, vol. 12, p. 2
(2012)
9. Han, B., Liu, L., Omiecinski, E.: Neat: Road network aware trajectory
clustering. In: Distributed Computing Systems (ICDCS), 2012 IEEE 32nd International
Conference on, pp. 142{151. IEEE (2012)
10. Intanagonwiwat, C., Govindan, R., Estrin, D.: Directed di usion: A scalable and
robust communication paradigm for sensor networks. In: Proceedings of the 6th
annual international conference on Mobile computing and networking, pp. 56{67.</p>
      <p>ACM (2000)
11. Kreps, J., Narkhede, N., Rao, J., et al.: Kafka: A distributed messaging system for
log processing. In: Proceedings of the NetDB, pp. 1{7 (2011)
12. Lee, P., Lakshmanan, L.V., Milios, E.E.: Incremental cluster evolution tracking
from highly dynamic network data. In: Data Engineering (ICDE), 2014 IEEE 30th
International Conference on, pp. 3{14. IEEE (2014)
13. Li, X., Han, J., Lee, J.G., Gonzalez, H.: Tra c density-based discovery of hot routes
in road networks. Advances in Spatial and Temporal Databases pp. 441{459 (2007)
14. Magalha~es, R.P., Coutinho, G., Mac^edo, J., Ferreira, C., Cruz, L., Nascimento, M.:
Graphast: an extensible framework for building applications on time-dependent
networks. In: Proceedings of the 23rd SIGSPATIAL International Conference on
Advances in Geographic Information Systems, p. 93. ACM (2015)
15. Malewicz, G., Austern, M.H., Bik, A.J., Dehnert, J.C., Horn, I., Leiser, N.,
Czajkowski, G.: Pregel: a system for large-scale graph processing. In: Proceedings of
the 2010 ACM SIGMOD International Conference on Management of data, pp.
135{146. ACM (2010)
16. Moon, S., Lee, J.G., Kang, M., Choy, M., Lee, J.w.: Parallel community detection
on large graphs with mapreduce and graphchi. Data &amp; Knowledge Engineering
104, 17{31 (2016)
17. Roy, A., Mihailovic, I., Zwaenepoel, W.: X-stream: Edge-centric graph processing
using streaming partitions. In: Proceedings of the Twenty-Fourth ACM
Symposium on Operating Systems Principles, pp. 472{488. ACM (2013)
18. Scholliers, C., Tanter, E., De Meuter, W.: Parallel actor monitors: Disentangling
task-level parallelism from data partitioning in the actor model. Science of
Computer Programming 80, 52{64 (2014)
19. Sengupta, D., Sundaram, N., Zhu, X., Willke, T.L., Young, J., Wolf, M., Schwan,
K.: Graphin: An online high performance incremental graph processing framework.
In: Euro-Par, pp. 319{333 (2016)</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Aridhi</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mephu Nguifo</surname>
          </string-name>
          , E.:
          <article-title>Big Graph Mining: Frameworks and Techniques</article-title>
          .
          <source>Big Data Research</source>
          <volume>6</volume>
          ,
          <issue>1</issue>
          {
          <fpage>10</fpage>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Aridhi</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Montresor</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Velegrakis</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>BLADYG: A graph processing framework for large dynamic graphs</article-title>
          .
          <source>Big Data Research</source>
          <volume>9</volume>
          ,
          <issue>9</issue>
          {
          <fpage>17</fpage>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Armstrong</surname>
            ,
            <given-names>T.G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ponnekanti</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Borthakur</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Callaghan</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>LinkBench: a database benchmark based on the facebook social graph</article-title>
          .
          <source>In: Proceedings of the 2013 ACM SIGMOD International Conference on Management of Data</source>
          , pp.
          <volume>1185</volume>
          {
          <fpage>1196</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Candau</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bastide</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Delsanti</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Structural, elastic, and dynamic properties of swollen polymer networks</article-title>
          .
          <source>Polymer</source>
          Networks pp.
          <volume>27</volume>
          {
          <issue>71</issue>
          (
          <year>1982</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Dean</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ghemawat</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>MapReduce: simpli ed data processing on large clusters</article-title>
          .
          <source>Communications of the ACM</source>
          <volume>51</volume>
          (
          <issue>1</issue>
          ),
          <volume>107</volume>
          {
          <fpage>113</fpage>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Dhi</surname>
            <given-names>i</given-names>
          </string-name>
          , W.,
          <string-name>
            <surname>Aridhi</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nguifo</surname>
            ,
            <given-names>E.M.:</given-names>
          </string-name>
          <article-title>MR-SimLab: Scalable subgraph selection with label similarity for big data</article-title>
          .
          <source>Information Systems 69(C)</source>
          ,
          <volume>155</volume>
          {
          <fpage>163</fpage>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Elser</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Montresor</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>An evaluation study of bigdata frameworks for graph processing</article-title>
          .
          <source>In: Big Data</source>
          , 2013 IEEE International Conference on, pp.
          <volume>60</volume>
          {
          <fpage>67</fpage>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>