Table of Contents
Fetching ...

Kairos: Efficient Temporal Graph Analytics on a Single Machine

Joana M. F. da Trindade, Julian Shun, Samuel Madden, Nesime Tatbul

TL;DR

Kairos tackles the challenge of efficient temporal graph analytics on commodity hardware by introducing a temporal-edge-centric framework that runs on a single multi-core machine. Its core innovations are the Temporal Graph Edge Registry (TGER), a PST-like index for time intervals, and selective indexing that decides at runtime between index-based and scan-based access methods using a novel cost model and a 2D start-time/duration histogram. The framework extends Ligra with a TemporalEdgeMap primitive and a Temporal CSR (T-CSR) representation, achieving significant speedups over both shared-memory and distributed systems on real and synthetic temporal graphs, including up to 60x faster against some baselines. The work demonstrates strong scalability, effective query optimization under skewed temporal data, and high estimator accuracy for indexing decisions, enabling practical, high-performance temporal graph analytics on a single machine.

Abstract

Many important societal problems are naturally modeled as algorithms over temporal graphs. To date, however, most graph processing systems remain inefficient as they rely on distributed processing even for graphs that fit well within a commodity server's available storage. In this paper, we introduce Kairos, a temporal graph analytics system that provides application developers a framework for efficiently implementing and executing algorithms over temporal graphs on a single machine. Specifically, Kairos relies on fork-join parallelism and a highly optimized parallel data structure as core primitives to maximize performance of graph processing tasks needed for temporal graph analytics. Furthermore, we introduce the notion of selective indexing and show how it can be used with an efficient index to speedup temporal queries. Our experiments on a 24-core server show that our algorithms obtain good parallel speedups, and are significantly faster than equivalent algorithms in existing temporal graph processing systems: up to 60x against a shared-memory approach, and several orders of magnitude when compared with distributed processing of graphs that fit within a single server.

Kairos: Efficient Temporal Graph Analytics on a Single Machine

TL;DR

Kairos tackles the challenge of efficient temporal graph analytics on commodity hardware by introducing a temporal-edge-centric framework that runs on a single multi-core machine. Its core innovations are the Temporal Graph Edge Registry (TGER), a PST-like index for time intervals, and selective indexing that decides at runtime between index-based and scan-based access methods using a novel cost model and a 2D start-time/duration histogram. The framework extends Ligra with a TemporalEdgeMap primitive and a Temporal CSR (T-CSR) representation, achieving significant speedups over both shared-memory and distributed systems on real and synthetic temporal graphs, including up to 60x faster against some baselines. The work demonstrates strong scalability, effective query optimization under skewed temporal data, and high estimator accuracy for indexing decisions, enabling practical, high-performance temporal graph analytics on a single machine.

Abstract

Many important societal problems are naturally modeled as algorithms over temporal graphs. To date, however, most graph processing systems remain inefficient as they rely on distributed processing even for graphs that fit well within a commodity server's available storage. In this paper, we introduce Kairos, a temporal graph analytics system that provides application developers a framework for efficiently implementing and executing algorithms over temporal graphs on a single machine. Specifically, Kairos relies on fork-join parallelism and a highly optimized parallel data structure as core primitives to maximize performance of graph processing tasks needed for temporal graph analytics. Furthermore, we introduce the notion of selective indexing and show how it can be used with an efficient index to speedup temporal queries. Our experiments on a 24-core server show that our algorithms obtain good parallel speedups, and are significantly faster than equivalent algorithms in existing temporal graph processing systems: up to 60x against a shared-memory approach, and several orders of magnitude when compared with distributed processing of graphs that fit within a single server.
Paper Structure (27 sections, 3 equations, 9 figures, 4 tables, 2 algorithms)

This paper contains 27 sections, 3 equations, 9 figures, 4 tables, 2 algorithms.

Figures (9)

  • Figure 1: An example temporal graph representing vertices $\{a, b, c, d, e, f, g\}$. Each edge is associated with a time interval (start, end) denoting its validity.
  • Figure 2: Architectural overview and key ideas.
  • Figure 3: Data layout for example temporal graph in \ref{['fig:temporal_graph']}. Temporal CSR is available for all vertices in the graph (incoming edges omitted for sake of clarity). In this example, TGER is used to index only the vertices with out or in-degree of at least two edges. In practice, Kairos only indexes vertices with much larger degrees.
  • Figure 4: Ordering predicates for each of the four possible two-hop directed paths on an example graph.
  • Figure 5: Queries in TGER are 3-sided. By default, an upper bound ( min-heap mode) is specified for start time, and a lower plus upper bound is specified for end time.
  • ...and 4 more figures