Multi-Source Breadth-First Search Code Generation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing graph analysis systems face inefficiencies due to redundant processing when running multiple breadth-first searches (BFS) from different source vertices, particularly in distributed systems where managing execution context and inter-machine communication is complex, leading to increased time, space, and energy costs.

Innovation Solution

An automated method for generating multi-source breadth-first search (MS-BFS) instructions from high-level graph processing languages, which transforms original software instructions to enable independent execution of BFS instances, optimizing node and neighbor iteration loops for distributed graph processing engines, thereby reducing redundant processing and facilitating transparent and efficient execution in distributed systems.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple BFS are run independently in existing systems, then each BFS can be executed separately, but redundant processing occurs leading to increased time, space, and energy costs

Engineering Contradiction:
Improvegraph analysis efficiencyVSAvoidenergy cost
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent combines multiple independent BFS executions into a single multi-source BFS traversal by merging their execution contexts. The system maintains separate execution contexts for each BFS instance within a unified traversal framework, allowing shared computation of common graph paths while preserving the ability to execute different user logic for each source vertex. This eliminates redundant processing of identical graph structures across multiple BFS runs.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent creates a universal MS-BFS execution context that can handle multiple BFS instances simultaneously. The execution context is designed to be multi-functional, supporting arbitrary user-specified processing logic for each visited node or edge while managing multiple source vertices. This universal context allows the system to perform different graph analysis tasks (closeness centrality, betweenness centrality, etc.) using a single unified traversal mechanism.

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

2Productivity

If MS-BFS technique is applied to distributed graph processing systems, then computation can be shared across multiple BFS traversals, but the complexity of managing execution context and inter-machine communication increases

Engineering Contradiction:
Improvecomputation efficiencyVSAvoidcode complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements self-service mechanisms within the execution context that automatically manage the complexities of distributed MS-BFS. The system includes automated partition awareness, dynamic message routing, and intelligent synchronization control that eliminates the need for manual code integration. The execution context autonomously handles inter-machine communication by generating and routing messages to appropriate partitions, and automatically synchronizes state across distributed nodes without requiring complex user-coded coordination logic.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent introduces an intermediary execution context layer between user logic and the distributed graph processing infrastructure. This intermediary manages all complex interactions with the distributed system, including partition-specific processing, message passing between machines, and synchronization barriers. User code interacts only with this simplified interface, while the intermediary handles the complexity of coordinating multiple BFS traversals across the distributed cluster, effectively shielding users from system complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If manual code integration is required for MS-BFS, then users can customize processing logic, but the ease of operation decreases due to non-straightforward execution context management

Engineering Contradiction:
Improveprocessing customizationVSAvoidcode integration ease
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The patent implements dynamic execution contexts that can be configured at runtime for each BFS instance. The system allows users to dynamically specify processing logic for visited nodes and edges, termination conditions, and other parameters without requiring static code integration. The execution context adapts to different user requirements by loading and executing different user-specified functions during the traversal, providing maximum versatility through a simple, uniform interface that maintains ease of operation.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10795672B2Automatic generation of multi-source breadth-first search from high-level graph language for distributed graph processing systems
Publication Date: 2020.10.06 ORACLE INT CORP
  • US10795672B2 patent drawing
  • US10795672B2 patent drawing
  • US10795672B2 patent drawing

AI summary

Techniques are described herein for automatic generation of multi-source breadth-first search (MS-BFS) from high-level graph processing language that can be executed in a distributed computing environment. In an embodiment, a method involves a computer analyzing original software instructions. The original software instructions are configured to perform multiple breadth-first searches to determine a particular result. Each breadth-first search originates at each of a subset of vertices of a graph. Each breadth-first search is encoded for independent execution. Based on the analyzing, the computer generates transformed software instructions configured to perform a MS-BFS to determine the particular result. Each of the subset of vertices is a source of the MS-BFS. In an embodiment, the second plurality of software instructions comprises a node iteration loop and a neighbor iteration loop, and the plurality of vertices of the distributed graph comprise active vertices and neighbor vertices. The node iteration loop is configured to iterate once per each active vertex of the plurality of vertices of the distributed graph, and the node iteration loop is configured to determine the particular result. The neighbor iteration loop is configured to iterate once per each active vertex of the plurality of vertices of the distributed graph, and each iteration of the neighbor iteration loop is configured to activate one or more neighbor vertices of the plurality of vertices for the following iteration of the neighbor iteration loop.