IP Library Granted Patent US 8,898,120
Granted Patent B1
US 8,898,120 · App. 13/269,620 · Granted Nov 25, 2014

Systems and methods for distributed data deduplication

Inventor: Petros Efstathopoulos (Los Angeles, CA)
Assignee: Symantec Corporation
G06F17/3007G06F17/30097
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 8,898,120
App. No.
13/269,620
Filed
Oct 9, 2011
Granted
Nov 25, 2014
Kind
B1
Art Unit
2158
USPC
707/692
Abstract

A computer-implemented method for distributed data deduplication may include (1) identifying a deduplicated data system, the deduplicated data system include a plurality of nodes, wherein each node within the plurality of nodes is configured to deduplicate data stored on the node, (2) identifying a data object to store within the deduplicated data system, (3) generating a similarity hash of the data object, the similarity hash representing a probabilistic dimension-reduction of the data object, (4) selecting, based at least in part on the similarity hash, a target node from the plurality nodes on which to store the data object, and then (5) routing the data object for storage on the target node based on the selection of the target node. Various other methods, systems, and computer-readable media are also disclosed.

Claims (50)

1. A computer-implemented method for distributed data deduplication, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

identifying a deduplicated data system, the deduplicated data system comprising a plurality of nodes, wherein each node within the plurality of nodes is configured to deduplicate data stored on the node;

identifying a data object to store within the deduplicated data system;

generating a similarity hash of the data object, the similarity hash representing a probabilistic dimension-reduction of the data object;

determining, based on at least one characteristic of the data object, that block-level deduplication is more efficient for the data object that file-level deduplication;

selecting a target node from the plurality of nodes that uses block-level deduplication instead of a candidate node that uses file-level deduplication based at least in part on the similarity hash and at least in part on a determination that the target node uses block-level deduplication instead of file-level deduplication;

routing the data object for storage on the target node based on the selection of the target node.

2. The computer-implemented method of claim 1 , wherein selecting the target node from the plurality of nodes is further based on an aggregation of similarity hashes of data objects stored on the target node.

3. The computer-implemented method of claim 1 , wherein:

generating the similarity hash comprises generating the similarity hash using an algorithm that maps data objects onto a hash space;

the hash space is partitioned among the plurality of nodes;

selecting the target node from the plurality of nodes comprises determining that the similarity hash falls within a partition of the hash space corresponding to the target node.

4. The computer-implemented method of claim 1 , further comprising determining, based on at least one attribute of the data object, to generate at least one additional similarity hash of the data object;

wherein selecting the target node is further based on the additional similarity hash.

5. The computer-implemented method of claim 4 , wherein the attribute of the data object comprises the size of the data object.

6. The computer-implemented method of claim 4 , wherein the attribute of the data object comprises a file type of the data object.

7. The computer-implemented method of claim 1 , wherein selecting the target node is further based on a file type of the data object.

8. The computer-implemented method of claim 1 , wherein selecting the target node is further based on a storage load on the target node falling below a determined threshold.

9. The computer-implemented method of claim 1 , wherein selecting the target node is further based on a frequency with which a client that accesses the deduplicated data system accesses the target node.

10. A system for distributed data deduplication, the system comprising:

an identification module programmed to:

identify a deduplicated data system, the deduplicated data system comprising a plurality of nodes, wherein each node within the plurality of nodes is configured to deduplicate data stored on the node;

identify a data object to store within the deduplicated data system;

a hashing module programmed to generate a similarity hash of the data object, the similarity hash representing a probabilistic dimension-reduction of the data object;

a selection module programmed to:

determine, based on at least one characteristic of the data object, that block-level deduplication is more efficient for the data object that file-level deduplication;

select a target node from the plurality of nodes that uses block-level deduplication instead of a candidate node that uses file-level deduplication based at least in part on the similarity hash and at least in part on a determination that the target node uses block-level deduplication instead of file-level deduplication;

a routing module programmed to route the data object for storage on the target node based on the selection of the target node;

at least one processor configured to execute the identification module, the hashing module, the selection module, and the routing module.

11. The system of claim 10 , wherein the selection module is programmed to select the target node from the plurality of nodes further based on an aggregation of similarity hashes of data objects stored on the target node.

12. The system of claim 10 , wherein:

the hashing module is programmed to generate the similarity hash by using an algorithm that maps data objects onto a hash space;

the hash space is partitioned among the plurality of nodes;

the selection module is programmed to select the target node from the plurality of nodes by determining that the similarity hash falls within a partition of the hash space corresponding to the target node.

13. The system of claim 10 , wherein:

the hashing module is further programmed to determine, based on at least one attribute of the data object, to generate at least one additional similarity hash of the data object;

the selection module is programmed to select the target node further based on the additional similarity hash.

14. The system of claim 13 , wherein the attribute of the data object comprises the size of the data object.

15. The system of claim 13 , wherein the attribute of the data object comprises a file type of the data object.

16. The system of claim 10 , wherein the selection module is programmed to select the target node further based on a file type of the data object.

17. The system of claim 10 , wherein the selection module is programmed to select the target node further based on a storage load on the target node falling below a determined threshold.

18. The system of claim 10 , wherein the selection module is programmed to select the target node further based on a frequency with which a client that accesses the deduplicated data system accesses the target node.

19. A non-transitory computer-readable-storage medium comprising one or more computer-executable instructions that are executed by at least one processor of a computing device and cause the computing device to:

identify a deduplicated data system, the deduplicated data system comprising a plurality of nodes, wherein each node within the plurality of nodes is configured to deduplicate data stored on the node;

identify a data object to store within the deduplicated data system;

generate a similarity hash of the data object, the similarity hash representing a probabilistic dimension-reduction of the data object;

determine, based on at least one characteristic of the data object, that block-level deduplication is more efficient for the data object that file-level deduplication;

select a target node from the plurality of nodes that uses block-level deduplication instead of a candidate node that uses file-level deduplication based at least in part on the similarity hash and at least in part on a determination that the target node uses block-level deduplication instead of file-level deduplication;

route the data object for storage on the target node based on the selection of the target node.

20. The computer-readable-storage medium of claim 19 , wherein selecting the target node from the plurality of nodes is further based on an aggregation of similarity hashes of data objects stored on the target node.

Assignments (14)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2026
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 075728/0466 →
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 (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
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 IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 9, 2011
From: EFSTATHOPOULOS, PETROS
To: SYMANTEC CORPORATION
Reel/Frame 027034/0578 →