IP Library Granted Patent US 10,540,328
Granted Patent B1
US 10,540,328 · App. 14/876,579 · Granted Jan 21, 2020

Web-scale distributed deduplication

Inventor: Hariprasad Bhasker Rao Mankude (San Ramon, CA)
Assignee: Cohesity, Inc.
G06F16/1752G06F16/182
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 10,540,328
App. No.
14/876,579
Granted
Jan 21, 2020
Kind
B1
Abstract

Approaches for parallelized data deduplication. An instruction to perform data deduplication on a plurality of files is received. The plurality of files is organized into two or more work sets that each correspond to a subset of the plurality of files. Responsibility for performing each of said two or more work sets is assigned to a set of nodes in a cluster of nodes. The nodes may be physical nodes or virtual nodes. Each node in the set performs data deduplication on a different work set. In performing data deduplication, each node may store metadata describing where shared chunks of data are maintained in a distributed file system. The shared chunks of data are two or more sequences of bytes which appear in two or more of said plurality of files.

Claims (37)

1. One or more non-transitory machine-readable storage mediums storing one or more sequences of instructions for parallelized data deduplication, which when executed by one or more processors, cause:

in response to receiving an instruction to perform data deduplication on a plurality of files of a big data dataset, organizing said plurality of files into a plurality of work sets based, at least in part, upon file size, wherein each of the plurality of work sets is a corresponding subset of said plurality of files, wherein each corresponding subset having a collective size below a certain predetermined threshold, wherein said data deduplication is a process which reduces an amount of digital storage required to persistently store said big data dataset by removing certain common portions of said files from said digital storage;

assigning a corresponding work set to a corresponding node included in a cluster of nodes, wherein said cluster of nodes itself performs said assignment of responsibility; and

performing data deduplication in parallel by each of the nodes of the cluster, wherein each of the nodes of the cluster is configured to perform data deduplication on a corresponding assigned work set, wherein performing data deduplication comprises storing metadata describing where shared chunks of data are maintained in a distributed file system, and wherein said shared chunks of data are two or more sequences of bytes which appear in two or more of said plurality of files, wherein said metadata is stored in a parallel database and is accessible from any node of said cluster of nodes and the chunks of data are created from a stream, wherein the boundaries of the chunks of data are identified by using one or more fingerprinting algorithms;

in response to a node of the cluster of nodes finishing performing data deduplication on the corresponding assigned work set, assigning an additional work set to the node of the cluster of nodes, wherein the node of the cluster of nodes is configured to perform data deduplication on the assigned additional work set;

aggregating results of performing said parallel data deduplication in said cluster of nodes; and

deleting a deduplicated file, wherein metadata associated with the deleted deduplicated file is stored by the nodes of the cluster, wherein the metadata associated with the deleted deduplicated file indicates that the deduplicated file has been deduplicated.

2. The one or more non-transitory machine-readable storage mediums of claim 1 , wherein said cluster of nodes includes one or more virtual nodes executing on a computer system.

3. The one or more non-transitory machine-readable storage mediums of claim 1 , wherein said cluster of nodes includes one or more physical nodes executing at least one compute container.

4. The one or more non-transitory machine-readable storage mediums of claim 1 , wherein at least one node of said cluster of nodes executes two or more compute containers, and wherein said two or more compute containers perform data deduplication on different work sets of said two or more work sets.

5. The one or more non-transitory machine-readable storage mediums of claim 1 , wherein the metadata is sharded across multiple nodes of the cluster, and wherein unique portions of data in a file are stored in a distributed file system which is accessible from all nodes of the cluster, and wherein said unique portions of data in the file are unique to the file and are not contained in any other file in said plurality of files.

6. The one or more non-transitory machine-readable storage mediums claim 1 , wherein each of said nodes of said cluster of nodes is a separate computer system.

7. The one or more non-transitory machine-readable storage mediums claim 1 , wherein each node in said set performs, in parallel, said data deduplication on a different work set without synchronizing with any other node in said cluster of nodes.

8. A system for performing parallelized data deduplication, comprising:

one or more processors; and

one or more non-transitory computer-readable storage mediums storing one or more sequences of instructions, which when executed, cause:

in response to receiving an instruction to perform data deduplication on a plurality of files of a big data dataset, organizing said plurality of files into a plurality of work sets based, at least in part, upon file size, wherein each of the plurality of work sets is a corresponding subset of said plurality of files, wherein each corresponding subset having a collective size below a certain predetermined threshold, wherein said data deduplication is a process which reduces an amount of digital storage required to persistently store said big data dataset by removing certain common portions of said files from said digital storage;

assigning a corresponding work set to a corresponding node included in a cluster of nodes, wherein said cluster of nodes itself performs said assignment of responsibility;

performing data deduplication in parallel by each of the nodes of the cluster, wherein each of the nodes of the cluster is configured to perform data deduplication on a corresponding assigned work set, wherein performing data deduplication comprises storing metadata describing where shared chunks of data are maintained in a distributed file system, and wherein said shared chunks of data are two or more sequences of bytes which appear in two or more of said plurality of files, wherein said metadata is stored in a parallel database and is accessible from any node of said cluster of nodes and the chunks of data are created from a stream, wherein the boundaries of the chunks of data are identified by using one or more fingerprinting algorithms;

in response to a node of the cluster of nodes finishing performing data deduplication on the corresponding assigned work set, assigning an additional work set to the node of the cluster of nodes, wherein the node of the cluster of nodes is configured to perform data deduplication on the assigned additional work set;

aggregating results of performing said parallel data deduplication in said cluster of nodes; and

deleting a deduplicated file, wherein metadata associated with the deleted deduplicated file is stored by the nodes of the cluster, wherein the metadata associated with the deleted deduplicated file indicates that the deduplicated file has been deduplicated.

9. The system of claim 8 , wherein said cluster of nodes includes one or more virtual nodes executing on a computer system.

10. The system of claim 8 , wherein said cluster of nodes includes one or more physical nodes executing at least one compute container.

11. The system of claim 8 , wherein at least one node of said cluster of nodes executes two or more compute containers, and wherein said two or more compute containers perform data deduplication on different work sets of said two or more work sets.

12. The system of claim 8 , wherein the metadata is sharded across multiple nodes of the cluster, and wherein unique portions of data in a file are stored in a distributed file system which is accessible from all nodes of the cluster, and wherein said unique portions of data in the file are unique to the file and are not contained in any other file in said plurality of files.

13. A method for parallelized data deduplication, comprising:

in response to receiving an instruction to perform data deduplication on a plurality of files of a big data dataset, organizing said plurality of files into a plurality of work sets based, at least in part, upon file size, wherein each of the plurality of work sets is a corresponding subset of said plurality of files, wherein each corresponding subset having a collective size below a certain predetermined threshold, wherein said data deduplication is a process which reduces an amount of digital storage required to persistently store said big data dataset by removing certain common portions of said files from said digital storage;

assigning a corresponding work set to a corresponding node included in a cluster of nodes, wherein said cluster of nodes itself performs said assignment of responsibility;

performing data deduplication in parallel by each of the nodes of the cluster, wherein each of the nodes of the cluster is configured to perform data deduplication on a corresponding assigned work set, wherein performing data deduplication comprises storing metadata describing where shared chunks of data are maintained in a distributed file system, and wherein said shared chunks of data are two or more sequences of bytes which appear in two or more of said plurality of files, wherein said metadata is stored in a parallel database and is accessible from any node of said cluster of nodes and the chunks of data are created from a stream, wherein the boundaries of the chunks of data are identified by using one or more fingerprinting algorithms;

in response to a node of the cluster of nodes finishing performing data deduplication on the corresponding assigned work set, assigning an additional work set to the node of the cluster of nodes, wherein the node of the cluster of nodes is configured to perform data deduplication on the assigned additional work set;

aggregating results of performing said parallel data deduplication in said cluster of nodes; and

deleting a deduplicated file, wherein metadata associated with the deleted deduplicated file is stored by the nodes of the cluster, wherein the metadata associated with the deleted deduplicated file indicates that the deduplicated file has been deduplicated.

14. The method of claim 13 , wherein said cluster of nodes includes one or more virtual nodes executing on a computer system.

15. The method of claim 13 , wherein said cluster of nodes includes one or more physical nodes executing at least one compute container.

16. The method of claim 13 , wherein at least one node of said cluster of nodes executes two or more compute containers, and wherein said two or more compute containers perform data deduplication on different work sets of said two or more work sets.

17. The method of claim 13 , wherein the metadata is sharded across multiple nodes of the cluster, and wherein unique portions of data in a file are stored in a distributed file system which is accessible from all nodes of the cluster, and wherein said unique portions of data in the file are unique to the file and are not contained in any other file in said plurality of files.

Assignments (6)
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Dec 10, 2024
From: FIRST-CITIZENS BANK & TRUST COMPANY (AS SUCCESSOR TO SILICON VALLEY BANK)
To: COHESITY, INC.
Reel/Frame 069584/0498 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
SECURITY INTEREST Recorded Sep 23, 2022
From: COHESITY, INC.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 061509/0818 →
CHANGE OF NAME Recorded Oct 29, 2019
From: TALENA, INC.
To: IMANIS DATA INC.
Reel/Frame 050871/0923 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2019
From: IMANIS DATA, INC.
To: COHESITY, INC.
Reel/Frame 049311/0047 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2015
From: MANKUDE, HARIPRASAD BHASKER RAO
To: TALENA, INC.
Reel/Frame 037022/0646 →
Continuity (1)
Provisional Application 62060367 · Oct 6, 2014
Cited By (1)
US 12,353,739