ID Allocation in Virtualized Clusters via Node Caching
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In virtualized computing environments, the conventional method of identifier (ID) allocation is inefficient due to frequent access to persistent storage, leading to latency and performance issues, especially in high-volume and frequent ID allocation scenarios like distributed firewall configurations.
Innovation Solution
Implementing a pre-allocation approach where batches of IDs are retrieved from a shared pool and stored in local caches at each node, allowing for concurrent and distributed ID allocation, reducing reliance on persistent storage and minimizing network round trips.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If IDs are allocated by accessing persistent storage for each request, then ID allocation is reliable and consistent, but latency increases and performance deteriorates
Solution Approach 1:
The system pre-allocates batches of IDs to node caches before they are actually needed. Each node maintains a local cache of pre-fetched IDs that can be distributed immediately upon request without accessing persistent storage, thereby reducing allocation latency while maintaining consistency through batched updates to the shared pool.
Solution Approach 2:
The ID allocation system is segmented into multiple independent node caches that operate autonomously. Instead of a single centralized allocation point, each node in the distributed system maintains its own cache of IDs, allowing parallel ID distribution across multiple nodes simultaneously, which increases overall throughput.
2Reliability
If frequent access to persistent storage is performed for ID allocation, then ID consistency is maintained, but system performance and responsiveness deteriorate
Solution Approach 1:
IDs are pre-fetched from persistent storage in batches and loaded into volatile memory caches at each node before actual allocation requests occur. This preliminary action separates the slow persistent storage access from the fast allocation operations, maintaining data consistency while enabling high-speed ID distribution.
Solution Approach 2:
Node caches act as intermediaries between persistent storage and the ID allocation process. Instead of directly accessing persistent storage for each allocation request, nodes retrieve IDs from their local caches, which are periodically refreshed from the shared pool, thereby mediating between reliability requirements and performance demands.
3Reliability
If centralized ID allocation is used, then ID uniqueness is guaranteed, but network round trips increase and responsiveness decreases
Solution Approach 1:
The centralized ID allocation function is segmented and distributed across multiple node caches in the distributed system. Each node independently manages its own cache of IDs and can allocate them locally without network communication, eliminating round trips while maintaining uniqueness through coordinated cache management across nodes.
Solution Approach 2:
Each node in the distributed system serves itself by maintaining local caches of IDs that it can allocate independently without requesting from other nodes or a central authority. This self-service approach eliminates network dependencies for ID allocation while preserving uniqueness through shared pool coordination.
Data Source
AI summary
Example methods are provided for a first node to perform identifier (ID) allocation in a virtualized computing environment that includes a cluster formed by the first node and at least one second node. The method may comprise retrieving, from a pool of IDs associated with the cluster, a batch of IDs to a cache associated with the first node. The pool of IDs may be shared within the cluster and the batch of IDs retrieved for subsequent ID allocation by the first node. The method may also comprise, in response to receiving a request for ID allocation from an ID consumer, allocating one or more IDs from the batch of IDs in the cache to respective one or more objects for unique identification of the one or more objects across the cluster; and sending, to the ID consumer, a response that includes the allocated one or more IDs.


