IP Library › Granted Patent US 12,487,810
Granted Patent B2
US 12,487,810 · App. 18/055,624 · Granted Dec 2, 2025

Mechanisms for selecting node upgrade order

Inventors: Shrikant Thakare (Burlington, MA); Maxence Weyrich (San Francisco, CA); Hemanth Siddulugari (Dublin, CA); Julian Chow (San Francisco, CA); Shivakarthik Subramanyam (Dublin, CA)
Assignee: Salesforce, Inc.
G06F8/65G06F9/4881
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 12,487,810
App. No.
18/055,624
Filed
Nov 15, 2022
Granted
Dec 2, 2025
Kind
B2
Examiner
WEI, ZENGPU
Art Unit
2197
USPC
717/168
Abstract

Techniques are disclosed relating to upgrading nodes. A computer system may detect that an updated node image has been created that is an update to a previous node image used to deploy a plurality of nodes into an environment associated with the computer system. The computer system may determine an upgrade order in which to upgrade a set of the plurality of nodes. The upgrade order may be determined based on a rank associated with a given node of the set of nodes by a ranking service. The computer system may then upgrade the set of nodes according to the upgrade order. The upgrading of a first node of the set of nodes may include deploying a second node based on the updated node image and then evicting a set of application pods from the first node and redeploying the set of application pods onto the second node.

Claims (46)

1 . A method of updating a plurality of virtual machines (VMs) that implements a service, the method comprising:

detecting, by an upgrade controller executing on a computer system, that an updated image has been created that is an update to a previous image used to deploy the plurality of VMs into an environment associated with the upgrade controller;

determining, by the upgrade controller, a controlled upgrade order in which to upgrade the plurality of VMs, wherein the determining includes:

accessing, for a first one of the plurality of VMs, a plurality of ranks assigned to a plurality of application pods executing on the first VM, wherein each of the plurality of application pods includes a respective instance of a ranking service that assigns a rank to that application pod;

determining a node rank for the first VM based on the plurality of ranks, wherein the controlled upgrade order is determined based on the node rank; and

upgrading, by the upgrade controller, the plurality of VMs according to the controlled upgrade order, wherein upgrading the first VM includes:

deploying a second VM based on the updated image; and

evicting the plurality of application pods from the first VM and redeploying the plurality of application pods onto the second VM.

2 . The method of claim 1 , wherein the plurality of VMs implements a leader-follower topology in which the node rank associated with the first VM is based on whether the first VM is a leader VM.

3 . The method of claim 2 , wherein the plurality of VMs includes one leader VM that is updated last for the plurality of VMs.

4 . The method of claim 2 , wherein the plurality of VMs includes at least two leader VMs that are associated with different node ranks.

5 . The method of claim 2 , wherein the controlled upgrade order is further determined based on which cloud zone of a plurality of cloud zones of the environment includes the first VM.

6 . The method of claim 1 , wherein the node rank of the first VM corresponds to the highest rank of the plurality of application pods.

7 . The method of claim 1 , further comprising:

after upgrading the first VM, the upgrading controller reevaluating the controlled upgrade order based on remaining VMs of the plurality of VMs that have not been upgraded.

8 . The method of claim 1 , wherein the detecting is based on the upgrade controller polling a node configuration store for information pertaining to the plurality of VMs, and wherein the node configuration store stores the updated image.

9 . A non-transitory computer readable medium having program instructions stored thereon that are executable by a computer system to cause the computer system to implement an upgrade controller that is operable to perform operations comprising:

detecting that an updated image has been created that is an update to a previous image used to deploy a plurality of VMs into an environment associated with the upgrade controller;

determining a controlled upgrade order in which to upgrade the plurality of VMs, wherein the determining includes:

accessing, for a first one of the plurality of VMs, a plurality of ranks assigned to a plurality of application pods executing on the first VM, wherein each of the plurality of application pods includes a respective instance of a ranking service that assigns a rank to that application pod;

determining a node rank for the first VM based on the plurality of ranks, wherein the controlled upgrade order is determined based on the node rank; and

upgrading the plurality of VMs according to the controlled upgrade order, wherein upgrading the first VM includes:

deploying a second VM based on the updated image; and

evicting the plurality of application pods from the first VM and redeploying the plurality of application pods onto the second VM.

10 . The non-transitory computer readable medium of claim 9 , wherein the plurality of VMs implements a leader-follower topology in which at least one of the plurality of VMs is a leader VM and other ones of the plurality of VMs are follower VMs, wherein the controlled upgrade order is such that the follower VMs are upgraded before the at least one leader VM.

11 . The non-transitory computer readable medium of claim 9 , wherein the node rank of the first VM corresponds to the highest rank of the plurality of ranks.

12 . The non-transitory computer readable medium of claim 9 , wherein the controlled upgrade order is determined based on which one of a plurality of service is implemented by the first VM.

13 . The non-transitory computer readable medium of claim 9 , wherein the detecting includes:

polling a node configuration store for node image information that identifies a current image to be used to deploy VMs to the environment; and

receiving, from the node configuration store, node image information that identifies the updated image.

14 . A system, comprising:

at least one processor; and

memory having program instructions stored thereon that are executable by the at least one processor to cause the system to implement an upgrade controller that is operable to perform operations comprising:

detecting that an updated image has been created that is an update to a previous image used to deploy a plurality of VMs into an environment associated with the upgrade controller;

determining a controlled upgrade order in which to upgrade the plurality of VMS, wherein the determining includes:

accessing, for a first one of the plurality of VMs, a plurality of ranks assigned to a plurality of application pods executing on the first VM, wherein each of the plurality of application pods includes a respective instance of a ranking service that as signs a rank to that application pod;

determining a node rank for the first VM based on the plurality of ranks, wherein the controlled upgrade order is determined based on the node rank; and

upgrading the plurality of VMs according to the controlled upgrade order, wherein upgrading the first VM of the plurality of VMs includes:

deploying a second VM based on the updated image; and

evicting a plurality of applications from the first VM and redeploying the plurality of applications on the second VM.

15 . The system of claim 14 , wherein the plurality of VMs includes a leader VM that is operable to service requests to write records to a database and a set of follower VMs operable to service requests to read records from the database, and wherein the controlled upgrade order is such that the set of follower VMs is upgraded before the leader VM.

16 . The system of claim 14 , wherein the controlled upgrade order is determined based on which cloud zone of a plurality of cloud zones of the environment includes the first VM, and wherein the controlled upgrade order is further determined based on which one of a plurality of service is implemented by the first VM.

17 . The system of claim 14 , wherein the operations further comprise:

after upgrading the first VM, reevaluating the controlled upgrade order based on remaining VMs of the plurality of VMs that have not been upgraded.

18 . The system of claim 14 , wherein the detecting includes:

determining that a current image stored at a node configuration store is different than the previous image, wherein the current image corresponds to the updated image.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 15, 2022
From: THAKARE, SHRIKANT; WEYRICH, MAXENCE; SIDDULUGARI, HEMANTH; CHOW, JULIAN; SUBRAMANYAM, SHIVAKARTHIK
To: SALESFORCE, INC.
Reel/Frame 061777/0212 →
Continuity (1)
Related Publication 20240160428A1 · May 16, 2024
References Cited (10)
US 7055149B2 · Birkholz et al. · 2006 [cited by applicant]
US 9575738B1 · Chopra · 2017 [cited by examiner]
US 11204758B1 · Vattikuti · 2021 [cited by examiner]
US 20050267951A1 · Joshi et al. · 2005 [cited by applicant]
US 20060218545A1 · Taguchi · 2006 [cited by applicant]
US 20180067754A1 · Riscutia · 2018 [cited by examiner]
US 20200177444A1 · Nelson-Gal · 2020 [cited by examiner]
US 20220300387A1 · Rayaraddi · 2022 [cited by examiner]
US 20230088858A1 · Tu · 2023 [cited by examiner]
US 20230305877A1 · Gu · 2023 [cited by examiner]