Cluster Unique Identifier Generation via Segmented Node IDs

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveidentifier uniquenessVSAvoididentifier generation efficiency
Core Design Contradiction:
ReliabilityVSProductivity

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

Inventive Principle:
Principle #1Segmentation

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

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improvefailover capabilityVSAvoididentifier generation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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

Inventive Principle:
Principle #35Parameter changes

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

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentEP2695083B1Cluster unique identifier
Publication Date: 2021.06.09 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP2695083B1 patent drawingFigure 1
  • EP2695083B1 patent drawingFigure 2A~2B
  • EP2695083B1 patent drawingFigure 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.