Graph Triangle Counting via Neighbor List Pruning
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional systems face significant computational challenges and latency when counting triangles in graphs, requiring extensive hardware resources and time, making them unsuitable for efficient graph analysis.
Innovation Solution
The techniques involve identifying common neighbors between nodes using binary splitting, segmenting indices, pruning neighbor lists, and compiler optimizations to reduce computational complexity and improve efficiency in counting triangles.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If conventional systems are used to count triangles in a graph, then the computation can be performed using standard hardware, but the computation time becomes excessively long (over six hours) and requires extensive hardware resources (over 1,000 Hadoop nodes)
Solution Approach 1:
The patent divides the graph processing task into multiple segments by partitioning the graph data across different computing nodes. Each node processes a specific portion of the graph (specific triangles or graph partitions), and results are aggregated. This segmentation enables parallel processing, dramatically reducing computation time from hours to minutes while using fewer hardware resources.
Solution Approach 2:
The patent performs preliminary actions by pre-computing and storing intermediate results such as triangle counts for specific graph partitions or preprocessing graph data into optimized formats before the main counting operation. This preliminary preparation reduces the computational burden during the actual triangle counting process, enabling faster execution.
2Adaptability or versatility
If conventional triangle counting methods are implemented, then the approach can be applied to any graph, but the hardware requirements become prohibitively large (over 1,000 Hadoop nodes)
Solution Approach 1:
The patent segments the graph processing workload across a reduced number of computing nodes, with each node handling specific graph partitions. This segmentation maintains the ability to process diverse graph types and sizes while reducing the total hardware requirements from 1,000+ nodes to a manageable cluster, preserving adaptability across different graph analysis applications.
Solution Approach 2:
The patent introduces a new dimensional approach by organizing graph processing in multiple dimensions: partitioning graphs spatially across nodes, dividing triangle counting into overlapping and non-overlapping categories, and using multi-level aggregation. This dimensional restructuring enables efficient processing on smaller hardware clusters while maintaining versatility for various graph types and analysis tasks.
Data Source
AI summary
Techniques for identifying common neighbors of two nodes in a graph are provided. One technique involves performing a binary split search and/or a linear search. Another technique involves creating a segmenting index for a first neighbor list. A second neighbor list is scanned and, for each node indicated in the second neighbor list, the segmenting index is used to determine whether the node is also indicated in the first neighbor list. Techniques are also provided for counting the number of triangles. One technique involves pruning nodes from neighbor lists based on the node values of the nodes whose neighbor lists are being pruned. Another technique involves sorting the nodes in a node array (and, thus, their respective neighbor lists) based on the nodes' respective degrees prior to identifying common neighbors. In this way, when pruning the neighbor lists, the neighbor lists of the highly connected nodes are significantly reduced.


