Network Controller Graceful Reboot via State Synchronization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

When a network controller reboots, it loses its non-persistent database, causing network disruptions as network elements synchronize with the empty database, leading to loss of state information and incorrect routing decisions.

Innovation Solution

The network controller signals network elements to send state information upon reboot, rebuilding the database before allowing synchronization, and sends updates only after the database converges or concurrently during the rebuilding process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the network controller reboots and loses its non-persistent database, then the network controller can restart its services, but network disruptions occur as network elements synchronize with the empty database, causing loss of state information

Engineering Contradiction:
Improvenetwork stabilityVSAvoidstate information loss
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The network controller sends a notification to network elements before the database is lost during reboot, indicating that synchronization should be deferred. This preliminary action prevents network elements from synchronizing with the empty database, thereby avoiding state information loss while allowing the controller to restart its services

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements a feedback mechanism where the network controller monitors its own reboot state and communicates this status to network elements. The controller provides feedback about when synchronization should be postponed, enabling network elements to adjust their synchronization behavior accordingly and maintain network stability during controller reboots

Inventive Principle:
Principle #23Feedback

2Productivity

If network elements synchronize with the empty network controller database after reboot, then synchronization is maintained, but network disruptions occur due to loss of state information

Engineering Contradiction:
Improvesynchronization speedVSAvoidnetwork operation continuity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The network controller applies preliminary anti-action by notifying network elements to postpone synchronization before the database becomes empty. This counter-action prevents the harmful synchronization event from occurring, blocking the path that would lead to network disruptions while allowing rapid synchronization to resume once the database is restored

Inventive Principle:
Principle #9Preliminary anti-action

3Manufacturing precision

If the network controller waits to rebuild the database before sending updates, then data accuracy is ensured, but network element updates are delayed

Engineering Contradiction:
Improvedatabase accuracyVSAvoidupdate delay
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

The network controller performs preliminary actions by rebuilding the database in parallel with notification management before committing updates to network elements. This allows the controller to prepare accurate data in advance, ensuring database accuracy while minimizing the time network elements wait for updates

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10587468B2System and method of a graceful reboot of a network controller
Publication Date: 2020.03.10 ARISTA NETWORKS INC
  • US10587468B2 patent drawing
  • US10587468B2 patent drawing
  • US10587468B2 patent drawing

AI summary

A method and apparatus to bring up a network controller in a network of multiple network elements is described. In an exemplary embodiment, the network controller receives an indication that the network controller is booting up. The network controller is coupled to a plurality of network elements in a network, where the network controller maintains a controller database that supports a network-wide service used by the plurality of network elements. The network controller further receives state information from the plurality of network elements. In addition, the network controller builds the controller database from the state information. Furthermore, the network controller sends updates from the controller database to each of the plurality of network elements, where each of the plurality of network elements incorporates these updates into a respective network element database and the network element database is used to perform the network-wide service.