Post

[Note]Triangle Counting over Large-scale Directed Graphs

What problem?

Exact and scalable triangle counting on large-scale directed graphs, where triangles have seven different types determined by edge directions and the graph may be too large for a single machine.

Defects of previous solution

Existing solutions are mostly designed for undirected graphs.

Existing degree-based pruning methods such as NodeIter++ and EdgeIte++ can undercount triangle when multiple vertices have equal degrees, while vertex-centric approaches can generate huge numbers of candidates and severe data skew.

Core innovation

The paper proposes T-COUNT, a distributed edge-centric algorithm with three main ideas: (1) duplicate and tag edges as OUT, IN, or RE to recover direction/reciprocity information; (2) use a two-step ordering based on vertex degree and vertex ID to reduce neighbor tables while guaranteeing each triangle is counted exactly once; and (3) infer one of the seven directed-triangle types from the three edge tags using a lookup table.

Unresolved vulnerabilities and possible improvement

This part is more interesting because the paper itself does not explicitly present a limitations section. The following are therefore my analysis based on its design and experiments.

  • CPU/MapReduce-oriented implementation. T-COUNT is implemented using GraphX/MapReduce on CPU clusters; although the authors say it could be implemented on other graph engines, they do not evaluate GPU or multi-GPU implementations.

    Possible improvement: investigate a GPU/multi-GPU T-COUNT variant, particularly whether its edge-centric neighbor intersections and triangle-type lookup can be efficiently mapped to GPU kernels while minimizing inter-GPU communication.

  • Communication and memory overhead remain important. T-COUNT first duplicates every directed edge and later performs distributed groupBy/join operations on neighbor tables. On very large graphs, these operations can increase intermediate storage, network traffic, and synchronization costs even though the two-step reduction decreases later computation.

    Possible improvement: compressed adjacency representations, communication-aware graph partitioning, or locality-aware placement of high-degree vertices.

  • Load balancing is only partially addressed. The degree-based reduction substantially reduces the problems caused by super vertices, but real-world power-law graphs can still create highly uneven neighbor-intersection workloads; the evaluation itself emphasizes candidate skew and very large candidate sets as major causes of failure for competing methods.

    Possible improvement: workload-aware partitioning or splitting the processing of high-degree vertices/edges across workers or GPUs rather than assigning work mainly according to graph partitions.

  • Only static, exact triangle counting is considered. T-COUNT assumes a graph dataset is processed as a whole; the paper does not develop incremental algorithms for continuously changing directed graphs.

    Possible improvement: an incremental T-COUNT that updates the seven triangle counts after edge insertion/deletion rather than recomputing the entire graph.

This post is licensed under CC BY 4.0 by the author.