IP Library Patent Application 17693002
Patent Application
App. No. 17/693,002

DYNAMIC MANAGEMENT OF VERSION DEPENDENCIES FOR EXECUTING PARALLEL WORKLOADS

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 None
App. No.
17/693,002
Abstract

A database management system may schedule, according to a first job allocation configuration, a first job allocation for a first computing node, where the first computing node is scheduled to perform a parent job. In some examples, the first job allocation configuration prevents scheduling the parent job on a computing node running a newer code version than a set of computing nodes running the set of child jobs until the set of child jobs terminates. The database management system may further schedule, according to a second job allocation configuration, a second job allocation for a second computing node, where the second computing node is scheduled to perform a child job of the set of child jobs. In some examples, the second job allocation configuration prevents scheduling the child job on computing nodes having a newer code version than the first computing node performing the parent job.

Claims (54)

1 . A method for managing code version dependencies, comprising:

initiating a rolling code update process to sequentially update a plurality of computing nodes of a computing cluster from a first code version to a second code version while the computing cluster remains active, wherein the plurality of computing nodes are configured to perform a plurality of parallelized jobs, and wherein a parent job of the plurality of parallelized jobs is configured to control a set of execution parameters for a set of child jobs of the plurality of parallelized jobs;

scheduling, according to a first job allocation configuration, a first job allocation for a first computing node of the plurality of computing nodes, wherein the first computing node is scheduled to perform the parent job, and wherein the first job allocation configuration prevents scheduling the parent job on a computing node running a newer code version than a set of computing nodes running the set of child jobs until the set of child jobs terminates; and

scheduling, according to a second job allocation configuration, a second job allocation for a second computing node of the plurality of computing nodes, wherein the second computing node is scheduled to perform a child job of the set of child jobs, and wherein the second job allocation configuration prevents scheduling the child job on computing nodes having a newer code version than the first computing node performing the parent job.

2 . The method of claim 1 , further comprising:

determining that the second computing node scheduled to perform the child job is upgraded to a newer code version than the first computing node scheduled to perform the parent job; and

scheduling, according to the second job allocation configuration, the child job on a third computing node of the plurality of computing nodes, wherein the third computing node has the same code version as the first computing node.

3 . The method of claim 1 , further comprising:

determining that the first computing node scheduled to perform the parent job is upgraded to a newer code version than the second computing node scheduled to perform the child job of the set of child jobs; and

migrating, according to the second job allocation configuration, the child job from the second computing node to a third computing node that has the newer code version as the upgraded first computing node, wherein the second job allocation configuration prevents scheduling the child job on computing nodes having a newer code version than the upgraded first computing node.

4 . The method of claim 1 , further comprising:

determining that the first computing node scheduled to perform the parent job is upgraded to a newer code version than the second computing node scheduled to perform the child job of the set of child jobs; and

terminating, according to the second job allocation configuration, the child job on the second computing node based at least in part on determining that the first computing node scheduled to perform the parent job is upgraded.

5 . The method of claim 1 , further comprising:

determining an interruption to the parent job during the rolling code update process; and

scheduling, according to the first job allocation configuration, a second job allocation for a third computing node of the plurality of computing nodes based at least in part on determining the interruption, wherein the third computing node is scheduled to perform the parent job, and wherein the first job allocation configuration prevents scheduling additional child jobs until active child jobs of the set of child jobs are terminated.

6 . The method of claim 1 , further comprising:

determining an interruption to the parent job during the rolling code update process; and

scheduling, according to the first job allocation configuration, a second job allocation for a third computing node of the plurality of computing nodes based at least in part on determining the interruption, wherein the third computing node is scheduled to perform the parent job, and wherein the first job allocation configuration prevents scheduling a child job callback until active child jobs of the set of child jobs are terminated.

7 . The method of claim 1 , wherein the first job allocation configuration and the second job allocation configuration configure the parent job and the set of child jobs to run on the same code version.

8 . The method of claim 1 , wherein the second job allocation configuration prevents scheduling one or more queued child jobs on a computing node running a different code version than a computing node running the parent job.

9 . The method of claim 1 , wherein the plurality of parallelized jobs comprises a plurality of subtasks of a workload.

10 . An apparatus for managing code version dependencies, comprising:

a processor;

memory coupled with the processor; and

instructions stored in the memory and executable by the processor to cause the apparatus to:

initiate a rolling code update process to sequentially update a plurality of computing nodes of a computing cluster from a first code version to a second code version while the computing cluster remains active, wherein the plurality of computing nodes are configured to perform a plurality of parallelized jobs, and wherein a parent job of the plurality of parallelized jobs is configured to control a set of execution parameters for a set of child jobs of the plurality of parallelized jobs;

schedule, accord to a first job allocation configuration, a first job allocation for a first computing node of the plurality of computing nodes, wherein the first computing node is scheduled to perform the parent job, and wherein the first job allocation configuration prevents scheduling the parent job on a computing node running a newer code version than a set of computing nodes running the set of child jobs until the set of child jobs terminates; and

schedule, accord to a second job allocation configuration, a second job allocation for a second computing node of the plurality of computing nodes, wherein the second computing node is scheduled to perform a child job of the set of child jobs, and wherein the second job allocation configuration prevents scheduling the child job on computing nodes having a newer code version than the first computing node performing the parent job.

11 . The apparatus of claim 10 , wherein the instructions are further executable by the processor to cause the apparatus to:

determine that the second computing node scheduled to perform the child job is upgraded to a newer code version than the first computing node scheduled to perform the parent job; and

schedule, accord to the second job allocation configuration, the child job on a third computing node of the plurality of computing nodes, wherein the third computing node has the same code version as the first computing node.

12 . The apparatus of claim 10 , wherein the instructions are further executable by the processor to cause the apparatus to:

determine that the first computing node scheduled to perform the parent job is upgraded to a newer code version than the second computing node scheduled to perform the child job of the set of child jobs; and

migrate, according to the second job allocation configuration, the child job from the second computing node to a third computing node that has the newer code version as the upgraded first computing node, wherein the second job allocation configuration prevents scheduling the child job on computing nodes having a newer code version than the upgraded first computing node.

13 . The apparatus of claim 10 , wherein the instructions are further executable by the processor to cause the apparatus to:

determine that the first computing node scheduled to perform the parent job is upgraded to a newer code version than the second computing node scheduled to perform the child job of the set of child jobs; and

terminate, according to the second job allocation configuration, the child job on the second computing node based at least in part on determining that the first computing node scheduled to perform the parent job is upgraded.

14 . The apparatus of claim 10 , wherein the instructions are further executable by the processor to cause the apparatus to:

determine an interruption to the parent job during the rolling code update process; and

schedule, accord to the first job allocation configuration, a second job allocation for a third computing node of the plurality of computing nodes based at least in part on determining the interruption, wherein the third computing node is scheduled to perform the parent job, and wherein the first job allocation configuration prevents scheduling additional child jobs until active child jobs of the set of child jobs are terminated.

15 . The apparatus of claim 10 , wherein the instructions are further executable by the processor to cause the apparatus to:

determine an interruption to the parent job during the rolling code update process; and

schedule, accord to the first job allocation configuration, a second job allocation for a third computing node of the plurality of computing nodes based at least in part on determining the interruption, wherein the third computing node is scheduled to perform the parent job, and wherein the first job allocation configuration prevents scheduling a child job callback until active child jobs of the set of child jobs are terminated.

16 . The apparatus of claim 10 , wherein the first job allocation configuration and the second job allocation configuration configure the parent job and the set of child jobs to run on the same code version.

17 . The apparatus of claim 10 , wherein the second job allocation configuration prevents scheduling one or more queued child jobs on a computing node running a different code version than a computing node running the parent job.

18 . The apparatus of claim 10 , wherein the plurality of parallelized jobs comprises a plurality of subtasks of a workload.

19 . A non-transitory computer-readable medium storing code for managing code version dependencies, the code comprising instructions executable by a processor to:

initiate a rolling code update process to sequentially update a plurality of computing nodes of a computing cluster from a first code version to a second code version while the computing cluster remains active, wherein the plurality of computing nodes are configured to perform a plurality of parallelized jobs, and wherein a parent job of the plurality of parallelized jobs is configured to control a set of execution parameters for a set of child jobs of the plurality of parallelized jobs;

schedule, accord to a first job allocation configuration, a first job allocation for a first computing node of the plurality of computing nodes, wherein the first computing node is scheduled to perform the parent job, and wherein the first job allocation configuration prevents scheduling the parent job on a computing node running a newer code version than a set of computing nodes running the set of child jobs until the set of child jobs terminates; and

schedule, accord to a second job allocation configuration, a second job allocation for a second computing node of the plurality of computing nodes, wherein the second computing node is scheduled to perform a child job of the set of child jobs, and wherein the second job allocation configuration prevents scheduling the child job on computing nodes having a newer code version than the first computing node performing the parent job.

20 . The non-transitory computer-readable medium of claim 19 , wherein the instructions are further executable by the processor to:

determine that the second computing node scheduled to perform the child job is upgraded to a newer code version than the first computing node scheduled to perform the parent job; and

schedule, accord to the second job allocation configuration, the child job on a third computing node of the plurality of computing nodes, wherein the third computing node has the same code version as the first computing node.

Assignments (3)
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 60333/0323 Recorded Jun 13, 2025
From: GOLDMAN SACHS BDC, INC., AS COLLATERAL AGENT
To: RUBRIK, INC.
Reel/Frame 071565/0602 →
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 10, 2022
From: RUBRIK, INC.
To: GOLDMAN SACHS BDC, INC., AS COLLATERAL AGENT
Reel/Frame 060333/0323 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 11, 2022
From: AGRAWAL, SMRITI; BEEKMAN, PATRICIA ANN; SMITH, SCHUYLER MERRITT; SHEKAR, AJAY
To: RUBRIK, INC.
Reel/Frame 059245/0786 →