IP Library Granted Patent US 12,164,385
Granted Patent B2
US 12,164,385 · App. 18/415,402 · Granted Dec 10, 2024

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,164,385
App. No.
18/415,402
Granted
Dec 10, 2024
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 (34)

1. A method, comprising:

traversing, by a prefetcher, an assigned subgroup that includes a plurality of entries;

determining 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, determining that a last read entry associated with the assigned subgroup does not correspond to a last entry associated with the assigned subgroup; and

preempting the prefetcher by stopping the prefetcher from obtaining a list of entries associated with a remaining portion of the assigned subgroup.

2. The method of claim 1 , wherein the assigned subgroup includes a starting partition identifier and an ending partition identifier.

3. The method of claim 2 , wherein the ending partition identifier is a second partition identifier associated with a different subgroup.

4. The method of claim 1 , wherein the assigned subgroup is traversed utilizing an applications programming interface associated with a cloud object storage to obtain the list of objects stored in an object storage bucket.

5. The method of claim 1 , wherein the last entry associated with the assigned subgroup corresponds to a partition identifier of a first entry associated with a subsequent subgroup.

6. The method of claim 1 , further comprising updating a checkpoint file.

7. The method of claim 6 , wherein entries associated with the assigned subgroup are stored in the checkpoint file in lexicographically sorted order.

8. The method of claim 6 , wherein the checkpoint file is updated to include the plurality of entries associated with the assigned subgroup.

9. The method of claim 1 , further comprising subdividing the remaining portion of the assigned subgroup into a plurality of subsets.

10. The method of claim 9 , wherein the remaining portion of the assigned subgroup is subdivided into the plurality of subsets utilizing a checkpoint file associated with a previous backup and a checkpoint file associated with a current backup.

11. The method of claim 10 , wherein subdividing the remaining portion of the assigned subgroup into a plurality of subsets includes determining a last entry included in the checkpoint file associated with the current backup.

12. The method of claim 11 , wherein subdividing a remaining portion of the assigned subgroup into a plurality of subsets includes determining that last entry included in the checkpoint file associated with the current backup is also included in the checkpoint file associated with the previous backup.

13. The method of claim 12 , wherein subdividing a remaining portion of the assigned subgroup into a plurality of subsets further includes determining a number of entries between the last entry associated with the assigned subgroup and a last entry for the assigned subgroup in the checkpoint file associated with the previous backup.

14. The method of claim 13 , wherein the remaining portion of the assigned subgroup is further subdivided based on the determined number of entries.

15. The method of claim 11 , wherein subdividing a remaining portion of the assigned subgroup into a plurality of subsets includes determining that last entry included in the checkpoint file associated with the current backup is not also included in the checkpoint file associated with the previous backup.

16. The method of claim 15 , wherein subdividing a remaining portion of the assigned subgroup into a plurality of subsets further includes determining an entry that precedes the last entry included in the checkpoint file associated with the current backup and a last entry for the assigned subgroup included in the checkpoint file associated with the previous backup.

17. The method of claim 16 , wherein subdividing a remaining portion of the assigned subgroup into a plurality of subsets further includes determining a number of entries between the determined entry that precedes the last entry included in the checkpoint file associated with the current backup and the last entry for the assigned subgroup included in the checkpoint file associated with the previous backup.

18. The method of claim 17 , wherein the remaining portion of the assigned subgroup is further subdivided based on the determined number of entries.

19. A computer program product embodied in a non-transitory computer readable medium and comprising computer instructions for:

traversing, by a prefetcher, an assigned subgroup that includes a plurality of entries;

determining 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, determining that a last read entry associated with the assigned subgroup does not correspond to a last entry associated with the assigned subgroup; and

preempting the prefetcher by stopping the prefetcher from obtaining a list of entries associated with a remaining portion of the assigned subgroup.

20. A system, comprising:

a processor configured to:

traverse, by a prefetcher, an assigned subgroup that includes a plurality of entries;

determine 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, determine that a last read entry associated with the assigned subgroup does not correspond to a last entry associated with the assigned subgroup; and

preempt the prefetcher by stopping the prefetcher from obtaining a list of entries associated with a remaining portion of the assigned subgroup; and

a memory coupled to the processor and configured to provide the processor with instructions.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2025
From: GAUTAM, AMANDEEP; GUTURI, VENKATA RANGA RADHANIKANTH
To: COHESITY, INC.
Reel/Frame 070229/0326 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
Continuity (2)
Continuation 17872307 · Jul 25, 2022
Related Publication 20240152430A1 · May 9, 2024