Graph Database Encoding for Scalable Triple Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current graph database systems face scalability issues, limited range queries, and sub-optimal distributed processing due to inefficient storage and processing of triples, particularly when dealing with large datasets like telephone records or social network data, which require extensive memory and lack efficient mechanisms for range queries and parallel loading.

Innovation Solution

The method involves encoding each tuple-part into a unique part identifier (UPI) with a tag denoting the datatype and using immediate values for numeric data, allowing for efficient storage and sorting, and generating sorted indices to facilitate graph algorithms, enabling scalable graph database creation and pattern analysis.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If triples are stored as strings in tables with individual indexing, then data storage is straightforward, but storage cost and processing overhead increase significantly

Engineering Contradiction:
Improveease of data storageVSAvoidstorage cost and processing overhead
Core Design Contradiction:
Ease of manufactureVSQuantity of substance

Solution Approach 1:

The patent changes the data representation parameter from string-based triples to a compact binary format where each triple is encoded as a fixed-size structure with type identifiers and direct value storage. This parameter transformation reduces storage overhead and eliminates the need for string comparisons while maintaining data integrity.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent extracts the type information from the string data and separates it into distinct type identifier fields. By taking out the type information and storing it separately as integers, the system eliminates the need for string-to-number mappings and reduces processing overhead associated with type checking.

Inventive Principle:
Principle #2Taking out (Extraction)

2Adaptability or versatility

If range queries are implemented on numeric values, then query capability improves, but existing triple-store systems lack this functionality

Engineering Contradiction:
Improverange query capabilityVSAvoidsystem functionality
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent changes the storage parameter for numeric values from string representation to direct binary encoding. This allows numeric values to maintain their ordinal properties directly in storage, enabling range queries to be performed by simple binary comparisons rather than requiring complex string parsing and conversion operations.

Inventive Principle:
Principle #35Parameter changes

3Ease of operation

If string-to-number mappings are used for part identifiers, then data identification is simplified, but memory requirements become excessive for large datasets

Engineering Contradiction:
Improvedata identificationVSAvoidmemory requirements
Core Design Contradiction:
Ease of operationVSQuantity of substance

Solution Approach 1:

The patent extracts the type information from string data and stores it as separate integer type identifiers. This separation eliminates the need for string-to-number mapping tables, significantly reducing memory requirements while maintaining efficient data identification through the compact binary format.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Instead of using expensive string-to-number mapping tables that require extensive memory, the patent uses a disposable-like approach where type information is embedded directly in the binary triple structure as small integer fields, eliminating the need for large lookup tables.

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

4Productivity

If distributed processing is implemented, then processing capability scales, but existing systems lack efficient distributed processing mechanisms

Engineering Contradiction:
Improveprocessing capabilityVSAvoiddistributed processing mechanisms
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the triple storage into distributed components where each node stores a portion of the total triples in the same binary format. This segmentation enables parallel loading and processing across multiple machines while maintaining consistency through the unified binary representation that can be efficiently serialized and transmitted.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS7890518B2Method for creating a scalable graph database
Publication Date: 2011.02.15 FRANZ INC
  • US7890518B2 patent drawing
  • US7890518B2 patent drawing
  • US7890518B2 patent drawing

AI summary

Embodiments of a method for creating a graph database which is arranged to store or process data in the form of graph tuples comprising n-parts, are described. In an embodiment, each tuple-part is encoded into a unique part identifier (hereinafter called a UPI), each UPI comprises a tag at a fixed position within the UPI. The tag indicates the datatype of the encoded tuple-part. The content data for the tuple-part is encoded in a code that is configured to reflect the ranking or order of the content data, corresponding to each datatype, relative to other tuples in a set of tuples. For content data that comprises a character-string, the code comprises a hashcode; and for content data that comprises or includes a numeric value, the code comprises an immediate value that directly stores the numeric value without encoding.