Space-optimized forest graph database write conflict resolution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Graph database systems face significant challenges with concurrent write conflicts, especially in applications like social media platforms where high-activity users generate frequent update requests, leading to substantial storage space wastage when separate tree graphs are allocated for each user.
Innovation Solution
Implementing a space-optimized forest graph database system that initializes with an initial tree graph and splits off high-activity data entries into separate tree graphs based on predetermined criteria, such as query frequency or activity thresholds, while using a hash table to manage pointers to these tree graphs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If separate tree graphs are allocated for each user to reduce write conflicts, then concurrent write throughput is improved, but storage space efficiency deteriorates due to substantial space wastage
Solution Approach 1:
The patent segments the single tree graph into multiple separate tree graphs based on user activity levels. High-activity users are routed to dedicated tree graphs while low-activity users share the initial tree graph, thereby reducing write conflicts for active users without allocating separate graphs to all users, thus maintaining storage efficiency.
Solution Approach 2:
The patent applies different storage strategies to different user groups based on their activity characteristics. High-activity users receive dedicated tree graphs with localized optimization for write operations, while low-activity users continue to use the shared initial tree graph, creating local quality improvements where needed without global overhead.
2Loss of substance
If an initial tree graph stores all data entries to save storage space, then storage efficiency is improved, but write conflict increases due to concurrent update requests from high-activity users
Solution Approach 1:
The patent implements a dynamic routing mechanism that determines which tree graph to use based on the user's activity level. The system can dynamically identify high-activity users and route them to appropriate tree graphs, making the storage structure adaptive rather than static, thereby balancing storage efficiency and write performance.
Solution Approach 2:
The patent introduces an intermediary layer (the routing mechanism using hash tables and pointers) that mediates between the user's write request and the appropriate tree graph. This intermediary intelligently directs high-activity users to dedicated graphs while maintaining the initial tree graph for others, resolving the conflict between storage efficiency and write performance.
3Productivity
If separate tree graphs are created for high-activity users to reduce write conflicts, then concurrent write throughput is improved, but device complexity increases due to multiple tree graphs and hash table management
Solution Approach 1:
The patent creates a universal initial tree graph that serves multiple purposes: it stores data for low-activity users and acts as a fallback for high-activity users whose activity level hasn't yet triggered separate graph creation. This multi-functional structure reduces complexity by having one graph perform multiple roles.
Solution Approach 2:
The patent uses hash tables and pointers as lightweight copies or references to tree graphs rather than creating full duplicate structures. The hash table stores only metadata (pointers) to the actual tree graphs, minimizing the overhead and complexity of managing multiple tree graphs while still providing the benefits of separation.
Data Source
AI summary
Implementations for a space-optimized graph database system are provided. One implementation includes a computing system comprising: processing circuitry and memory storing instructions that causes the processing circuitry to: store a graph database comprising an initial tree graph storing a plurality of data entries, each data entry comprising a respective field identifier; receive a query to update the graph database, wherein the query comprises a request to add a new data entry; determine a splitting event to perform based on one or more predetermined criteria; generate a new tree graph corresponding to a field identifier of the new data entry by splitting off a subset of the plurality of data entries of the initial tree graph, wherein the subset comprises all data entries of the initial tree graph that correspond to the field identifier of the new data entry; and update the new tree graph in accordance with the query.


