IP Library Granted Patent US 11,487,528
Granted Patent B1
US 11,487,528 · App. 17/382,440 · Granted Nov 1, 2022

Managing system upgrades in a network computing environment

Inventors: Roman Spiegelman (Yokneam Illit, IL); Rivka Matosevich (Zichron Ya'acov, IL)
Assignee: EMC IP Holding Company LLC
G06F8/65G06F8/71
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 11,487,528
App. No.
17/382,440
Granted
Nov 1, 2022
Kind
B1
Abstract

Techniques are provided for managing system upgrades in a network computing environment. For example, a method includes managing an upgrade of a system within a cluster of systems which communicate in a network computing environment system to implement a distributed application. The system performs an upgrade operation to upgrade a current version of the system to a new software version number which comprises a new feature. The system performs a cluster version update process to communicate with other systems in the cluster to determine a cluster version number of the cluster. The system enables the new feature of the new software version if the new software version number is not greater than the determined cluster version number of the cluster.

Claims (71)

1. A method, comprising:

managing, by a first system, an upgrade of the first system within a cluster of systems comprising the first system and one or more other systems, which communicate in a network computing environment to implement a distributed application, wherein managing the upgrade of the first system comprises:

performing, by the first system, an upgrade operation to upgrade a current software version of the first system to a new software version which comprises a new feature;

performing, by the first system, a cluster version update process which comprises (i) communicating with at least one other system in the cluster to obtain respective current software version numbers of each of the one or more other systems in the cluster, and obtain a respective first guarantee from each system of the one or more other systems to not connect with another system until the first guarantee, which is provided to the first system by each system of the one or m ore other systems, is removed, and (ii) utilizing the current software version numbers of the one or more other systems in the cluster to determine a cluster version number of the cluster; and

enabling, by the first system, the new feature of the new software version, in response to the first system determining that a software version number of the new software version is not greater than the determined cluster version number of the cluster.

2. The method of claim 1 , wherein communicating with the at least one other system in the cluster, comprises:

broadcasting, by the first system, a first message to the at least one other system in the cluster, wherein the first message comprises (i) a request for the one or more other systems in the cluster to return their respective current software version numbers, and (ii) a request for the first guarantee not to connect with another system until further notification from the first system that the first guarantee can be removed.

3. The method of claim 1 , wherein the cluster version number is determined to be a lowest software version number of the current software version numbers returned from the one or more other systems in the cluster.

4. The method of claim 1 , wherein performing the cluster version update process further comprises broadcasting, by the first system, a second message to the at least one other system in the cluster, wherein the second message comprises (i) a notification of the determined cluster version number, and request for the at least one other system to update a current cluster version number of the at least one other system according to the determined cluster version number, and (ii) a request to remove the first guarantee given to the first system.

5. The method of claim 4 , wherein the second message further comprises a request for the at least one other system to provide a second guarantee not to connect with another system which has a cluster version number that is less than the cluster version number of the at least one other system as updated to the determined cluster version number.

6. The method of claim 1 , further comprising:

deferring enabling, by the first system, the new feature of the new software version number, in response to the first system determining that the new software version number is greater than the determined cluster version number of the cluster; and

sending, by the first system, a request to another system in the cluster to upgrade to a software version number which is at least equal to the new software version number of the first system.

7. The method of claim 1 , wherein the cluster of systems comprises data replication systems, and wherein the distributed application comprises a distributed replication application implemented on data storage nodes in the network computing environment.

8. The method of claim 1 , further comprising:

providing, by the first system, a second guarantee to a second system in the cluster not to connect with another system until further notification from the second system that the second guarantee can be removed; and

prior to the first system receiving the notification from the second system that the second guarantee can be removed, performing, by the first system, a self-removal process to remove the second guarantee provided to the second system.

9. The method of claim 8 , wherein performing the self-removal process by the first system to remove the second guarantee provided to the second system, comprises:

broadcasting, by the first system, a first message to one or more other systems in the cluster, wherein the first message comprises (i) a request for the one or more other systems to return their respective current software version numbers, and (ii) a request for a guarantee by the one or more other systems in the cluster not to connect with another system until further notification from the first system that the guarantee can be removed;

utilizing, by the first system, the current software version numbers returned from the one or more other systems in the cluster to determine the cluster version number of the cluster as a lowest software version number of the current software version numbers returned from the one or more other systems in the cluster;

setting, by the first system, a current cluster version number of the first system to be equal to the determined cluster version number;

removing, by the first system, the second guarantee provided to the second system by the first system, conditioned on the first system providing a guarantee not to connect with another system having a cluster version number which is less than the current cluster version number of the first system; and

broadcasting, by the first system, a second message to the one or more other systems in the cluster, wherein the second message comprises (i) a request to remove the guarantee given by the one or more other systems to the first system and (ii) a notification that any given system locked by the same second guarantee provided to the second system by the given system can remove and replace the same second guarantee by the given system updating its current cluster version number to be equal to the currently determined cluster version number, and providing a guarantee not to connect with another system having a cluster version number which is less than the updated cluster version number of the system.

10. An article of manufacture comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code is executable by one or more processors to implement a method which comprises:

managing, by a first system, an upgrade of the first system within a cluster of systems comprising the first system and one or more other systems, which communicate in a network computing environment to implement a distributed application, wherein managing the upgrade of the first system comprises:

performing, by the first system, an upgrade operation to upgrade a current software version of the first system to a new software version which comprises a new feature;

performing, by the first system, a cluster version update process which comprises (i) communicating with at least one other system in the cluster to obtain respective current software version numbers of each of the one or more other systems in the cluster, and obtain a respective first guarantee from each system of the one or more other systems to not connect with another system until the first guarantee, which is provided to the first system by each system of the one or more other systems, is removed, and (ii) utilizing the current software version numbers of the one or more other systems in the cluster to determine a cluster version number of the cluster; and

enabling, by the first system, the new feature of the new software version, in response to the first system determining that a software version number of the new software version is not greater than the determined cluster version number of the cluster.

11. The article of manufacture of claim 10 , wherein the program code for communicating with at least one other system in the cluster comprises program code for:

broadcasting, by the first system, a first message to the at least one other system in the cluster, wherein the first message comprises (i) a request for the one or more other systems in the cluster to return their respective current software version numbers, and (ii) a request for the first guarantee not to connect with another system until further notification from the first system that the first guarantee can be removed.

12. The article of manufacture of claim 10 , wherein the cluster version number is determined to be a lowest software version number of the current software version numbers returned from the one or more other systems in the cluster.

13. The article of manufacture of claim 10 , wherein the program code for performing the cluster version update process further comprises program code for broadcasting, by the first system, a second message to the at least one other system in the cluster, wherein the second message comprises (i) a notification of the determined cluster version number, and request for the at least one other system to update a current cluster version number of the at least one other system according to the determined cluster version number, and (ii) a request to remove the first guarantee given to the first system.

14. The article of manufacture of claim 13 , wherein the second message further comprises a request for the at least one other system to provide a second guarantee not to connect with another system which has a cluster version number that is less than the cluster version number of the at least one other system as updated to the determined cluster version number.

15. The article of manufacture of claim 10 , wherein the cluster of systems comprises data replication systems, and wherein the distributed application comprises a distributed replication application implemented on data storage nodes in the network computing environment.

16. The article of manufacture of claim 10 , further comprising program code for:

providing, by the first system, a second guarantee to a second system in the cluster not to connect with another system until further notification from the second system that the second guarantee can be removed; and

prior to the first system receiving the notification from the second system that the second guarantee can be removed, performing, by the first system, a self-removal process to remove the second guarantee provided to the second system;

wherein performing the self-removal process by the first system to remove the second guarantee provided to the second system, comprises:

broadcasting, by the first system, a first message to one or more other systems in the cluster, wherein the first message comprises (i) a request for the one or more other systems to return their respective current software version numbers, and (ii) a request for a guarantee by the one or more other systems in the cluster not to connect with another system until further notification from the first system that the guarantee can be removed;

utilizing, by the first system, the current software version numbers returned from the one or more other systems in the cluster to determine the cluster version number of the cluster as a lowest software version number of the current software version numbers returned from the one or more other systems in the cluster;

setting, by the first system, a current cluster version number of the first system to be equal to the determined cluster version number;

removing, by the first system, the second guarantee provided to the second system by the first system, conditioned on the first system providing a guarantee not to connect with another system having a cluster version number which is less than the current cluster version number of the first system; and

broadcasting, by the first system, a second message to the one or more other systems in the cluster, wherein the second message comprises (i) a request to remove the guarantee given by the one or more other systems to the first system and (ii) a notification that any given system locked by the same second guarantee provided to the second system by the given system can remove and replace the same second guarantee by the given system updating its current cluster version number to be equal to the currently determined cluster version number, and providing a guarantee not to connect with another system having a cluster version number which is less than the updated cluster version number of the system.

17. A network computing system, comprising:

a plurality of physical server machines which are connected in a network, and which host respective systems of a cluster of systems comprising a first system and one or more other systems, which communicate to implement a distributed application;

wherein the first system in the cluster of systems is configured to manage a software upgrade of the first system, wherein in managing the software upgrade, the first system is configured to:

perform an upgrade operation to upgrade a current software version of the first system to a new software version which comprises a new feature;

perform a cluster version update process which comprises (i) communicating with at least one other system in the cluster to obtain respective current software version numbers of each of the one or more other systems in the cluster, and obtain a respective first guarantee from each system of the one or more other systems to not connect with another system until the first guarantee, which is provided to the first system by each system of the one or more other systems, is removed, and (ii) utilizing the current software version numbers of the one or more other systems in the cluster to determine a cluster version number of the cluster; and

enable the new feature of the new software version, in response to the first system determining that a software version number of the new software version is not greater than the determined cluster version number of the cluster.

18. The network computing system of claim 17 , wherein in performing the cluster version update process, the first system is configured to:

broadcast a first message to the at least one other system in the cluster, wherein the first message comprises (i) a request for the one or more other systems in the cluster to return their respective current software version numbers, and (ii) a request for a first guarantee not to connect with another system until further notification from the first system that the first guarantee can be removed; and

broadcast a second message to the at least one other system in the cluster, wherein the second message comprises (i) a notification of the determined cluster version number and request for the at least one other system to update a current cluster version number of the at least one other system according to the determined cluster version number, and (ii) a request to remove the first guarantee given to the first system.

19. The network computing system of claim 18 , wherein the second message further comprises a request for the at least one other system to provide a second guarantee not to connect with another system which has a cluster version number that is less than the cluster version number of the at least one other system as updated to the determined cluster version number.

20. The network computing system of claim 17 , wherein the first system is further configured to:

provide a second guarantee to a second system in the cluster not to connect with another system until further notification from the second system that the second guarantee can be removed; and

perform a self-removal process to remove the second guarantee provided to the second system, prior to the first system receiving the notification from the second system that the second guarantee can be removed;

wherein in performing the self-removal process by the first system to remove the second guarantee provided to the second system, the first system is configured to:

broadcast a first message to one or more other systems in the cluster, wherein the first message comprises (i) a request for the one or more other systems to return their respective current software version numbers, and (ii) a request for a guarantee bar the one or more other systems in the cluster not to connect with another system until further notification from the first system that the guarantee can be removed;

utilize the current software version numbers returned from the one or more other systems in the cluster to determine the cluster version number of the cluster as a lowest software version number of the current software version numbers returned from the one or more other systems in the cluster;

set a current cluster version number of the first system to be equal to the determined cluster version number;

remove the second guarantee provided to the second system by the first system, conditioned on the first system providing a guarantee not to connect with another system having a cluster version number which is less than the current cluster version number of the first system; and

broadcast a second message to the one or more other systems in the cluster, wherein the second message comprises (i) a request to remove the guarantee given by the one or more other systems to the first system and (ii) a notification that any given system locked by the same second guarantee provided to the second system bar the given system can remove and replace the same second guarantee by the given system updating its current cluster version number to be equal to the currently determined cluster version number, and providing a guarantee not to connect with another system having a cluster version number which is less than the updated cluster version number of the system.

21. A method, comprising:

managing, by a first system, an upgrade of the first system within a cluster of systems comprising the first system and one or more other systems, which communicate in a network computing environment to implement a distributed application;

wherein managing the upgrade of the first system comprises:

performing, by the first system, an upgrade operation to upgrade a current software version of the first system to a new software version which comprises a new feature;

performing, by the first system, a cluster version update process to communicate with the one or more other systems in the cluster to determine a cluster version number of the cluster; and

enabling, by the first system, the new feature of the new software version, in response to the first system determining that a software version number of the new software version is not greater than the determined cluster version number of the cluster; and

wherein performing the cluster version update process, comprises:

broadcasting, by the first system, a first message to the one or more other systems in the cluster, wherein the first message comprises (i) a request for the one or more other systems in the cluster to return their respective current software version numbers, and (ii) a request for a guarantee not to connect with another system until further notification from the first system that the guarantee can be removed; and

utilizing, by the first system, the current software version numbers returned from the one or more other systems in the cluster to determine the cluster version number of the cluster.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (058014/0560) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0473 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057931/0392) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0382 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057758/0286) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 061654/0064 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 058014/0560 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057758/0286 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057931/0392 →
SECURITY AGREEMENT Recorded Oct 1, 2021
From: DELL PRODUCTS, L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 057682/0830 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2021
From: SPIEGELMAN, ROMAN; MATOSEVICH, RIVKA
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 056942/0672 →
Cited By (2)
US 12,217,045 US 12,669,988