UUID Generation in Distributed Graph Database Using Murmur Hash
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Distributed graph databases face challenges with duplicate key values in UUID generation, leading to limitations in database extension and potential global service malfunctions.
Innovation Solution
A UUID generation method using the Murmur hash function, which generates an initial UUID based on input fields and partition numbers, and checks for duplicates, appending a current timestamp to create a unique target UUID if necessary, ensuring global uniqueness and avoiding conflicts.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If a traditional stand-alone UUID generation method is used in a distributed database system, then the implementation is simple, but duplicate key values occur and the database extension is limited
Solution Approach 1:
The UUID generation is segmented into multiple components: database node identifier, table identifier, and sequence number. This segmentation allows each component to serve a specific function while collectively ensuring global uniqueness across the distributed system without requiring complex centralized coordination.
Solution Approach 2:
The patent introduces a new dimension by incorporating the database node identifier as a distinct component in the UUID structure. This dimensional addition transforms the UUID from a locally-unique identifier to a globally-unique identifier across distributed nodes, solving the uniqueness problem without increasing system complexity.
2Reliability
If a global service increment is used to allocate UUID in a distributed database, then global uniqueness can be achieved, but the system becomes vulnerable to service malfunction and single point of failure
Solution Approach 1:
The patent extracts the node identifier component from the centralized global service and embeds it directly in the UUID generation process at each node. This extraction eliminates the single point of failure by allowing each node to independently generate unique UUIDs while maintaining global uniqueness, without requiring complex centralized coordination.
Solution Approach 2:
Each database node performs self-service by incorporating its own identifier into the UUID generation process. This self-service mechanism allows nodes to independently generate globally unique UUIDs without relying on external centralized services, improving system reliability and fault tolerance.
3Reliability
If UUID generation relies on centralized control, then uniqueness can be maintained, but the generation speed and efficiency decrease
Solution Approach 1:
The database node identifier is predetermined and stored locally at each node before UUID generation is needed. This preliminary action allows nodes to immediately incorporate the node identifier into UUID generation without network communication or centralized coordination, significantly improving generation speed while maintaining uniqueness.
Solution Approach 2:
Each node independently generates UUIDs using its own local resources and pre-stored node identifier, eliminating the need for centralized UUID allocation services. This self-service approach dramatically improves generation speed and efficiency while maintaining global uniqueness through the distributed node identifier component.
Data Source
AI summary
A UUID generation method for a distributed graph database, and a data processing method and apparatus for the distributed graph database. The UUID generation method for the distributed graph database comprises the following steps: receiving a UUID generation request, wherein the UUID generation request comprises an input field and a partition number of the input field; calling a Murmur hash function to generate an initial UUID according to the input field and the partition number of the input field; querying whether a duplicate key value exists between the initial UUID and a historical UUID to obtain a query result; and obtaining a target UUID for storage according to the query result and the initial UUID.


