Column-Oriented Graph Data Storage Engine

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Graph databases face limitations in scalability and computing performance when storing and retrieving graph data, making it desirable to store graph data in a column-oriented data store to improve these aspects.

Innovation Solution

A column-oriented data store population engine is used, comprising a row assignment engine, a column assignment engine, and an ID assignment engine, which assigns and populates vertex and edge rows with specific column families and IDs, allowing efficient storage and retrieval of graph data by separating vertex and edge data into distinct columns and sub-rows.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If graph data is stored in a graph database, then graph relationships can be represented using vertices and edges, but scalability and computing performance deteriorate

Engineering Contradiction:
Improvegraph data representation capabilityVSAvoidcomputing performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent introduces a column-oriented data store as an intermediary system between graph data representation needs and computing performance requirements. This intermediary converts graph database structures into column-oriented formats, enabling efficient storage and retrieval while maintaining graph relationship semantics through structured column families and row assignments.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Stability of the object's composition

If graph data is stored in a graph database, then graph structures can be maintained, but scalability deteriorates

Engineering Contradiction:
Improvegraph structure integrityVSAvoidscalability
Core Design Contradiction:
Stability of the object's compositionVSAdaptability or versatility

Solution Approach 1:

The patent applies segmentation by dividing graph data into distinct column families (vertex column families, edge column families) and further segmenting them into specific columns (e.g., vertex ID, edge ID, properties). This segmentation enables independent scaling of different data types while preserving graph structure integrity through systematic row assignments and foreign key relationships.

Inventive Principle:
Principle #1Segmentation

3Adaptability or versatility

If graph data is stored in a column-oriented data store, then scalability improves, but data structure complexity increases

Engineering Contradiction:
ImprovescalabilityVSAvoiddata storage structure complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements universality by designing column families that can serve multiple functions. For example, vertex column families store both vertex identification data and edge reference data, while edge column families maintain both directional and property information. This multi-functionality reduces the number of separate structures needed while preserving scalability benefits.

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

Data Source

PatentUS9128967B2Storing graph data in a column-oriented data store
Publication Date: 2015.09.08 ACCENTURE GLOBAL SERVICES LTD
  • US9128967B2 patent drawing
  • US9128967B2 patent drawing
  • US9128967B2 patent drawing

AI summary

Methods and apparatuses are provided for storing graph data within a column-oriented data store. Graph data including vertex data describing one or more vertices in the graph and edge data describing one or more edges within the graph may be received. One or more vertex rows within the column-oriented data store may be assigned, whereby each vertex row of the one or more vertex rows is assigned to one vertex of the one or more vertices. One or more edge rows within the column-oriented data store may also be assigned, whereby each edge row of the one or more edge rows is assigned to one edge of the one or more edges. At least one vertex row and at least one edge row may be populated based on the graph data.