In-Memory Data Store Decouples SDN Controller Route Updates
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In software-defined networking (SDN) systems, SDN controllers face overload issues when handling route updates during failover or upgrades, leading to performance spikes and potential disruptions in cloud data centers.
Innovation Solution
Implementing an in-memory data store with publish-subscribe capabilities to decouple route distribution from the SDN controller, allowing compute nodes to subscribe to route updates published by control nodes, thereby outsourcing the processing of route updates to an in-memory database service.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the SDN controller directly handles and distributes route updates to all compute nodes, then the controller can maintain real-time route information, but the controller becomes overloaded during failover or upgrades causing performance spikes and potential disruptions
Solution Approach 1:
The patent extracts the route update distribution function from the SDN controller and places it in an external in-memory data store. The controller only publishes route updates to the data store, while compute nodes subscribe and receive updates directly from the data store, removing the bottleneck from the controller.
Solution Approach 2:
The in-memory data store acts as an intermediary between the SDN controller and compute nodes. It receives route updates from the controller and distributes them to subscribed compute nodes, decoupling the controller from direct communication with all compute nodes and eliminating the performance bottleneck.
2Adaptability or versatility
If the SDN controller directly manages route distribution to multiple compute nodes, then route information can be kept synchronized, but the system scalability is limited due to the controller's processing capacity
Solution Approach 1:
The in-memory data store serves as a mediator that handles the complexity of managing multiple subscriptions and route distribution. The controller's complexity is reduced to simply publishing updates, while the data store manages the complex task of notifying all subscribed compute nodes.
Solution Approach 2:
Compute nodes actively subscribe to route updates they need from the in-memory data store. Each node independently manages its own subscriptions and receives only the route updates relevant to it, enabling the system to scale as nodes are added or removed without affecting the controller.
3Ease of operation
If the SDN controller handles all route update processing, then centralized control is maintained, but the system requires expensive, high-performance control node devices
Solution Approach 1:
The patent extracts the computationally intensive route distribution processing from the control node and places it in the in-memory data store. This allows the use of less expensive, standard hardware for control nodes while maintaining centralized control through the publish-subscribe mechanism.
Solution Approach 2:
The in-memory data store intermediary handles the complex processing of route updates, allowing control nodes to use simpler, less expensive hardware. The control nodes only need to publish updates, while the data store manages the complex task of distributing them to all subscribed compute nodes.
Data Source
Figure 1
Figure 2
Figure 3A
AI summary
This disclosure describes techniques for sharing routes between nodes in a distributed network system. An example method includes receiving, by a control node of a software-defined network (SDN) controller, a route from a compute node of a plurality of compute nodes in a network; publishing, by the control node and in response to receiving the route, a route update to an in-memory database service of the SDN controller; and sending, by the in-memory database service in response to receiving the published route update, the published route update to any of the plurality of compute nodes that have subscribed to receive route updates for an in-memory database instance associated with the control node.