IP Library Granted Patent US 12,572,427
Granted Patent B2
US 12,572,427 · App. 18/932,851 · Granted Mar 10, 2026

Parallelization of incremental backups

Inventors: Amandeep Gautam (San Jose, CA); Venkata Ranga Radhanikanth Guturi (San Jose, CA)
Assignee: Cohesity, Inc.
G06F11/1451G06F11/1461G06F2201/84
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,572,427
App. No.
18/932,851
Granted
Mar 10, 2026
Kind
B2
Abstract

An assigned subgroup that includes a plurality of entries is traversed by a prefetcher. It is determined that an expected number of entries associated with the assigned subgroup have been traversed. In response to determining that expected number of entries associated with the assigned subgroup have been traversed, it is determined that a last read entry associated with the assigned subgroup does not correspond to a last entry associated with the assigned subgroup. The prefetcher is preempted by stopping the prefetcher from obtaining a list of entries associated with a remaining portion of the assigned subgroup.

Claims (40)

1 . A method, comprising:

invoking an application programming interface to obtain a list of objects associated with a subgroup assigned to a prefetcher;

updating, in response to determining that an entry of the obtained list of objects includes a partition identifier associated with a subsequent subgroup, a checkpoint file to include entries corresponding to the list of objects except the entry corresponding to the partition identifier associated with the subsequent subgroup and any entries that are sequentially after the entry that includes the partition identifier associated with the subsequent subgroup;

receiving, by a prefetcher, an indication that the checkpoint file has been updated;

determining, by the prefetcher, a plurality of differences between the updated checkpoint file and a checkpoint file associated with a previous backup; and

ingesting, by the prefetcher and concurrent to determining at least one of the plurality of differences, the plurality of determined differences.

2 . The method of claim 1 , further comprising discarding any entries that are sequentially after the entry corresponding to the partition identifier associated with the subsequent subgroup.

3 . The method of claim 1 , wherein determining the one or more differences comprises:

obtaining the checkpoint file associated with the previous backup;

reading a portion of the checkpoint file associated with the previous backup corresponding to objects assigned to the prefetcher; and

comparing the objects included in the read portion of the checkpoint file associated with the previous backup to objects included in an updated portion of the updated checkpoint file associated with a current backup to determine the one or more differences.

4 . The method of claim 3 , wherein the objects included in the checkpoint file associated with the previous backup and the updated checkpoint file associated with the current backup are listed in lexicographically sorted order.

5 . The method of claim 3 , wherein determining the plurality of differences comprises identifying one or more of the plurality of differences between a current state of an object storage bucket and a previous state of the object storage bucket corresponding to the previous backup.

6 . The method of claim 1 , wherein data associated with the one or more determined differences includes one or more object metadata and object data content.

7 . The method of claim 1 , wherein data associated with the plurality of differences indicates that an object was deleted after the previous backup.

8 . The method of claim 1 , wherein data associated with the one or more determined differences includes one or more of metadata associated with an object that changed after the previous backup, changed data associated with an object after the previous backup, object metadata and object content data associated with an object that was created after the previous backup.

9 . A system device, comprising:

a memory configured to store instructions that implement a prefetcher,

one or more processors configured to execute the instructions to implement the prefetcher, the prefetcher configured to:

invoke an application programming interface to obtain a list of objects associated with a subgroup assigned to the prefetcher;

update, in response to determining that an entry of the obtained list of objects includes a partition identifier associated with a subsequent subgroup, a checkpoint file to include entries corresponding to the list of objects except the entry corresponding to the partition identifier associated with the subsequent subgroup an any entries that are sequentially after the entry that includes the partition identifier associated with the subsequent subgroup;

receive an indication that the checkpoint file has been updated;

determine a plurality of differences between the updated checkpoint file and a checkpoint file associated with a previous backup; and

ingesting, concurrent to determining at least one of the plurality of differences, the plurality of determined differences.

10 . The computing system of claim 9 , wherein the one or more processors are configured to discard any entries that are sequentially after the entry corresponding to the partition identifier associated with the subsequent subgroup.

11 . The computing system of claim 9 , wherein the prefetcher is configured to:

obtain the checkpoint file associated with the previous backup;

read a portion of the checkpoint file associated with the previous backup corresponding to objects assigned to the prefetcher; and

compare the objects included in the read portion of the checkpoint file associated with the previous backup to objects included in an updated portion of the updated checkpoint file associated with a current backup to determine the one or more differences.

12 . The computing system of claim 11 , wherein the objects included in the checkpoint file associated with the previous backup and the updated checkpoint file associated with the current backup are listed in lexicographically sorted order.

13 . The computing system of claim 11 , wherein the prefetcher is configured to identify one or more of the plurality of differences between a current state of an object storage bucket and a previous state of the object storage bucket corresponding to the previous backup.

14 . The computing system of claim 9 , wherein data associated with the one or more determined differences includes one or more object metadata and object data content.

15 . The computing system of claim 9 , wherein data associated with the plurality of differences indicates that an object was deleted after the previous backup.

16 . The computing system of claim 9 , wherein data associated with the one or more determined differences includes one or more of metadata associated with an object that changed after the previous backup, changed data associated with an object after the previous backup, object metadata and object content data associated with an object that was created after the previous backup.

17 . Non-transitory computer-readable media storing instructions that, when executed, cause one or more processors to execute a prefetcher configured to:

invoke an application programming interface to obtain a list of objects associated with a subgroup assigned to the prefetcher;

update, in response to determining that an entry of the obtained list of objects includes a partition identifier associated with a subsequent subgroup, a checkpoint file to include entries corresponding to the list of objects except the entry corresponding to the partition identifier associated with the subsequent subgroup an any entries that are sequentially after the entry that includes the partition identifier associated with the subsequent subgroup;

receive an indication that the checkpoint file has been updated;

determine a plurality of differences between the updated checkpoint file and a checkpoint file associated with a previous backup; and

ingest, concurrent to determining at least one of the plurality of differences, the plurality of determined differences.

Assignments (3)
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Aug 6, 2025
From: COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 072373/0649 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2025
From: GAUTAM, AMANDEEP; GUTURI, VENKATA RANGA RADHANIKANTH
To: COHESITY, INC.
Reel/Frame 070239/0225 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2024
From: GAUTAM, AMANDEEP; GUTURI, VENKATA RANGA RADHANIKANTH
To: COHESITY, INC.
Reel/Frame 069086/0837 →
Continuity (3)
Continuation 18415402 · Jan 17, 2024
Continuation 17872307 · Jul 25, 2022
Related Publication 20250061028A1 · Feb 20, 2025
References Cited (28)
US 7574461B1 · Armorer · 2009 [cited by applicant]
US 8209540B2 · Brouwer · 2012 [cited by examiner]
US 8495022B1 · Zhu · 2013 [cited by examiner]
US 8972678B2 · Huang · 2015 [cited by examiner]
US 9063898B1 · Merchant · 2015 [cited by applicant]
US 10025673B1 · Maccanti · 2018 [cited by applicant]
US 11645161B2 · Slater · 2023 [cited by examiner]
US 11656992B2 · Radi et al. · 2023 [cited by applicant]
US 11921587B2 · Gautam et al. · 2024 [cited by applicant]
US 12222824B2 · Frick · 2025 [cited by examiner]
US 20090150628A1 · Nakano et al. · 2009 [cited by applicant]
US 20110082832A1 · Vadali · 2011 [cited by examiner]
US 20120030260A1 · Lu · 2012 [cited by applicant]
US 20130198473A1 · Reed · 2013 [cited by examiner]
US 20150268864A1 · Bernat et al. · 2015 [cited by applicant]
US 20200104259A1 · Wang · 2020 [cited by examiner]
US 20200117365A1 · Patwardhan · 2020 [cited by examiner]
US 20210200641A1 · Bafna · 2021 [cited by applicant]
US 20220043775A1 · Sharma · 2022 [cited by applicant]
US 20220050858A1 · Karr et al. · 2022 [cited by applicant]
US 20220197749A1 · Yadav · 2022 [cited by examiner]
US 20230096910A1 · Chunekar · 2023 [cited by examiner]
US 20240152430A1 · Gautam et al. · 2024 [cited by applicant]
US 20240256568A1 · Schmoll et al. · 2024 [cited by applicant]
Extended Search Report from counterpart European Application No. 23187471.0 dated Nov. 29, 2023, 10 pp. [cited by applicant]
Prosecution History from U.S. Appl. No. 17/872,307, dated Jun. 23, 2023 through Feb. 1, 2024, 21 pp. [cited by applicant]
Prosecution History from U.S. Appl. No. 18/415,402, dated Aug. 22, 2024 through Sep. 26, 2024, 11 pp. [cited by applicant]
Response to Extended Search Report dated Nov. 29, 2023, from counterpart European Application No. 23187471.0 filed Jul. 22, 2024, 23 pp. [cited by applicant]