Connected Component Finder Iterative Deduplication for Massive Graphs

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing graph mining and record linkage techniques face challenges in efficiently processing large-scale data, particularly in finding connected components in massive graphs with high diameters, which is crucial for applications like social network analysis and record linkage in systems with billions of records.

Innovation Solution

A Connected Component Finder (CCF) module is developed using the MapReduce framework, specifically implemented as a series of Hadoop jobs, employing the CCF-Iterate and CCF-Dedup processes to iteratively find and deduplicate connected components, optimizing performance by reducing the number of iterations and memory usage, thus scaling to graphs with billions of nodes and edges.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If MapReduce approaches are used to find connected components in massive graphs, then scalability to billions of records is achieved, but the number of iterations required increases computational time

Engineering Contradiction:
Improveprocessing speedVSAvoiditeration time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by performing deduplication of edge lists before initiating the connected component iteration process. The CCF-Dedup module removes duplicate edges from the input graph representation, reducing the total number of edges that need to be processed during iterations. This preprocessing step decreases the workload in subsequent CCF-Iterate operations, thereby reducing the number of iterations needed and overall computational time while maintaining scalability to billions of records.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If existing graph mining techniques are applied to massive graphs, then connected components can be found, but memory usage becomes excessive

Engineering Contradiction:
Improveaccuracy of connected component findingVSAvoidmemory usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent applies segmentation by dividing the connected component finding process into distinct modular stages: CCF-Iterate for iterative component identification and CCF-Dedup for deduplication. Each module processes data in a distributed manner across multiple nodes, with intermediate results written to disk rather than held in memory. This segmentation allows the system to handle massive graphs by processing subsets of data independently and aggregating results, thereby maintaining accuracy while reducing peak memory usage to manageable levels.

Inventive Principle:
Principle #1Segmentation

3Measurement precision

If the diameter of the graph is large, then more MapReduce iterations are needed, but this increases computational overhead

Engineering Contradiction:
Improvecompleteness of connected component identificationVSAvoidcomputational overhead
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent applies parameter changes by dynamically adjusting the iteration process based on graph characteristics. The CCF-Iterate module continues iterating until convergence, but the deduplication process modifies the effective graph parameters by removing redundant edges, which reduces the effective diameter and connectivity requirements. This parameter modification allows the algorithm to converge faster on graphs with originally large diameters, reducing computational overhead while maintaining complete identification of all connected components.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10157429B2Fast and scalable connected component computation
Publication Date: 2018.12.18 INTELIUS INC
  • US10157429B2 patent drawing
  • US10157429B2 patent drawing
  • US10157429B2 patent drawing

AI summary

Finding connected components in a graph is a well-known problem in a wide variety of application areas such as social network analysis, data mining, image processing, and etc. We present an efficient and scalable approach to find all the connected components in a given graph. We compare our approach with the state-of-the-art on a real-world graph. We also demonstrate the viability of our approach on a massive graph with ˜6B nodes and ˜92B edges on an 80-node Hadoop cluster. To the best of our knowledge, this is the largest graph publicly used in such an experiment.