Micro B-tree Graph Database Storage
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Graph databases face inefficiencies in storing and retrieving complex relationship data, particularly when dealing with large numbers of nodes and edges, as existing methods like adjacency matrices and relational databases require extensive join operations for querying and data retrieval.
Innovation Solution
Modeling each node as a micro B-tree and storing node and edge data in page formats similar to relational database index pages, allowing for efficient storage and retrieval by using a B-tree index type page structure, with fixed and variable length slots to manage data effectively.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If adjacency matrices are used to represent graph databases, then graph relationships can be stored, but query operations become inefficient requiring extensive join operations
Solution Approach 1:
The patent segments the graph database into discrete nodes and edges stored in separate data structures. Each node contains references to its connected edges, creating a segmented representation that eliminates the need for extensive join operations while maintaining relationship integrity. This segmentation allows direct access to node and edge data without requiring matrix-based queries.
Solution Approach 2:
The patent transitions from the traditional two-dimensional adjacency matrix representation to a multi-dimensional structure where nodes, edges, and attributes exist in separate hierarchical layers. This dimensional transformation enables direct navigation through graph relationships without the computational overhead of matrix operations and join queries.
2Ease of manufacture
If relational databases are used to store graph data, then data can be organized in tables, but complex join operations are required for data retrieval
Solution Approach 1:
The patent extracts the relationship information from traditional relational table structures and stores it directly within node and edge data structures. By taking out the join logic from the query operation and embedding it in the data structure itself, the system maintains ease of data organization while eliminating complex join operations for retrieval.
Solution Approach 2:
The patent introduces node objects as intermediaries that directly reference their connected edges and attributes. This intermediary structure replaces the need for complex join operations between separate tables, as the node serves as a direct mediator that provides immediate access to all related graph data without requiring multi-table joins.
3Quantity of substance
If traditional storage methods are used for large numbers of nodes and edges, then data can be persisted, but storage and retrieval efficiency deteriorates
Solution Approach 1:
The patent performs preliminary organization of graph data during the storage phase by creating direct references and indices within node and edge structures. This preliminary action ensures that when large numbers of nodes and edges are stored, the retrieval operation can directly access the required data without performing time-consuming join operations or traversals through large data structures.
Data Source
AI summary
Techniques to store graph information in a database are disclosed. In various embodiments, each node in a graph may be modeled as a micro b-tree. Node identity, attribute, edge, and edge attribute data may be stored in one or more pages modeled on page formats typically used to store index data for a relational database index. Data associated with a plurality of nodes and edges, each of said edges representing a relationship between two or more of said nodes, may be received. For each node, one or more pages of data may be created, each corresponding to a prescribed page size associated with a storage device in which said one or more pages are to be stored, and each page having a data structure that includes a variable-sized set of fixed length data slots and a variable-sized variable length data region.


