Cluster Unique Identifier Generation via Segmented Node IDs
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In a server cluster, ensuring unique identifiers for files across multiple servers is challenging, especially when one server fails, as existing methods are inefficient and impractical to check every node for identifier uniqueness, and identifiers must comply with specific protocols.
Innovation Solution
A 64-bit unique identifier system is implemented, comprising a node identifier, a major sequence number, and minor sequence numbers, where the major sequence number increments upon server reboot or offline status change, and minor sequence numbers are reused within a range, ensuring uniqueness and protocol compliance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a server cluster checks every identifier among all nodes before generating an identifier to ensure uniqueness, then identifier uniqueness is guaranteed, but system performance and efficiency deteriorate due to the impracticality of checking all nodes
Solution Approach 1:
The identifier space is segmented by assigning each server a unique server ID that forms the basis of identifier generation. Each server independently generates identifiers using its own server ID combined with an incrementing sequence number, eliminating the need for cluster-wide checks while ensuring uniqueness through the segmented identifier structure
Solution Approach 2:
The system performs preliminary action by pre-assigning unique server IDs to each node during cluster initialization. This pre-established identification framework allows servers to generate unique identifiers independently without real-time coordination or checking of other nodes, resolving the contradiction between uniqueness and efficiency
2Reliability
If identifiers are generated to ensure uniqueness across the cluster, then failover capability is improved, but identifier generation complexity increases due to protocol compliance requirements
Solution Approach 1:
The system changes parameters by structuring identifiers with specific components (server ID portion and sequence number portion) that satisfy protocol requirements. The identifier format is designed to meet protocol specifications while the generation logic remains simple, reducing complexity through parameterized identifier construction
Solution Approach 2:
The identifier structure serves multiple functions simultaneously: it ensures uniqueness across the cluster, complies with protocol requirements, and enables failover capability. The same identifier generation mechanism handles all these requirements without requiring separate complex systems for each function
Data Source
Figure 1
Figure 2A~2B
Figure 3
AI summary
Described are embodiments for providing unique identifiers for files or objects across servers in a server cluster. Embodiments include generating a unique identifier that includes at least three portions. The first portion includes a node identifier which identifies the particular server in a cluster which created the unique identifier. The second portion includes a major sequence number that is incremented when a server is rebooted or otherwise taken off-line and then brought back online. Additionally, the major sequence number is incremented when all of the minor sequence numbers, which are included in a third portion of the unique identifier, have been used. The minor sequence numbers in the third portion are incremented for every unique file or object requested.