Rolling upgrade of distributed software with automatic completion
First Claim
1. A method of facilitating a rolling upgrade of a distributed software program executing on multiple computers, wherein a plurality of different versions of the software are installed on the multiple computers, the method comprising:
- operating the software at an acting version on each of the multiple computers, wherein said acting version matches the lowest version of the software installed on the computers;
upgrading the software on a first computer from the acting version to a first version, wherein the first computer is the only computer having the acting version installed;
updating the acting version to the first version; and
automatically operating the software at the updated acting version on each of the multiple computers; and
automatically terminating the rolling upgrade when the acting version matches the highest version of the software installed on any of the multiple computers.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for facilitating an automatic rolling upgrade of distributed software. In a set of computing devices (e.g., a cluster), each node executes the distributed program, but different nodes may operate any number of different versions of the program. During a rolling upgrade of the software, the nodes all operate according to a specified acting version of the software. A node attempting the join the cluster may be required to have a software version at least equal to the acting version. When all nodes have been upgraded to a version newer than the current acting version, the acting version is reset to the lowest software version installed on a node. The rolling upgrade completes automatically when all nodes run at a specified software version (e.g., the most recent) or have the same version installed.
35 Citations
19 Claims
-
1. A method of facilitating a rolling upgrade of a distributed software program executing on multiple computers, wherein a plurality of different versions of the software are installed on the multiple computers, the method comprising:
-
operating the software at an acting version on each of the multiple computers, wherein said acting version matches the lowest version of the software installed on the computers;
upgrading the software on a first computer from the acting version to a first version, wherein the first computer is the only computer having the acting version installed;
updating the acting version to the first version; and
automatically operating the software at the updated acting version on each of the multiple computers; and
automatically terminating the rolling upgrade when the acting version matches the highest version of the software installed on any of the multiple computers. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer readable medium storing instructions that, when executed by a computer, cause the computer to perform a method of facilitating a rolling upgrade of a distributed software program executing on multiple computers, wherein a plurality of different versions of the software are installed on the multiple computers, the method comprising:
-
operating the software at an acting version on each of the multiple computers, wherein said acting version matches the lowest version of the software installed on the computers;
upgrading the software on a first computer from the acting version to a first version, wherein the first computer is the only computer having the acting version installed;
updating the acting version to the first version; and
automatically operating the software at the updated acting version on each of the multiple computers; and
automatically terminating the rolling upgrade when the acting version matches the highest version of the software installed on any of the multiple computers.
-
-
8. A computer-implemented method of facilitating a rolling upgrade of distributed software, comprising:
-
installing multiple versions of the distributed software on a group of nodes;
identifying the lowest version of the distributed software installed on a node in the group of the nodes;
setting the identified lowest version as the acting version of the distributed software;
operating the software at said acting version on each node in the group of nodes;
if a new node attempts to join the group of nodes, determining if a version of the distributed software installed on the new node is greater than or equal to said acting version;
repeating said identifying;
each time a node is added to the group;
each time a node leaves the group; and
each time the distributed software is upgraded on a node in the group of nodes;
automatically terminating the rolling upgrade when the acting version matches a predetermined version of the distributed software. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer readable medium storing instructions that, when executed by a computer, cause the computer to perform a method of facilitating a rolling upgrade of distributed software, comprising:
-
installing multiple versions of the distributed software on a group of nodes;
identifying the lowest version of the distributed software installed on a node in the group of the nodes;
setting the identified lowest version as the acting version of the distributed software;
operating the software at said acting version on each node in the group of nodes;
if a new node attempts to join the group of nodes, determining if a version of the distributed software installed on the new node is greater than or equal to said acting version;
repeating said identifying;
each time a node is added to the group;
each time a node leaves the group; and
each time the distributed software is upgraded on a node in the group of nodes;
automatically terminating the rolling upgrade when the acting version matches a predetermined version of the distributed software.
-
-
16. A group of computing devices configured to execute distributed software, the group comprising:
-
multiple computing devices, each computing device comprising an installed version of the distributed software;
an acting version of the distributed software, wherein the acting version matches the lowest version of the distributed software installed on one of the multiple computing devices;
a lowest supporting version of the distributed software; and
a shared storage area configured to store identities of said acting version of the distributed software and the versions of the software installed on each of the multiple computing devices;
wherein each of the multiple computing devices executes the distributed software at said acting version regardless of said installed version. - View Dependent Claims (17, 18, 19)
-
Specification