IP Library Granted Patent US 12,639,015
Granted Patent B2
US 12,639,015 · App. 18/140,703 · Granted May 26, 2026

Time synchronization across independent input/output schedulers

Inventors: Nitin Rathor (Mountain View, CA); Keon Jang (Los Altos, CA)
Assignee: Rubrik, Inc.
G06F3/0674G06F3/0613G06F3/0631G06F3/0659
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,639,015
App. No.
18/140,703
Granted
May 26, 2026
Kind
B2
Abstract

Methods, systems, and devices for data management are described. A data management system (DMS) may include multiple disks. A distributed file system may be stored across the multiple disks. The DMS may receive a request to perform a first job for the distributed file system. The DMS may send the first job for execution, during a time period, by a set of disks. The first job may correspond to input/output (I/O) operations associated with a first priority that is higher than second priorities associated with second jobs for execution by the set of disks. Respective timings for executing the second jobs may be based on respective availabilities of resources at the set of disks. The DMS may synchronize, during the time period, the respective availabilities of resources across the set of disks based on the set of disks executing the first job associated with the first priority.

Claims (64)

1 . A method, comprising:

receiving, at a data management system, a request to perform a first job for a distributed file system, the first job associated with one or more input/output operations for the distributed file system, wherein the data management system comprises a plurality of disks and the distributed file system is stored across the plurality of disks;

sending, by the data management system, the first job for execution, during a time period, by a set of multiple different disks from among the plurality of disks, the first job and corresponding one or more input/output operations associated with a first priority, wherein the first priority is based at least in part on a first type of the first job and the first priority is higher than second priorities associated with one or more second jobs for execution by the set of multiple different disks, and wherein the second priorities of the one or more second jobs are based at least in part on second types of the one or more second jobs; and

synchronizing, during the time period and across the set of multiple different disks, respective availabilities of resources associated with the one or more second jobs based at least in part on the set of multiple different disks executing the first job during the time period, wherein;

respective timings of execution of the one or more second jobs by the set of multiple different disks during the time period are based at least in part on the respective availabilities of resources at the set of multiple different disks that are associated with execution of the one or more second jobs,

execution of the first job is paused at the set of multiple different disks during a second time period associated with the execution of the one or more second jobs based at least in part on the first priority associated with the first job being higher than the second priorities associated with the one or more second jobs, and

the second time period is within the time period.

2 . The method of claim 1 , wherein synchronizing the respective availabilities of the resources comprises:

synchronizing the respective availabilities of the resources at the set of multiple different disks in accordance with a global clock of the data management system, wherein the synchronizing is performed at a disk of the set of multiple different disks independently from other disks of the set of multiple different disks based at least in part on the global clock of the data management system.

3 . The method of claim 1 , wherein synchronizing the respective availabilities of the resources comprises:

synchronizing, across the set of multiple different disks during the time period based at least in part on the set of multiple different disks executing the first job, respective start times for a resource deposition periodicity, wherein disks of the set of multiple different disks deposit respective sets of resources within a threshold time period of one another based at least in part on synchronizing the respective start times for the resource deposition periodicity.

4 . The method of claim 3 , further comprising:

depositing, at a disk of the set of multiple different disks, a first set of resources at a respective starting time for the resource deposition periodicity; and

depositing, at the disk of the set of multiple different disks, one or more second sets of resources at one or more second times after the respective starting time in accordance with the resource deposition periodicity.

5 . The method of claim 3 , further comprising:

initiating, by at least two disks of the set of multiple different disks, execution of the one or more second jobs within the threshold time period based at least in part on available resources deposited in accordance with the synchronized respective start times for the resource deposition periodicity.

6 . The method of claim 3 , wherein the resource deposition periodicity is the same across the set of multiple different disks.

7 . The method of claim 3 , further comprising:

determining that a quantity of jobs for the distributed file system associated with a priority above a threshold priority level are performed within a first time period; and

determining a quantity of resources included in the respective sets of resources deposited within the threshold time period based at least in part on the quantity of jobs performed within the first time period.

8 . The method of claim 1 , further comprising:

executing, by the set of multiple different disks during the time period, the first job; and

executing, by at least two disks of the set of multiple different disks during the second time period, the one or more second jobs based at least in part on synchronizing the respective availabilities of resources across the set of multiple different disks, wherein execution of the first job by the set of multiple different disks is paused during the second time period based at least in part on executing the one or more second jobs.

9 . The method of claim 8 , wherein the first job is associated with one or more write or read operations associated with a set of data of the distributed file system, and wherein executing the first job comprises:

writing or reading a first chunk of data from among the set of data to or from the set of multiple different disks within a first time period; and

writing or reading remaining chunks of data from among the set of data to the set of multiple different disks within one or more second time periods that begin after the first time period.

10 . The method of claim 9 , wherein writing or reading a chunk of data from among the set of data to the set of multiple different disks comprises:

writing or reading a first slice of data from among the chunk of data to a first disk of the set of multiple different disks at a first time; and

writing or reading remaining slices of data from among the chunk of data to remaining disks of the set of multiple different disks at respective second times that are after the first time.

11 . The method of claim 8 , wherein executing a second job of the one or more second jobs comprises:

writing or reading data associated with the second job to or from a respective disk of the set of multiple different disks during the second time period, wherein the second job is associated with one or more write or read operations for the respective disk.

12 . The method of claim 1 , further comprising:

determining the first priority of the first job based at least in part on the first type of the first job, wherein the one or more input/output operations are associated with the first priority; and

determining the second priorities of the one or more second jobs based at least in part on the second types of the one or more second jobs, wherein the one or more second jobs are associated with one or more second input/output operations, and the one or more second input/output operations are associated with the second priorities.

13 . An apparatus, comprising:

one or more processors;

memory coupled with the one or more processors; and

instructions stored in the memory and executable by the one or more processors to cause the apparatus to:

receive, at a data management system, a request to perform a first job for a distributed file system, the first job associated with one or more input/output operations for the distributed file system, wherein the data management system comprises a plurality of disks and the distributed file system is stored across the plurality of disks;

send the first job for execution, during a time period, by a set of multiple different disks from among the plurality of disks, the first job and corresponding one or more input/output operations associated with a first priority, wherein the first priority is based at least in part on a first type of the first job and the first priority is higher than second priorities associated with one or more second jobs for execution by the set of multiple different disks, and wherein the second priorities of the one or more second jobs are based at least in part on second types of the one or more second jobs; and

synchronize, during the time period and across the set of multiple different disks, respective availabilities of resources associated with the one or more second jobs based at least in part on the set of multiple different disks executing the first job during the time period, wherein:

respective timings of execution of the one or more second jobs by the set of multiple different disks during the time period are based at least in part on the respective availabilities of resources at the set of multiple different disks that are associated with execution of the one or more second jobs,

execution of the first job is paused at the set of multiple different disks during a second time period associated with the execution of the one or more second jobs based at least in part on the first priority associated with the first job being higher than the second priorities associated with the one or more second jobs, and

the second time period is within the time period.

14 . The apparatus of claim 13 , wherein the instructions to synchronize the respective availabilities of the resources are executable by the one or more processors to cause the apparatus to:

synchronize the respective availabilities of the resources at the set of multiple different disks in accordance with a global clock of the data management system, wherein the synchronizing is performed at a disk of the set of multiple different disks independently from other disks of the set of multiple different disks based at least in part on the global clock of the data management system.

15 . The apparatus of claim 13 , wherein the instructions to synchronize the respective availabilities of the resources are executable by the one or more processors to cause the apparatus to:

synchronize, across the set of multiple different disks during the time period based at least in part on the set of multiple different disks executing the first job, respective start times for a resource deposition periodicity, wherein disks of the set of multiple different disks deposit respective sets of resources within a threshold time period of one another based at least in part on synchronizing the respective start times for the resource deposition periodicity.

16 . The apparatus of claim 15 , wherein the instructions are further executable by the one or more processors to cause the apparatus to:

deposit, at a disk of the set of multiple different disks, a first set of resources at a respective starting time for the resource deposition periodicity; and

deposit, at the disk of the set of multiple different disks, one or more second sets of resources at one or more second times after the respective starting time in accordance with the resource deposition periodicity.

17 . The apparatus of claim 15 , wherein the instructions are further executable by the one or more processors to cause the apparatus to:

initiate, by at least two disks of the set of multiple different disks, execution of the one or more second jobs within the threshold time period based at least in part on available resources deposited in accordance with the synchronized respective start times for the resource deposition periodicity.

18 . A non-transitory computer-readable medium storing code, the code comprising instructions executable by one or more processors to:

receive, at a data management system, a request to perform a first job for a distributed file system, the first job associated with one or more input/output operations for the distributed file system, wherein the data management system comprises a plurality of disks and the distributed file system is stored across the plurality of disks;

send the first job for execution, during a time period, by a set of multiple different disks from among the plurality of disks, the first job and corresponding one or more input/output operations associated with a first priority, wherein the first priority is based at least in part on a first type of the first job and the first priority is higher than second priorities associated with one or more second jobs for execution by the set of multiple different disks, and wherein the second priorities of the one or more second jobs are based at least in part on second types of the one or more second jobs; and

synchronize, during the time period and across the set of multiple different disks, respective availabilities of resources associated with the one or more second jobs based at least in part on the set of multiple different disks executing the first job during the time period, wherein:

respective timings of execution of the one or more second jobs by the set of multiple different disks during the time period are based at least in part on the respective availabilities of resources at the set of multiple different disks that are associated with execution of the one or more second jobs,

execution of the first job is paused at the set of multiple different disks during a second time period associated with the execution of the one or more second jobs based at least in part on the first priority associated with the first job being higher than the second priorities associated with the one or more second jobs, and

the second time period is within the time period.

19 . The non-transitory computer-readable medium of claim 18 , wherein the instructions to synchronize the respective availabilities of the resources are executable by the one or more processors to:

synchronize the respective availabilities of the resources at the set of multiple different disks in accordance with a global clock of the data management system, wherein the synchronizing is performed at a disk of the set of multiple different disks independently from other disks of the set of multiple different disks based at least in part on the global clock of the data management system.

20 . The non-transitory computer-readable medium of claim 18 , wherein the instructions to synchronize the respective availabilities of the resources are executable by the one or more processors to:

synchronize, across the set of multiple different disks during the time period based at least in part on the set of multiple different disks executing the first job, respective start times for a resource deposition periodicity, wherein disks of the set of multiple different disks deposit respective sets of resources within a threshold time period of one another based at least in part on synchronizing the respective start times for the resource deposition periodicity.

Assignments (3)
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 64659/0236 Recorded Jun 13, 2025
From: GOLDMAN SACHS BDC, INC., AS COLLATERAL AGENT
To: RUBRIK, INC.
Reel/Frame 071566/0187 →
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Aug 21, 2023
From: RUBRIK, INC.
To: GOLDMAN SACHS BDC, INC., AS COLLATERAL AGENT
Reel/Frame 064659/0236 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 28, 2023
From: RATHOR, NITIN; JANG, KEON
To: RUBRIK, INC.
Reel/Frame 063475/0573 →
Continuity (1)
Related Publication 20240361960A1 · Oct 31, 2024
References Cited (7)
US 20050044311A1 · Lahiri · 2005 [cited by examiner]
US 20140115719A1 · Noda · 2014 [cited by examiner]
US 20140245299A1 · Yadappanavar · 2014 [cited by examiner]
US 20150347327A1 · Blaine · 2015 [cited by examiner]
US 20190377610A1 · Gupta · 2019 [cited by examiner]
US 20200192711A1 · Zhang · 2020 [cited by examiner]
US 20210004163A1 · Xu · 2021 [cited by examiner]