Address Table Index Segmentation for Distributed Service Routing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing distributed computing systems face challenges in efficiently managing routing information across multiple service instances, leading to suboptimal load balancing and impact on existing routes and route tables when adding or removing service instances.
Innovation Solution
A method and network device controller that utilize an address table with provisioned index values to assign and reassign packet source address sets among service instances, allowing for minimal disruption by dividing and combining address subsets, and dynamically increasing index values as needed to accommodate new or removed instances.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If service instances are added or removed from the address table, then the distributed service can adapt to changing conditions, but existing routes and route tables are impacted requiring updates
Solution Approach 1:
The address table is segmented into multiple index values, where each index value corresponds to a specific service instance. This segmentation allows individual instances to be added or removed by modifying only their specific index entries, rather than requiring updates to the entire routing structure. The packet source address set is further segmented into subsets that map to different index values, enabling granular control over traffic distribution.
Solution Approach 2:
The address table serves as an intermediary layer between the load balancer and the service instances. It absorbs the complexity of instance management and provides a stable interface for route table lookups. When service instances change, only the address table needs to be updated, not the route tables themselves, thus isolating the impact of dynamic changes.
2Ease of operation
If the address table uses one entry per service instance, then instance management is simplified, but the table size increases requiring more memory resources
Solution Approach 1:
Multiple service instances are merged into a single address table entry by using different index values within the same entry. Instead of creating separate entries for each instance, the patent combines them under a unified table structure where the index value distinguishes between instances. This merging reduces the overall table size while maintaining the ability to manage individual instances through their index assignments.
3Productivity
If load balancing distributes packets across multiple instances, then service capacity is increased, but routing complexity increases requiring more sophisticated lookup mechanisms
Solution Approach 1:
The routing mechanism uses local quality by assigning specific characteristics (index values) to different parts of the address table corresponding to different service instances. Each index value has a specific function of routing to a particular instance, allowing the system to maintain simple lookup operations while supporting multiple instances. The complexity is localized to the index assignment rather than the lookup process itself.
Data Source
Figure 1A~1B
Figure 2~3
Figure 4A
AI summary
Aspects and implementations of the present disclosure are directed to a network device storing 130 an address table. Each of the address table entries is assigned to a respective provisioned index value and an instance of a distributed service. The device is configured to add a new service instance to the address table by obtaining an assignable index value for the new service instance, identifying an assigned index value that is a companion index value to the obtained index value, dividing a packet source address set associated with the companion index value into first and second address subsets, and assigning the first address subset to the service instance entry in the address table associated with the assigned companion index value and the second address subset to an entry in the address table associated with the obtained index value and the newly added service instance. Data packets are routed from a client to a particular host for an instance of the distributed service selected based on a characteristic, such as a source address, of incoming packets and based on load-balancing rules. A network controller treats each service instance as having a companion instance. When a new service instance is added, the network controller identifies the companion instance for the new service instance, and divides the set of addresses assigned to the companion instance into two sets, one for the preexisting companion instance and the other for the new service instance. When a service instance is removed, the network controller re-assigns the addresses for the removed service instance back to the companion instance. In some situations, the pairings between peer service instance companions is redistributed such that each service instance has a companion instance, as needed.