In-Memory Graph Analytics: Navigation Data Structures for Traversal and Mutation Trade-offs

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional graph processing systems are optimized for either transactional or analytic workloads but not both, leading to inefficiencies in updating and analyzing large graphs, particularly in real-time data analysis scenarios where fast analysis and quick updates are required.

Innovation Solution

The implementation of navigation data structures such as source vertex arrays, neighbor arrays, and bidirectional maps to accelerate traversal, mutation, and versioning of directed graphs, allowing for efficient traversal, update, and version management by decoupling change specification from execution and maintaining multiple graph versions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If an in-memory graph analytics system is used to enable fast analysis, then analysis speed is improved, but memory consumption increases and graph mutation becomes inefficient

Engineering Contradiction:
Improveanalysis speedVSAvoidmemory consumption
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent segments the graph data structure into multiple versions stored in memory, allowing the system to maintain fast in-memory access while managing memory consumption through version pruning and selective retention. Each graph version is independently manageable, enabling efficient memory utilization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary actions by pre-computing and storing graph snapshots at different versions before mutations occur. This allows rapid analysis at any point in time without requiring real-time computation during queries, improving analysis speed while managing memory through planned snapshot retention.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If graph mutations are performed frequently to support real-time updates, then update capability is improved, but system performance and stability deteriorate

Engineering Contradiction:
Improveupdate capabilityVSAvoidsystem performance
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system creates graph snapshots before mutations occur, preserving the original state. This preliminary action allows mutations to proceed without disrupting ongoing analyses, maintaining system performance and stability while enabling frequent updates.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates copies of graph data at different versions through snapshotting. These copies allow mutations to be applied to one version without affecting other versions, enabling frequent updates while maintaining system reliability through isolation of mutation operations.

Inventive Principle:
Principle #26Copying

3Adaptability or versatility

If multiple graph versions are maintained to support versioning, then version management capability is improved, but memory consumption increases

Engineering Contradiction:
Improveversion management capabilityVSAvoidmemory consumption
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent segments graph versions into discrete, independently managed snapshots. Each version is a separate entity that can be retained or discarded independently, allowing versatile version management while controlling memory consumption through selective retention policies.

Inventive Principle:
Principle #1Segmentation

4Manufacturing precision

If graph data is materialized from original graph and change set to create snapshots, then snapshot accuracy is improved, but processing time increases

Engineering Contradiction:
Improvesnapshot accuracyVSAvoidprocessing time
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

The system performs preliminary materialization of graph snapshots before they are needed for analysis. By pre-computing and storing accurate graph states at different versions, the system ensures snapshot accuracy while avoiding time-consuming processing during actual analysis operations.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11068538B2In-memory graph analytics system that allows memory and performance trade-off between graph mutation and graph traversal
Publication Date: 2021.07.20 ORACLE INT CORP
  • US11068538B2 patent drawing
  • US11068538B2 patent drawing
  • US11068538B2 patent drawing

AI summary

Techniques herein are for navigation data structures for graph traversal. In an embodiment, navigation data structures that a computer stores include: a source vertex array of vertices; a neighbor array of dense identifiers of target vertices terminating edges; a bidirectional map associating, for each vertex, a sparse identifier of the vertex with a dense identifier of the vertex; and a vertex array containing, when a dense identifier of a source vertex is used as an offset, a pair of offsets defining an offset range, for use with the neighbor array. The source vertex array, using the dense identifier of a particular vertex as an offset, contains an offset, into a neighbor array, of a target vertex terminating an edge originating at the particular vertex. The neighbor array contiguously stores dense identifiers of target vertices terminating edges originating from a same source vertex.