Location-Independent Object Identifiers for Distributed Graph Database Performance
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing distributed graph databases face challenges in efficiently modeling and replicating location-independent object identifiers across a network, leading to suboptimal performance and scalability due to reliance on string-based identifiers and centralized systems.
Innovation Solution
The implementation of location-independent object identifiers (OIDs) with a unique OID-identifier, OID-source structure, and OID-pointer, allowing for efficient distribution and replication across a network, enabling fast traversals and lookups without requiring centralized ID generators or consensus algorithms.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If string-based identifiers are used in distributed graph databases, then object identification can be implemented, but performance and scalability deteriorate due to centralized ID generators and consensus algorithms
Solution Approach 1:
The identifier system is segmented into multiple components: data center identifier, cluster identifier, and object identifier. This segmentation eliminates the need for centralized ID generators by distributing identifier generation across multiple independent segments, thereby improving database performance while maintaining reliable object identification.
Solution Approach 2:
A hierarchical identifier structure acts as an intermediary between distributed objects and the database system. This intermediary structure enables direct object reference without requiring centralized coordination or consensus algorithms, resolving the contradiction between reliable identification and performance.
2Reliability
If centralized ID generators are used to ensure unique object identifiers, then object identification reliability is improved, but system complexity and scalability worsen
Solution Approach 1:
The identifier generation process is segmented into hierarchical levels (data center, cluster, object), allowing each level to independently generate its portion of the identifier. This eliminates centralized ID generators while ensuring uniqueness through the combination of segmented components, reducing system complexity.
Solution Approach 2:
Each distributed node or cluster autonomously generates its own identifier segment based on its hierarchical position, eliminating the need for centralized ID generation services. This self-service approach maintains identifier uniqueness while significantly reducing system architecture complexity.
3Ease of operation
If location-dependent identifiers are used, then object location tracking is simplified, but network-wide replication and distribution performance deteriorate
Solution Approach 1:
The hierarchical identifier structure serves as an intermediary that encodes location information without requiring explicit location tracking. The data center and cluster segments implicitly indicate object location, simplifying location tracking while enabling efficient network-wide replication and distribution.
4Speed
If memory-mapped regions with pointers are implemented, then object access speed is improved, but memory efficiency and bandwidth usage worsen
Solution Approach 1:
The memory-mapped region structure is segmented into hierarchical segments corresponding to the identifier levels. This segmentation allows for more efficient memory utilization by mapping only relevant portions of the database to memory, improving object access speed while reducing overall memory consumption and bandwidth usage.
Data Source
AI summary
In one embodiment, an operating system (on a computer device in a network of computer devices) interfaces with a distributed graph database that is distributed across the network of computer devices, and executes an application that has one or more parent data constructs that reference one or more child objects within the distributed graph database. Specifically, the one or more child objects each have a location-independent object identifier (OID) having at least: a) an OID-identifier (OID-ID) assigned upon creation to each particular child object by a data source of the location-independent OID; b) an OID-source structure that uniquely identifies the data source of the location-independent OID within the network of computer devices; and c) an OID-pointer indicative of a relative location of the particular child object in a memory mapped region. Accordingly, the operating system accesses the child objects (e.g., for an application) based on the location-independent OID.


