IP Library Granted Patent US 12,585,550
Granted Patent B1
US 12,585,550 · App. 18/240,786 · Granted Mar 24, 2026

Methods and systems for improved backup performance

Inventors: Vaijayanti Rakshit Bharadwaj (Pune, IN); Chirag Dalal (Pune, IN)
Assignee: Cohesity, Inc.
G06F11/1464G06F11/1451G06F11/1469G06F11/1471
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,585,550
App. No.
18/240,786
Granted
Mar 24, 2026
Kind
B1
Abstract

Methods, computer program products, computer systems, and the like for improved performance, when verifying backup images, are disclosed, which can include generating representational information (where the representational information is based, at least in part, on at least a portion of information of a top-level entity), retrieving a stored representational information (where the stored representational information is based, at least in part, on the at least the portion of the information of the top-level entity, the stored representational information is retrieved from log information produced as part of a backup operation, and the backup operation produced a backup image of the top-level entity), determining whether the representational information and the stored representational information match, and, in response to a determination that the representational information and the stored representational information do not match, indicating that the backup image of the top-level entity is corrupt.

Claims (108)

1 . A computer-implemented method, implemented in a computer system, comprising:

generating representational information, wherein the representational information is based, at least in part, on at least a portion of information of a top-level entity that includes a plurality of objects which include at least one new data segment or at least one modified data segment;

retrieving a stored representational information, wherein:

the stored representational information is based, at least in part, on the at least the portion of the information of the top-level entity,

the stored representational information is retrieved from log information produced as part of a backup operation, and

the backup operation produced a backup image of the top-level entity;

determining whether the representational information and the stored representational information match, wherein the representational information comprises an INLINE directive and the at least one new data segment or the at least one modified data segment; and

in response to a determination that the representational information and the stored representational information do not match, indicating that the backup image of the top-level entity is corrupt.

2 . The method of claim 1 , wherein the top-level entity comprises a plurality of objects, the computer system implements a backup host, and the computer-implemented method further comprises:

requesting one or more objects of the plurality of objects from a workload, wherein

the backup host and the workload are in communication with one another; and

receiving the one or more objects at the backup host, wherein

the information of the top-level entity comprises the one or more objects.

3 . The method of claim 2 , wherein

the backup image of the top-level entity is generated from a backup stream, and

the backup stream is assigned to the backup host, which backs up the backup stream into the backup image of the top-level entity.

4 . The method of claim 3 , wherein

the backup host is one of a plurality of backup hosts,

the backup stream comprises information regarding each object of the plurality of objects, and

the backup host backs up the information regarding each object of the plurality of objects into the backup image of the top-level entity.

5 . The method of claim 1 , wherein

the top-level entity is a container,

the container of one of a plurality of containers,

the log information is a tracklog that is one of a plurality of tracklogs, each of which corresponds to a corresponding backup stream of a plurality of backup streams, and

the backup image of the top-level entity is the backup stream of the plurality of backup streams that corresponds to the tracklog.

6 . The method of claim 1 , further comprising:

identifying one or more top-level entities, wherein

the one or more top-level entities comprise the top-level entity; and

for each top-level entity of the one or more top-level entities,

obtaining metadata of each top-level entity, and

performing the generating the representational information for the each top-level entity, using the metadata of each top-level entity.

7 . The method of claim 6 , further comprising:

for each top-level entity of the one or more top-level entities,

obtaining data of each top-level entity,

obtaining added/modified/deleted information for each top-level entity, and performing the generating the representational information for the each top-level entity, using the data of each top-level entity, the metadata of each top-level entity, and the added/modified/deleted information for each top-level entity.

8 . The method of claim 7 , wherein the top-level entity comprises a plurality of objects, the added/modified/deleted information for each top-level entity comprises added/modified/deleted information for each object of the plurality of objects, and the computer-implemented method further comprises:

retrieving stored added/modified/deleted information for each object of top-level entity from a workload;

determining whether the added/modified/deleted information for each object of the plurality of objects and the stored added/modified/deleted information for each object of top-level entity match; and

in response to a determination that the added/modified/deleted information for each object of the plurality of objects and the stored added/modified/deleted information for each object of top-level entity do not match, performing the indicating that the backup image of the top-level entity is corrupt.

9 . The method of claim 1 , wherein

the top-level entity comprises a plurality of objects,

the log information is a tracklog that maintains a tuple for each object of the plurality of objects, and

the tuple for each object of the plurality of objects comprises

an object identifier, and

object metadata.

10 . The method of claim 9 , wherein the generating the representational information comprises:

performing a hash operation on the object identifier of a tuple of an object of the plurality of objects; and

performing the hash operation on the object metadata of the tuple of the object of the plurality of objects.

11 . The method of claim 1 , wherein the top-level entity comprises a plurality of objects, and the computer-implemented method further comprises:

discarding the backup image of the top-level entity, wherein

the backup image of the top-level entity is corrupt as a result of a failure in the backup operation, corruption of a token or delta link representing an incremental backup image of one or more objects of the top-level entity, or corruption of the one or more objects of the top-level entity; and

generating another backup image of the top-level entity by performing the backup operation only as to the top-level entity.

12 . The method of claim 1 , further comprising:

in response to an indication that the backup image of the top-level entity is corrupt,

obtaining a prior incremental backup image of the top-level entity, wherein

the backup operation is an incremental backup operation,

the backup image of the top-level entity is an incremental backup image of the top-level entity,

the prior incremental backup image of the top-level entity was generated by a prior incremental backup operation, and

the prior incremental backup operation was performed prior to the incremental backup operation.

13 . The method of claim 1 , wherein the top-level entity is one of a plurality of top-level entities, the computer system implements a backup host of a plurality of backup hosts, and the computer-implemented method further comprises:

assigning each of the plurality of top-level entities to a corresponding one of the plurality of backup hosts; and

generating a corresponding backup stream at the corresponding one of a plurality of backup hosts by causing the corresponding one of the plurality of backup hosts to

perform a corresponding backup operation on the each of the plurality of top-level entities.

14 . The method of claim 13 , further comprising:

reassigning one or more of the each of the plurality of top-level entities from the corresponding one of the plurality of backup hosts to another corresponding one of the plurality of backup hosts; and

generating another corresponding backup stream at the another corresponding one of the plurality of backup hosts by causing the another corresponding one of the plurality of backup hosts to perform another corresponding backup operation on the one or more of the each of the plurality of top-level entities.

15 . The method of claim 1 , wherein

the top-level entity comprises a plurality of objects,

the plurality of objects are stored in a container, and

the top-level entity is one of

one or more files of a user account,

an electronic mail account,

a virtual disk, or

a virtual machine.

16 . A non-transitory computer-readable storage medium, comprising program instructions, which, when executed by one or more processors of a computing system, perform a method comprising:

generating representational information, wherein the representational information is based, at least in part, on at least a portion of information of a top-level entity that includes a plurality of objects which include at least one new data segment or at least one modified data segment;

retrieving a stored representational information, wherein

the stored representational information is based, at least in part, on the at least the portion of the information of the top-level entity,

the stored representational information is retrieved from log information produced as part of a backup operation, and

the backup operation produced a backup image of the top-level entity;

determining whether the representational information and the stored representational information match, wherein the representational information comprises an INLINE directive and the at least one new data segment or the at least one modified data segment; and

in response to a determination that the representational information and the stored representational information do not match, indicating that the backup image of the top-level entity is corrupt.

17 . The non-transitory computer-readable storage medium of claim 16 , wherein the top-level entity comprises a plurality of objects, the computer system implements a backup host, and the method further comprises:

requesting one or more objects of the plurality of objects from a workload, wherein

the backup host and the workload are in communication with one another; and

receiving the one or more objects at the backup host, wherein

the information of the top-level entity comprises the one or more objects.

18 . The non-transitory computer-readable storage medium of claim 16 , wherein the method further comprises:

identifying one or more top-level entities, wherein

the one or more top-level entities comprise the top-level entity; and

for each top-level entity of the one or more top-level entities,

obtaining metadata of each top-level entity, and

performing the generating the representational information for each top-level entity, using the metadata of each top-level entity.

19 . The non-transitory computer-readable storage medium of claim 16 , wherein the top-level entity is one of a plurality of top-level entities, the computer system implements a backup host of a plurality of backup hosts, and the method further comprises:

assigning each of the plurality of top-level entities to a corresponding one of the plurality of backup hosts;

generating a corresponding backup stream at the corresponding one of a plurality of backup hosts by causing the corresponding one of the plurality of backup hosts to perform a corresponding backup operation on each of the plurality of top-level entities;

reassigning one or more of each of the plurality of top-level entities from the corresponding one of the plurality of backup hosts to another corresponding one of the plurality of backup hosts; and

generating another corresponding backup stream at the another corresponding one of the plurality of backup hosts by causing the another corresponding one of the plurality of backup hosts to perform another corresponding backup operation on the one or more of the plurality of top-level entities.

20 . A computing system comprising:

one or more processors; and

a computer-readable storage medium coupled to the one or more processors, comprising program instructions, which, when executed by the one or more processors, perform a method comprising

generating representational information, wherein the representational information is based, at least in part, on at least a portion of information of a top-level entity that includes a plurality of objects which include at least one new data segment or at least one modified data segment,

retrieving a stored representational information, wherein

the stored representational information is based, at least in part, on the at least the portion of the information of the top-level entity,

the stored representational information is retrieved from log information produced as part of a backup operation, and

the backup operation produced a backup image of the top-level entity,

determining whether the representational information and the stored representational information match, wherein the representational information comprises an INLINE directive and the at least one new data segment or the at least one modified data segment, and

in response to a determination that the representational information and the stored representational information do not match, indicating that the backup image of the top-level entity is corrupt.

Assignments (1)
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Aug 6, 2025
From: COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 072373/0649 →
Continuity (2)
Continuation 17459612 · Aug 27, 2021
Provisional Application 63236552 · Aug 24, 2021
References Cited (13)
US 8504529B1 · Zheng · 2013 [cited by examiner]
US 8621165B1 · Sridharan · 2013 [cited by examiner]
US 9916207B2 · Oberhofer · 2018 [cited by examiner]
US 9959179B1 · Yu · 2018 [cited by examiner]
US 10031816B2 · Liu · 2018 [cited by examiner]
US 10146630B1 · Kumar · 2018 [cited by examiner]
US 11675501B2 · Gade · 2023 [cited by examiner]
US 20040139128A1 · Becker · 2004 [cited by examiner]
US 20060004846A1 · Murley · 2006 [cited by examiner]
US 20100262585A1 · Rosikiewicz · 2010 [cited by examiner]
US 20110208928A1 · Chandra · 2011 [cited by examiner]
US 20120233417A1 · Kalach · 2012 [cited by examiner]
US 20120254126A1 · Mitra · 2012 [cited by examiner]