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:
- in a shared storage area, maintaining parameter values which include;
an acting version, a lowest supported version, a software version parameter for each of the multiple computers, and a reference to the Master node, wherein the shared storage area is accessible to each of the multiple computers;
iteratively performing the rolling upgrade of the distributed software program executing on the multiple computers by performing;
operating the software at the acting version on each of the multiple computers, wherein said acting version matches a lowest version of the software installed on the computers;
designating a Master node;
identifying a first computer which has the acting version installed;
upgrading the software on the first computer from the acting version to a newer version;
updating the software version parameter in the shared storage area corresponding to the first computer, wherein updating of the software version parameter is coordinated by a synchronization service executing on each of the multiple computing devices;
automatically identifying the lowest version by the Master node based on the parameter values stored in the shared storage area;
updating the acting version to the lowest version by the Master node;
automatically operating the software at the updated acting version on each of the multiple computers, wherein the update is published or broadcasted by the Master node; and
automatically updating the existing data in the shared storage area to the newer format of the updated acting version;
wherein the method further comprises automatically terminating the rolling upgrade when the acting version matches the highest version of the software installed on any of the multiple computers, thereby allowing the computers to be upgraded one at a time while running the software on computers which are not being upgraded;
wherein each installed version of the distributed software has the capability to support some or all of the functionality of older versions.
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.
56 Citations
16 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:
-
in a shared storage area, maintaining parameter values which include; an acting version, a lowest supported version, a software version parameter for each of the multiple computers, and a reference to the Master node, wherein the shared storage area is accessible to each of the multiple computers; iteratively performing the rolling upgrade of the distributed software program executing on the multiple computers by performing; operating the software at the acting version on each of the multiple computers, wherein said acting version matches a lowest version of the software installed on the computers; designating a Master node; identifying a first computer which has the acting version installed; upgrading the software on the first computer from the acting version to a newer version; updating the software version parameter in the shared storage area corresponding to the first computer, wherein updating of the software version parameter is coordinated by a synchronization service executing on each of the multiple computing devices; automatically identifying the lowest version by the Master node based on the parameter values stored in the shared storage area; updating the acting version to the lowest version by the Master node; automatically operating the software at the updated acting version on each of the multiple computers, wherein the update is published or broadcasted by the Master node; and automatically updating the existing data in the shared storage area to the newer format of the updated acting version; wherein the method further comprises automatically terminating the rolling upgrade when the acting version matches the highest version of the software installed on any of the multiple computers, thereby allowing the computers to be upgraded one at a time while running the software on computers which are not being upgraded; wherein each installed version of the distributed software has the capability to support some or all of the functionality of older versions. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer readable memory 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:
-
in a shared storage area, maintaining parameter values which include; an acting version, a lowest supported version, a software version parameter for each of the multiple computers, and a reference to the Master node, wherein the shared storage area is accessible to each of the multiple computers; iteratively performing the rolling upgrade of the distributed software program executing on the multiple computers by performing; operating the software at the acting version on each of the multiple computers, wherein said acting version matches the lowest version of the software installed on the computers; designating a Master node; identifying a first computer which has the acting version installed; upgrading the software on the first computer from the acting version to a newer version; updating the software version parameter in the shared storage area corresponding to the first computer, wherein updating of the software version parameter is coordinated by a synchronization service executing on each of the multiple computing devices; automatically identifying the lowest version by the Master node based on the parameter values stored in the shared storage area; updating the acting version to the lowest version by the Master node; automatically operating the software at the updated acting version on each of the multiple computers, wherein the update is published or broadcasted by the Master computing node; and automatically updating the existing data in the shared storage area to the newer format of the updated acting version; wherein the method further comprises automatically terminating the rolling upgrade when the acting version matches the highest version of the software installed on any of the multiple computers, thereby allowing the computers to be upgraded one at a time while running the software on computers which are not being upgraded; wherein each installed version of the distributed software has the capability to support some or all of the functionality of older versions. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. 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 a lowest version of the distributed software installed on one of the multiple computing devices; a lowest supporting version of the distributed software; a shared storage area configured to store parameter values which include; an acting version, a lowest supported version, a software version parameter for each of the multiple computers, and a reference to the Master node, wherein the shared storage area is accessible to each of the multiple computers; and a Master node, wherein the Master node is configured to iteratively perform a rolling upgrade of the distributed software executing on the multiple computers by managing the following operations; adding a first computer to the multiple computers; updating the software version parameter in the shared storage area corresponding to the first computer; automatically identifying the lowest version based on the parameter values stored in the shared storage area; updating the acting version to the lowest version; notifying to each of the multiple computers to operate the software at the updated acting version; and automatically updating the existing data in the shared storage area to the newer format of the updated acting version; wherein each installed version of the distributed software has the capability to support some or all of the functionality of older versions, and multiple data and communication formats may be simultaneously supported; wherein each of the multiple computing devices executes the distributed software at said acting version regardless of said installed version; and wherein the existing data in the shared storage area is automatically updated upon a change in the acting version to the newer format of the updated acting version. - View Dependent Claims (14, 15, 16)
-
Specification