IP Library Granted Patent US 9,235,408
Granted Patent B2
US 9,235,408 · App. 14/072,075 · Granted Jan 12, 2016

Non-disruptive software updates for servers processing network traffic

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,235,408
App. No.
14/072,075
Granted
Jan 12, 2016
Kind
B2
Abstract

Updating software on first and second network controller entities (NCEs), without disrupting traffic processing, comprises resetting the second NCE after it receives a proposed software version from the first NCE. The second NCE runs the proposed software version in a standby role. While the second NCE runs the proposed software version in the standby role, databases of the NCEs stay synchronized. Resetting the first NCE induces the second NCE to assume the master role, and the first NCE to assume the standby role. The second NCE in the master role tests the proposed software version for a predetermined period. If validation succeeds, the second NCE instructs the first NCE to reboot and run the proposed software version in the standby role. Otherwise, the second NCE reverts to running the current software version in the standby role; and the first NCE, running the current software version, reverts to the master role.

Claims (18)

1. A method for updating software on first and second network controller entities (NCEs) without disrupting traffic processed by the first and second NCEs, the method comprising:

transmitting a proposed software version, from the first NCE running a current software version in a master role, to the second NCE running the current software version in a standby role;

resetting the second NCE after receiving the proposed software version from the first NCE such that the second NCE begins running the proposed software version in the standby role;

synchronizing databases of the first and second NCEs while the second NCE runs the proposed software version in the standby role;

resetting the first NCE such that the second NCE runs the proposed software version in the master role and the first NCE assumes the standby role while continuing to run the current software version;

testing, by the second NCE in the master role, live operation of the proposed software version for a predetermined validation period; and

if validation is successful, sending a command from the second NCE to the first NCE instructing the first NCE to reboot and run the proposed software version in the standby role; otherwise, if validation is unsuccessful, automatically rebooting the second NCE such that the second NCE reverts to running the current software version in the standby role and the first NCE reverts to the master role and continues to run the current software version,

wherein the first NCE and the second NCE are discrete entities such that no hardware resources are transferred between the first NCE and the second NCE while the software is updated on the first NCE and the second NCE, and wherein after the first NCE is rebooted to run the proposed software version in the standby role, the first NCE remains in existence.

2. The method of claim 1 , further comprising performing, at the first NCE, a compatibility check between the proposed software version and the current software version before sending the proposed software version to the second NCE.

3. The method of claim 1 , wherein synchronizing the databases of the first and second NCEs while the second NCE runs the proposed software version in the standby role includes:

transmitting data from the database of the first NCE to the second NCE; and

translating the transmitted data from the format compatible to the current software version to the format compatible to the proposed software version.

4. The method of claim 3 , wherein the second NCE performs the translating if the proposed software version is an upgrade version of the current software version, and wherein the first NCE performs the translating if the proposed software version is a downgrade of the current software version.

5. The method of claim 1 , further comprising synchronizing databases of the first and second NCEs while the second NCE runs the proposed software version in the master role.

6. The method of claim 5 , wherein synchronizing the databases of the first and second NCEs while the second NCE runs the proposed software version in the master role includes:

transmitting data from the database of the second NCE to the first NCE; and

translating the transmitted data from the format compatible to the proposed software version to the format compatible to the current software version.

7. The method of claim 6 , wherein the second NCE performs the translating if the proposed software version is an upgrade version of the current software version, and wherein the first NCE performs the translating if the proposed software version is a downgrade of the current software version.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 6, 2019
From: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE LTD.
To: LENOVO INTERNATIONAL LIMITED
Reel/Frame 050301/0033 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
To: LENOVO INTERNATIONAL LIMITED
Reel/Frame 037696/0522 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2014
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
Reel/Frame 034194/0353 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 5, 2013
From: BANAVALIKAR, BHALACHANDRA G.; BHAGAVATHIPERUMAL, CHIDAMBARAM; KAMBLE, KESHAV GOVIND; LEU, DAR-REN; MAPLES, JAMES
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 031546/0293 →