Service Path Identifier Allocation in Datacenter Service Chaining
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In datacenter service chaining, the scalability of allocating unique identifiers to numerous service paths is challenging due to the potential hundreds or thousands of service paths associated with each service chain, requiring efficient techniques to ensure global uniqueness and minimize resource wastage.
Innovation Solution
A distributed system where a cluster of service controllers computes and allocates service path identifiers independently, using a shared identifier storage like Corfu DB to ensure uniqueness, with a process that retrieves a cursor value, generates proposed identifiers, and updates version numbers to handle concurrent allocations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple service controllers independently allocate service path identifiers, then allocation scalability is improved, but ensuring global uniqueness becomes more difficult
Solution Approach 1:
A shared identifier storage system acts as an intermediary between multiple service controllers. Each controller retrieves a cursor value from this shared storage, which coordinates the allocation process across controllers. The storage system persists cursor values and version numbers, ensuring that even with independent allocation operations, all controllers draw from a coordinated identifier space, thus maintaining global uniqueness while preserving allocation scalability.
2Loss of energy
If a single write operation allocates multiple identifiers, then resource efficiency is improved, but handling concurrent allocations becomes more complex
Solution Approach 1:
The system performs preliminary actions by retrieving a cursor value and computing a range of proposed service path identifiers before executing the write operation. This preliminary computation allows a single write operation to allocate multiple identifiers efficiently. The version number mechanism is prepared in advance, enabling the system to handle concurrent allocations by atomically updating the cursor position after the batch allocation, thus managing complexity while maintaining resource efficiency.
3Adaptability or versatility
If distributed allocation is used across controllers, then system scalability is improved, but identifier coordination overhead increases
Solution Approach 1:
The coordination logic is extracted from the individual service controllers and placed in the shared identifier storage system. Controllers only need to perform simple read-write operations on the cursor value and version number, rather than implementing complex coordination protocols. This extraction reduces the coordination overhead for each controller while maintaining system scalability, as the heavy lifting of ensuring global uniqueness is handled by the centralized storage mechanism.
Data Source
AI summary
Some embodiments provide a method for assigning different service path identifiers to each of a set of different service paths along each of which a same set of service operations are performed on a set of packets. The method retrieves an available service path identifier from an identifier storage that stores service path identifiers for multiple service paths. The method generates a set of proposed service path identifiers based on the retrieved available service path identifier and the number of service paths in the set of service paths. The method performs a write operation on the identifier storage based on the set of proposed service path identifiers, and based on a determination that the write operation was successful, assigns the set of proposed service path identifiers to the set of service paths. Based on the set of service path identifiers, the method forwards the set of packets along the set of service paths.


