Graph Triangle Counting via Neighbor List Pruning

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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)

Engineering Contradiction:
Improvetriangle counting speedVSAvoidcomputation time
Core Design Contradiction:
ProductivityVSLoss of time

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #10Preliminary action

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)

Engineering Contradiction:
Improvegraph analysis applicabilityVSAvoidhardware resources
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS10157239B2Finding common neighbors between two nodes in a graph
Publication Date: 2018.12.18 ORACLE INT CORP
  • US10157239B2 patent drawing
  • US10157239B2 patent drawing
  • US10157239B2 patent drawing

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.