IP Library Granted Patent US 11,567,913
Granted Patent B2
US 11,567,913 · App. 16/380,730 · Granted Jan 31, 2023

Method and system for improving efficiency in the management of data references

Inventors: Xianbo Zhang (Plymouth, MN); Jialun Liu (Shoreview, MN); Weibao Wu (Vadnais Heights, MN)
Assignee: Veritas Technologies LLC
G06F16/215G06F16/2358
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 11,567,913
App. No.
16/380,730
Granted
Jan 31, 2023
Kind
B2
Abstract

Methods, computer program products, and computer systems for the management of data references in an efficient and effective manner are disclosed. Such methods, computer program products, and computer systems include receiving a change tracking stream at the computer system, identifying a data object group, and performing a deduplication management operation on the data object group. The change tracking stream is received from a client computing system. The change tracking stream identifies one or more changes made to a plurality of data objects of the client computing system. The identifying is based, at least in part, on at least a portion of the change tracking stream. The data object group represents the plurality of data objects.

Claims (164)

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

receiving a change tracking stream at the computer system, wherein

the change tracking stream is received from a client computing system, and

the change tracking stream identifies one or more changes made to a plurality of data objects of the client computing system;

selecting a selected data object of the plurality of data objects by selecting a selected change of the one or more changes;

for the selected data object, identifying a data object group, wherein

the identifying is based, at least in part, on a data object group identifier associated with the selected data object,

the data object group identifier is associated with the selected data object based, at least in part, on

an amount of data in the data object group, and/or

a number of data objects in the data object group, and

the data object group represents the plurality of data objects;

determining whether the selected change refers to the data object;

in response to a determination that the selected change refers to the data object, performing an operation on the data object;

determining whether the selected change refers to the data object group; and

in response to a determination that the selected change refers to the data object group, performing a deduplication management operation on the data object group.

2. The method of claim 1 , further comprising:

creating the data object group, wherein

the creating comprises

creating a data object group record,

identifying the plurality of data objects, and

associating the plurality of data objects with the data object group.

3. The method of claim 2 , wherein the associating comprises:

including, in the data object group record, a data object identifier for each of the plurality of data objects, wherein

the data object identifier is comprised in a plurality of data object identifiers.

4. The method of claim 3 , wherein

change tracking stream comprises

the plurality of data object identifiers, wherein

each of the plurality of data object identifiers identifies a data object of the plurality of data objects, and

information identifying a change to each data object of the plurality of data objects.

5. The method of claim 2 , wherein the associating comprises:

determining a data object group identifier of the data object group;

including the data object group identifier in the data object group record; and

creating a data object group reference to the data object group record, using the data object group identifier.

6. The method of claim 1 , wherein

the deduplication management operation is a group deletion operation, comprising

deleting the data object group, and

performing a dereference operation on a reference to a container of the data object group.

7. The method of claim 1 , wherein

the data object group is one of a plurality of data object groups,

a first change affects a first data object of a first data object group of the plurality of data object groups,

a second change affects a second data object of a second data object group of the plurality of data object groups, and

the deduplication management operation is a group update operation, comprising

creating another data object group comprising the first data object and the second data object, wherein

the creating comprises creating a data object group reference that references the another data object group,

deleting the first data object from the first data object group, and

deleting the second data object from the second data object group.

8. The method of claim 1 , wherein

the data object group is one of a plurality of data object groups,

a first change affects a first data object of a first data object group of the plurality of data object groups,

a second change affects a second data object of a second data object group of the plurality of data object groups, and

the deduplication management operation is a group merge operation, comprising

creating another data object group comprising one or more data objects from the first data object group, other than the first data object, and one or more data objects from the second data object group, other than the second data object, wherein

the creating comprises creating a data object group reference that references the another data object group,

deleting the first data object group, wherein

the deleting the first data object group comprises performing a dereference operation on a reference in a container reference database, and

deleting the second data object group, wherein

the deleting the second data object group comprises performing another dereference operation on another reference to a container of the second data object group.

9. A computer program product comprising:

a plurality of instructions, comprising

a first set of instructions, executable by a processor of a computer system, configured to receive a change tracking stream at the computer system, wherein

the change tracking stream is received from a client computing system, and

the change tracking stream identifies one or more changes made to a plurality of data objects of the client computing system,

a second set of instructions, executable by the processor, configured to select a selected data object of the plurality of data objects by selecting a selected change of the one or more changes,

a third set of instructions, executable by the processor, configured to, for the selected data object, identify a data object group, wherein

the data object group is identified based, at least in part, on a data object group identifier associated with the selected data object

the data object group identifier is associated with the selected data object based, at least in part, on

an amount of data in the data object group, and/or

a number of data objects in the data object group, and

the data object group represents the plurality of data objects, and

a fourth set of instructions, executable by the processor, configured to

determine whether the selected change refers to the data object,

in response to a determination that the selected change refers to the data object, perform an operation on the data object,

determine whether the selected change refers to the data object group, and

in response to a determination that the selected change refers to the data object group, perform a deduplication management operation on the data object group; and

a non-transitory computer-readable storage medium, wherein the instructions are encoded in the non-transitory computer-readable storage medium.

10. The computer program product of claim 9 , wherein the instructions further comprise:

a fifth set of instructions, executable by the processor, configured to create the data object group, wherein

the fifth set of instructions comprise

a first subset of instructions, executable by the processor, configured to create a data object group record,

a second subset of instructions, executable by the processor, configured to identify the plurality of data objects, and

a third subset of instructions, executable by the processor, configured to associate the plurality of data objects with the data object group.

11. The computer program product of claim 10 , wherein the fifth set of instructions comprises:

a fourth subset of instructions, executable by the processor, configured to include, in the data object group record, a data object identifier for each of the plurality of data objects, wherein

the data object identifier is comprised in a plurality of data object identifiers.

12. The computer program product of claim 11 , wherein

the change tracking stream comprises

the plurality of data object identifiers, wherein

each of the plurality of data object identifiers identifies a data object of the plurality of data objects, and

information identifying a change to each data object of the plurality of data objects.

13. The computer program product of claim 10 , wherein the instructions further comprise:

a fifth set of instructions, executable by the processor, configured to determine a data object group identifier of the data object group;

a sixth set of instructions, executable by the processor, configured to include the data object group identifier in the data object group record; and

a seventh set of instructions, executable by the processor, configured to create a data object group reference to the data object group record, using the data object group identifier.

14. The computer program product of claim 9 , wherein

the deduplication management operation is a group deletion operation, comprising

deleting a data object group file of the data object group, and

performing a dereference operation on a reference in a container reference database, and

the reference corresponds to a container affected by deletion of a data object in the data object group.

15. The computer program product of claim 9 , wherein

the data object group is one of a plurality of data object groups,

a first change affects a first data object of a first data object group of the plurality of data object groups,

a second change affects a second data object of a second data object group of the plurality of data object groups,

the deduplication management operation is a group update operation, and

the plurality of instructions further comprise

a fifth set of instructions, executable by the processor, configured to create another data object group comprising the first data object and the second data object, wherein

the fifth set of instructions is further configured to create a data object group reference that references the another data object group,

a sixth set of instructions, executable by the processor, configured to delete the first data object from the first data object group, and

a seventh set of instructions, executable by the processor, configured to delete the second data object from the second data object group.

16. The computer program product of claim 9 , wherein the instructions further comprise:

the data object group is one of a plurality of data object groups,

a first change affects a first data object of a first data object group of the plurality of data object groups,

a second change affects a second data object of a second data object group of the plurality of data object groups,

the deduplication management operation is a group merge operation, and

the plurality of instructions further comprise

a fifth set of instructions, executable by the processor, configured to create another data object group comprising one or more data objects from the first data object group, other than the first data object, and one or more data objects from the second data object group, other than the second data object, wherein

the fifth set of instructions is further configured to create a data object group reference that references the another data object group,

a sixth set of instructions, executable by the processor, configured to delete the first data object group, and

the sixth set of instructions are further configured to perform a dereference operation on a reference to a container of the first data object group, and

a seventh set of instructions, executable by the processor, configured to delete the second data object group,

the seventh set of instructions configured to delete the second data object group are further configured to perform another dereference operation on another reference to a container of the second data object group.

17. A computer system comprising:

one or more processors;

a computer-readable storage medium coupled to the one or more processors; and

a plurality of instructions, encoded in the computer-readable storage medium and configured to cause the one or more processors to

receive a change tracking stream at the computer system, wherein

the change tracking stream is received from a client computing system, and

the change tracking stream identifies one or more changes made to a plurality of data objects of the client computing system,

select a selected data object of the plurality of data objects by selecting a selected change of the one or more changes,

for the selected data object, identify a data object group, wherein

the data object group is identified based, at least in part, on a data object group identifier associated with the selected data object,

the data object group identifier is associated with the selected data object based, at least in part, on

an amount of data in the data object group, and/or

a number of data objects in the data object group, and

the data object group represents the plurality of data objects, determine whether the selected change refers to the data object, in response to a determination that the selected change refers to the data

object, perform an operation on the data object, determine whether the selected change refers to the data object group, and perform a deduplication management operation on the data object group.

18. The computer system of claim 17 , wherein the plurality of instructions comprise further instructions configured to cause the one or more processors to:

create the data object group, wherein

the further instructions configured to cause the one or more processors to create the data object group comprise a subset of instructions configured to cause the one or more processors to

create a data object group record, wherein

the further instructions are further configured to create a data object group reference that references the another data object group,

identify the plurality of data objects, and

associate the plurality of data objects with the data object group.

19. The computer system of claim 17 , wherein

the data object group is one of a plurality of data object groups,

a first change affects a first data object of a first data object group of the plurality of data object groups,

a second change affects a second data object of a second data object group of the plurality of data object groups,

the deduplication management operation is a group update operation, and

the plurality of instructions comprise further instructions configured to cause the one or more processors to

create another data object group comprising the first data object and the second data object, wherein

the further instructions are further configured to create a data object group reference that references the another data object group,

delete the first data object from the first data object group, and

delete the second data object from the second data object group.

20. The computer system of claim 17 , wherein the instructions further comprise:

the data object group is one of a plurality of data object groups,

a first change affects a first data object of a first data object group of the plurality of data object groups,

a second change affects a second data object of a second data object group of the plurality of data object groups,

the deduplication management operation is a group merge operation, and

the plurality of instructions comprise further instructions configured to cause the one or more processors to

create another data object group comprising one or more data objects from the first data object group, other than the first data object, and one or more data objects from the second data object group, other than the second data object, wherein

the instructions are further configured to create a data object group reference that references the another data object group,

delete the first data object group, wherein

the further instructions configured to delete the first data object group comprise additional instructions configured to perform a dereference operation on a reference to a container of the first data object group, and

delete the second data object group, wherein

the further instructions configured to delete the second data object group comprise additional instructions configured to perform another dereference operation on another reference to a container of the second data object group.

Assignments (11)
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069697/0238 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 052426/0001 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0565 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Apr 16, 2020
From: VERITAS TECHNOLOGIES, LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 052426/0001 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Mar 18, 2020
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 052189/0311 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 11, 2019
From: ZHANG, XIANBO; LIU, JIALUN; WU, WEIBAO
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 048854/0716 →
Continuity (1)
Related Publication 20200327102A1 · Oct 15, 2020