It covers the full evaluation cycle from workload generation to result analysis and provides the analyst with a set of framework components to design their own experiments for a streambased graph system.
GraphTides framework supports developers of stream-based graph systems, allowing for in-depth performance measurements, and comparisons of stream-based graph systems.
For detailed overview of GraphTides framework please refer to our GRADES-NDA'18 paper
GraphTides comprises metrics, workloads, components of the evaluation architecture, and methodological recommendations.
GraphTides framework consists of:
During a test run, the graph stream replayer outputs a generated stream, feeding the system under test while runtime metrics loggers gather continuous data from the system, its processing results, and other sources. After a finished run, the log collector aggregates the recorded data and yields a single result log.
In order to connect the test harness to the system under test, the user either plugs a platform-specific connector into the graph stream replayer component, or provides logic within the platform to receive and terminate the inbound stream accordingly.
Although all components, including the system under test, could be placed on the same machine, GraphTides is aimed at a distributed setup that conforms with most use cases.
GraphTides is a platform-agnostic framework aimed at stream-based graph processing platforms which receive a continuous, unbounded stream of graph events from an external source via the network, while maintaining a stateful and mutable underlying graph. The systems use the underlying graph to execute online graph computations, therefore, graph computations and graph mutations run concurrently.
GraphTides assume streams where each event contains a single, localized operation which describes a change within the graph topology (i.e., by adding or removing a vertex or edge) or an update to its state (i.e., by updating the properties of a vertex or edge).
GraphTides supports directed stateful graphs, where both vertices and edges possess a mutable state. GraphTides does not consider multigraphs or self loops. Undirected graphs can be modeled by ignoring edge directions and stateless graphs can be represented by ignoring state properties.
GraphTides assumes at least one active graph stream and any number of graph computations to be executed during streaming. Computations can include diverse graph queries, such as calculating graph statistics and graph properties, executing traversal algorithms, running connectivity and community detection algorithms, and many more.
GraphTides focuses on time-series values for most metrics, collected at runtime by a set of logger instances. GraphTides supports measuring general systems metrics such as CPU load, memory usage, network I/O, and disk I/O, as well as additional internal metrics such as internal throughput rates and communication latencies between workers. In addition, GraphTides supports streaming metrics such as ingress rate, and computation metrics such as latency and accuracy.
An up-to-date implementation and source code of GraphTides is available under the MIT license on GitHub.
The graph stream generator component is implemented in TypeScript using Node.js. The graph stream replayer component is implemented in Java 9. For our current test evaluations, Python and Node.js scripts are being used as runtime metrics loggers.
Please feel free to contact the authors, raise issues, or create a pull-request via GitHub.
ACM Ref Citation:
Benjamin Erb, Dominik Meißner, Frank Kargl, Benjamin A. Steer, Felix Cuadrado, Domagoj Margan, and Peter Pietzuch. 2018. Graphtides: a framework for evaluating stream-based graph processing platforms. In Proceedings of the 1st ACM SIGMOD Joint International Workshop on Graph Data Management Experiences & Systems (GRADES) and Network Data Analytics (NDA) (GRADES-NDA '18), Akhil Arora, Arnab Bhattacharya, George Fletcher, Josep Lluis Larriba Pey, Shourya Roy, and Robert West (Eds.). ACM, New York, NY, USA, Article 3, 10 pages. DOI: https://doi.org/10.1145/3210259.3210262