Distributed Graph Computation via Two-Phase Vertex Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional graph data computation systems require a large number of computational steps, leading to inefficiencies when processing large data sets, as the number of paths to consider increases rapidly with the size of the data set, resulting in slow processing times.

Innovation Solution

A distributed graph computation system that employs a two-phase computational cycle, separating reading from writing to simplify synchronization among processors, and partitions edge and vertex collections among multiple computational units, allowing for efficient edge and vertex attribute calculations and updates.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If conventional iterative graph computation is used to ensure accurate path traversal, then computation accuracy is maintained, but processing time increases significantly

Engineering Contradiction:
Improvecomputation accuracyVSAvoidprocessing time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent segments the graph computation into independent vertex processing units that can operate in parallel. Each vertex processing unit handles specific vertices independently, allowing simultaneous computation across multiple vertices rather than sequential iteration through the entire graph. This segmentation enables accurate path traversal to occur concurrently, maintaining computation accuracy while dramatically reducing processing time.

Inventive Principle:
Principle #1Segmentation

2Quantity of substance

If the number of vertices and edges increases to handle larger data sets, then data coverage is improved, but the number of computational paths increases at a faster rate

Engineering Contradiction:
Improvedata coverageVSAvoidcomputation speed
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent transitions from sequential iteration (one-dimensional processing) to parallel processing across multiple vertex processing units (adding spatial dimension). By distributing vertices across multiple independent processing units that operate simultaneously, the system can handle larger data sets with more vertices and edges without the computational paths increasing at a faster rate, as parallel execution offsets the increased path complexity.

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

3Productivity

If distributed computation is implemented to improve processing speed, then productivity increases, but synchronization complexity and race conditions may arise

Engineering Contradiction:
Improveprocessing speedVSAvoidsynchronization complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the graph into independent vertex processing units, each responsible for specific vertices and their outgoing edges. This segmentation creates natural isolation boundaries that minimize inter-unit dependencies and synchronization requirements. Each processing unit can update vertex states independently based on its local computations, reducing race conditions and synchronization complexity while maintaining high processing speed through parallel execution.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10120956B2Methods and systems for distributed computation of graph data
Publication Date: 2018.11.06 TIGERGRAPH INC
  • US10120956B2 patent drawing
  • US10120956B2 patent drawing
  • US10120956B2 patent drawing

AI summary

Methods and systems for distributed computation of graph data permit edge collection and vertex collection, each to be partitioned among a plurality of computational units. In one embodiment, the methods employ a two-phase computational cycle, which is repeated until the computation is complete. In a first phase, processing units process each active edge and vertex by doing the following: reading their current attribute values, executing programmed computational functions, updating edge attributes and sending data messages to vertices. In a second phase, each vertex update processor processes each of its active vertices by doing the following: reading its current attribute values and received data messages, executing a programmed computational function, and updating the vertex's attribute values.