Distributed Graph Sharding for Scalable Shortest Path Computation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems for computing shortest paths in large weighted digraphs are not scalable and cannot efficiently handle machine failures, especially when dealing with graphs having trillions of edges and nodes, as they rely on shared memory models and are limited to in-memory graph data.

Innovation Solution

A distributed system that computes single source and multiple source shortest paths across thousands of computers, using a distributed environment where each server processes a shard of the graph data stored on disk, with mechanisms for efficient recovery from machine failures and propagation of distance updates.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If shared memory models and in-memory graph data are used, then computation speed is improved, but scalability and fault tolerance deteriorate

Engineering Contradiction:
Improvecomputation speedVSAvoidscalability
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The patent divides the graph data into shards distributed across multiple machines, with each machine processing a portion of the graph independently. This segmentation enables the system to scale to trillions of edges by distributing the computational load across thousands of computers while maintaining computation speed through parallel processing.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from a single-machine in-memory computation model to a distributed multi-machine architecture, adding the dimension of network distribution. This allows the system to handle graphs too large for single-machine memory while maintaining computational efficiency through coordinated distributed processing.

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

2Speed

If shared memory models are used, then computation speed is improved, but fault tolerance deteriorates

Engineering Contradiction:
Improvecomputation speedVSAvoidfault tolerance
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent implements checkpointing mechanisms where machines periodically save their computation state to durable storage. When a machine failure occurs, the system detects the failure and restores computation from the last checkpoint, ensuring fault tolerance while minimizing computation speed impact through efficient state recovery.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent prepares for potential failures by implementing redundant computation paths and pre-computed checkpoints before failures occur. This allows the system to recover from machine failures without losing significant computation progress, maintaining both reliability and overall computation speed.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

3Speed

If in-memory graph data is used, then computation speed is improved, but graph size capacity deteriorates

Engineering Contradiction:
Improvecomputation speedVSAvoidgraph size capacity
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent segments the large graph data into smaller shards that can be stored and processed distributedly across multiple machines. Each machine maintains in-memory data structures for its assigned shard, enabling the system to handle graphs with trillions of edges by distributing the data capacity across the cluster while maintaining fast in-memory computation for each partition.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent moves from single-machine memory constraints to distributed network storage, adding the dimension of distributed data capacity. This allows the system to handle graphs exceeding the memory capacity of any single machine while maintaining computation speed through efficient distributed data access and processing.

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

4Quantity of substance

If distributed environment across many machines is used, then graph size capacity is improved, but system complexity increases

Engineering Contradiction:
Improvegraph size capacityVSAvoidsystem complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent implements a universal shard server architecture where each machine performs multiple functions: storing graph data, processing computations, managing checkpoints, and handling failure recovery. This multi-functionality reduces overall system complexity by eliminating the need for specialized components for each function while maintaining distributed graph size capacity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent enables machines to autonomously manage their own computation state, checkpoint creation, and failure recovery without requiring complex centralized coordination. Each shard server independently handles its portion of the graph and can recover from failures using its own checkpoints, reducing the complexity of distributed system management while maintaining large graph processing capability.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9400849B1Scalable system for determining short paths within web link network
Publication Date: 2016.07.26 GOOGLE LLC
  • US9400849B1 patent drawing
  • US9400849B1 patent drawing
  • US9400849B1 patent drawing

AI summary

Systems and methods for finding multiple shortest paths. A directed graph representing web resources and links are divided into shards, each shard comprising a portion of the graph representing multiple web resources. Each of the shards is assigned to a server, and a distance table is calculated in parallel for each of the web resources in each shard using a nearest seed computation in the server to which the shard was assigned.