IP Library Granted Patent US 12,724,604
Granted Patent B2
US 12,724,604 · App. 18/407,676 · Granted Sep 1, 2026

Computing node upgrading system

Inventors: Hemant Kumar Shukla (Pune, IN); Tanay Jayant Kayastha (Pune, IN); Siddharth Kumar (Pune, IN); Nandan Marathe (Pune, IN)
Assignee: SAP SE
G06F8/71G06F8/65G06F16/2336G06F16/2358G06F16/2365G06F16/2379
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,724,604
App. No.
18/407,676
Granted
Sep 1, 2026
Kind
B2
Abstract

Disclosed herein are various embodiments a code simplification system. An embodiment operates by determining that a software version of a coordinator node is different from a software version of one or more worker nodes. Commits by the one or more worker nodes to a database are disabled based on the determination that the software versions differ. An update is performed on each of the one or more worker nodes. An acknowledgement that the update on each of the one or more worker nodes has completed is received, and the commits to the database by the one or more worker nodes is enabled.

Claims (84)

1 . A method comprising:

determining that a software version of a coordinator node is different from a software version of one or more worker nodes, wherein the coordinator node is configured to coordinate write operations by the one or more worker nodes on a database;

disabling commits of the write operations performed by the one or more worker nodes to the database based on the determination that the software version of the coordinator node is different from the software version of the one or more worker nodes, wherein the one or more worker nodes are configured to continue performing read operations on the database after the disabling;

performing an update on each of the one or more worker nodes;

receiving, at the coordinator node, an acknowledgement that the update on the one or more worker nodes has completed, wherein the acknowledgement indicates that the software version of the one or more worker nodes is identical to the software version of the coordinator node; and

enabling the commits by the one or more worker nodes to the database, responsive to receiving the acknowledgment.

2 . The method of claim 1 , wherein the determining comprises:

determining that a software of the coordinator node has been upgraded, wherein prior to the upgrade, the software version of the coordinator node was identical to the software version of the one or more worker nodes prior to the disabling.

3 . The method of claim 1 , wherein the performing comprises:

performing rolling updates on each of the one or more worker nodes, wherein the rolling updates sequentially update the one or more worker nodes, and wherein each worker node is disabled from performing the read operations during its update.

4 . The method of claim 3 , wherein the performing rolling updates comprises:

determining that a first update on a first worker node of the one or more worker nodes has completed;

identifying a second worker node of the one or more worker nodes on which to perform a second update;

determining that the second worker node is performing a read operation;

discontinuing the read operation at the second worker node; and

performing the second update on the second worker node.

5 . The method of claim 3 , wherein the performing rolling updates comprises:

determining that a first update on a first worker node of the one or more worker nodes has completed;

identifying a second worker node of the one or more worker nodes on which to perform a second update;

determining that the second worker node is performing a second read operation;

waiting until the read operation at the second worker node has completed; and

performing the second update on the second worker node after the completion of the read operation at the second worker node.

6 . The method of claim 1 , further comprising:

determining that a first worker node of the one or more worker nodes is an only one worker node of the one or more worker nodes, prior to determining that the software version of the coordinator node is different from the software version of the only one worker node;

activating a second worker node, wherein the coordinator node is configured to coordinate the write operations of both the first worker node and the second worker node; and

updating a software of the coordinator node, wherein after the updating, the software version of the coordinator node is different from the software version of both the first worker node and the second worker node.

7 . The method of claim 6 , further comprising:

disabling the second worker node after the activating.

8 . A system, comprising:

a memory; and

at least one processor coupled to the memory and configured to perform instructions that cause the at least one processor to perform operations comprising:

determining that a software version of a coordinator node is different from a software version of one or more worker nodes, wherein the coordinator node is configured to coordinate write operations by the one or more worker nodes on a database;

disabling commits of the write operations performed by the one or more worker nodes to the database based on the determination that the software version of the coordinator node is different from the software version of the one or more worker nodes, wherein the one or more worker nodes are configured to continue performing read operations on the database after the disabling;

performing an update on each of the one or more worker nodes;

receiving, at the coordinator node, an acknowledgement that the update on each of the one or more worker nodes has completed, wherein the acknowledgement indicates that the software version of the one or more worker nodes is identical to the software version of the coordinator node; and

enabling the commits by the one or more worker nodes to the database, responsive to receiving the acknowledgment.

9 . The system of claim 8 , wherein the determining comprises:

determining that a software of the coordinator node has been upgraded, wherein prior to the upgrade, the software version of the coordinator node was identical to the software version of the one or more worker nodes prior to the disabling.

10 . The system of claim 8 , wherein the performing comprises:

performing rolling updates on each of the one or more worker nodes, wherein the rolling updates sequentially update the one or more worker nodes, and wherein each worker node is disabled from performing the read operations during its update.

11 . The system of claim 10 , wherein the performing rolling updates comprises:

determining that a first update on a first worker node of the one or more worker nodes has completed;

identifying a second worker node of the one or more worker nodes on which to perform a second update;

determining that the second worker node is performing a read operation;

discontinuing the read operation at the second worker node; and

performing the second update on the second worker node.

12 . The system of claim 10 , wherein the performing rolling updates comprises:

determining that a first update on a first worker node of the one or more worker nodes has completed;

identifying a second worker node of the one or more worker nodes on which to perform a second update;

determining that the second worker node is performing a read operation;

waiting until the read operation at the second worker node has completed; and

performing the second update on the second worker node after the completion of the read operation at the second worker node.

13 . The system of claim 8 , the operations further comprising:

determining that a first worker node fo the one or more worker nodes is an only one worker node of the one or more worker nodes, prior to determining that the software version of the coordinator node is different from the software version of the only one worker node;

activating a second worker node, wherein the coordinator node is configured to coordinate the write operations of both the first worker node and the second worker node; and

updating a software of the coordinator node, wherein after the updating the software version of the coordinator node is different from the software version of both the first worker node and the second worker node.

14 . The system of claim 13 , the operations further comprising:

disabling the second worker node after the activating.

15 . A non-transitory computer-readable medium having instructions stored thereon that, when executed by at least one computing device, cause the at least one computing device to perform operations comprising:

determining that a software version of a coordinator node is different from a software version of one or more worker nodes, wherein the coordinator node is configured to coordinate write operations by the one or more worker nodes on a database;

disabling commits of the write operations performed by the one or more worker nodes to the database based on the determination that the software version of the coordinator node is different from the software version of the one or more worker nodes, wherein the one or more worker nodes are configured to continue performing read operations on the database after the disabling;

performing an update on each of the one or more worker nodes;

receiving, at the coordinator node, an acknowledgement that the update on each of the one or more worker nodes has completed, wherein the acknowledgement indicates that the software version of the one or more worker nodes is identical to the software version of the coordinator node; and

enabling the commits by the one or more worker nodes to the database, responsive to receiving the acknowledgment.

16 . The non-transitory computer-readable medium of claim 15 , wherein the determining comprises:

determining that a software of the coordinator node has been upgraded, wherein prior to the upgrade the software version of the coordinator node was identical to the software version of the one or more worker nodes prior to the disabling.

17 . The non-transitory computer-readable medium of claim 15 , wherein the performing comprises:

performing rolling updates on each of the one or more worker nodes, wherein the rolling updates sequentially update the one or more worker nodes, and wherein each worker node is disabled from performing the read operations during its update.

18 . The non-transitory computer-readable medium of claim 17 , wherein the performing rolling updates comprises:

determining that a first update on a first worker node fo the one or more worker nodes has completed;

identifying a second worker node of the one or more worker nodes on which to perform a second update;

determining that the second worker node is performing a read operation;

discontinuing the read operation at the second worker node; and

performing the second update on the second worker node.

19 . The non-transitory computer-readable medium of claim 17 , wherein the performing rolling updates comprises:

determining that a first update on a first worker node of the one or more worker nodes has completed;

identifying a second worker node of the one or more worker nodes on which to perform a second update;

determining that the second worker node is performing a read operation;

waiting until the read operation at the second worker node has completed; and

performing the second update on the second worker node after the completion of the read operation at the second worker node.

20 . The non-transitory computer-readable medium of claim 15 , the operations further comprising:

determining that a first worker node of the one or more worker nodes is an only one worker node of the one or more worker nodes, prior to determining that the software version of the coordinator node is different from the software version of the only one worker node;

activating a second worker node, wherein the coordinator node is configured to coordinate the write operations of both the first worker node and the second worker node; and

updating a software of the coordinator node, wherein after the updating the software version of the coordinator node is different from the software version of both the first worker node and the second worker node.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE FIRST NAME OF THE FIRST INVENTOR PREVIOUSLY RECORDED AT REEL: 69242 FRAME: 921. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 21, 2024
From: KUMAR, HEMANT, SHUKLA; KAYASTHA, TANAY JAYANT; KUMAR, SIDDHARTH; MARATHE, NANDAN
To: SAP SE
Reel/Frame 069430/0913 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 13, 2024
From: SHUKLA, HERMANT KUMAR; KAYASTHA, TANAY JAYANT; KUMAR, SIDDHARTH; MARATHE, NANDAN
To: SAP SE
Reel/Frame 069242/0921 →
Continuity (2)
Continuation 17528620 · Nov 17, 2021
Related Publication 20240143321A1 · May 2, 2024
References Cited (14)
US 11386072B1 · Narayan · 2022 [cited by examiner]
US 11662994B1 · Thompson · 2023 [cited by examiner]
US 20090328027A1 · Tsuchiya · 2009 [cited by examiner]
US 20120030184A1 · Driesen · 2012 [cited by examiner]
US 20160098443A1 · Specht et al. · 2016 [cited by applicant]
US 20160371356A1 · Lee et al. · 2016 [cited by applicant]
US 20200327104A1 · Anand · 2020 [cited by examiner]
US 20220382742A1 · Procek et al. · 2022 [cited by applicant]
Brewer, E.A., “Lessons from giant-scale services,” IEEE Internet Computing, vol. 5, No. 4, pp. 46-55, 2001. [cited by applicant]
Dumitras, T., and P. Narasimhan, “Why do upgrades fail and what can we do about it?” ACM/IFIP/USENIX International Conference on Distributed Systems Platforms and Open Distributed Processing, Springer, pp. 349-372, 2009. [cited by applicant]
“Use the Always on pattern to achieve zero downtime during outages,” downloaded from https://www.ibm.com/cloud/architecture/architecture/practices/achieve-zero-downtime/, 5 pages, printed Sep. 11, 2023. [cited by applicant]
“Zero Downtime Database Upgrade Using Oracle GoldenGate,” Oracle White Paper, downloaded from https://www.oracle.com/technetwork/middleware/goldengate/overview/ggzerodowntimedatabaseupgrades-174928.pdf, 19 pages, Aug. 2… [cited by applicant]
Neamtiu et al, “Cloud Software Upgrades: Challenges and Opportunities”, 2011, [Online], pp. 1-10, [Retrieved from internet on May 19, 2023], <https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=6049037> (Year: 2011). [cited by applicant]
Ajmani et al, “Modular Software Upgrades for Distributed Systems”, 2006, [Online], pp. 452-476, [Retrieved from internet], <https://link.springer.com/chapter/10.1007/11785477_26> (Year: 2006). [cited by applicant]