IP Library › Granted Patent US 11,262,935
Granted Patent B2
US 11,262,935 · App. 16/669,240 · Granted Mar 1, 2022

Optimized distributed deduplication for distributed cluster

Inventors: Bing Liu (Tianjin, CN); George Mathew (Belmont, CA)
Assignee: EMC IP HOLDING COMPANY LLC
G06F3/0653G06F3/061G06F3/067G06F3/0631G06F3/0641G06F12/0253
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,262,935
App. No.
16/669,240
Filed
Oct 30, 2019
Granted
Mar 1, 2022
Kind
B2
Art Unit
2138
USPC
711/170
Abstract

Distributed deduplication wherein runtime performance of dedup pipelines in all nodes is monitored. The bottleneck for each pipeline is identified and machine resources from different nodes are reallocated to seek to balance the costs of each stage of each task in each of the pipelines. While the overall cost for each task may remain the same, stalls may be eliminated such that the total cost to complete all the tasks is reduced. The global dedup ratio and the local compression ratio may be used to weight certain stage costs.

Claims (43)

1. A computer-implemented method for performing distributed deduplication in a cluster of machines forming a plurality of nodes, comprising:

dividing a deduplication process into a plurality of process stages, wherein a group of stages form a task to be executed as a pipeline;

assigning selected nodes from the plurality of nodes to perform assigned process stages and tasks, wherein each of the selected nodes services a plurality of the pipelines;

within each node of the cluster, assigning computing and storage resources to perform each stage of a deduplication task;

while the deduplication process is performed within the cluster, for each pipeline periodically performing:

collecting performance data of each of the computing and storage resources and using the performance data to determine process cost for each of the stages of tasks within a corresponding pipeline;

for each task reassigning, at least partially, computing and storage resources from stages having lower process cost to stages having higher process cost;

updating resources utilization of each node within the cluster.

2. The method of claim 1 , wherein reassigning, at least partially, computing and storage resources includes reassigning computing and storage resources of one node to perform stages of tasks on another node.

3. The method of claim 1 , wherein reassigning, at least partially, computing and storage resources is calculated to balance the process cost of the stages of each task.

4. The method of claim 3 , further comprising calculating a global deduplication ratio and wherein determining process cost for each of the stages comprises weighting the process cost of at least one stage by the global deduplication ratio.

5. The method of claim 4 , further comprising calculating a local compression ratio and wherein determining process cost for each of the stages comprises weighting the process cost of at least one stage by the local compression ratio.

6. The method of claim 1 , wherein the plurality of pipelines includes at least a deduplication pipeline, a restore pipeline, and a garbage collection pipeline.

7. The method of claim 1 , further comprising at each node maintaining information of computing and storage resources of other nodes within the cluster and sending local information of computing and storage resources to other nodes within the cluster.

8. A non-transitory computer-readable medium programmed with executable instructions that, when executed by a processing system having at least one hardware processor, perform operations for performing distributed deduplication in a cluster of machines forming a plurality of nodes, the operations comprising:

dividing a deduplication process into a plurality of process stages, wherein a group of stages form a task to be executed as a pipeline;

assigning selected nodes from the plurality of nodes to perform assigned process stages and tasks, wherein each of the selected nodes services a plurality of the pipelines;

within each node of the cluster, assigning computing and storage resources to perform each stage of a deduplication task;

while the deduplication process is performed within the cluster, for each pipeline periodically performing:

collecting performance data of each of the computing and storage resources and using the performance data to determine process cost for each of the stages of tasks within a corresponding pipeline;

for each task reassigning, at least partially, computing and storage resources from stages having lower process cost to stages having higher process cost;

updating resources utilization of each node within the cluster.

9. The medium of claim 8 , wherein reassigning, at least partially, computing and storage resources includes reassigning computing and storage resources of one node to perform stages of tasks on another node.

10. The medium of claim 8 , wherein reassigning, at least partially, computing and storage resources is calculated to balance the process cost of the stages of each task.

11. The medium of claim 10 , wherein the operations further comprise calculating a global deduplication ratio and wherein determining process cost for each of the stages comprises weighting the process cost of at least one stage by the global deduplication ratio.

12. The medium of claim 11 , wherein the operations further comprise calculating a local compression ratio and wherein determining process cost for each of the stages comprises weighting the process cost of at least one stage by the local compression ratio.

13. The medium of claim 8 , wherein the plurality of pipelines includes at least a deduplication pipeline, a restore pipeline, and a garbage collection pipeline.

14. The medium of claim 8 , wherein the operations further comprise at each node maintaining information of computing and storage resources of other nodes within the cluster and sending local information of computing and storage resources to other nodes within the cluster.

15. A system comprising:

a processing system having at least one hardware processor, the processing system coupled to a memory programmed with executable instructions that, when executed by the processing system, perform operations for performing distributed deduplication in a cluster of machines forming a plurality of nodes, the operations comprising:

dividing a deduplication process into a plurality of process stages, wherein a group of stages form a task to be executed as a pipeline;

assigning selected nodes from the plurality of nodes to perform assigned process stages and tasks, wherein each of the selected nodes services a plurality of the pipelines;

within each node of the cluster, assigning computing and storage resources to perform each stage of a deduplication task;

while the deduplication process is performed within the cluster, for each pipeline periodically performing:

collecting performance data of each of the computing and storage resources and using the performance data to determine process cost for each of the stages of tasks within a corresponding pipeline;

for each task reassigning, at least partially, computing and storage resources from stages having lower process cost to stages having higher process cost;

updating resources utilization of each node within the cluster.

16. The system of claim 15 , wherein reassigning, at least partially, computing and storage resources includes reassigning computing and storage resources of one node to perform stages of tasks on another node.

17. The system of claim 15 , wherein reassigning, at least partially, computing and storage resources is calculated to balance the process cost of the stages of each task.

18. The system of claim 17 , wherein the operations further comprise calculating a global deduplication ratio and wherein determining process cost for each of the stages comprises weighting the process cost of at least one stage by the global deduplication ratio.

19. The medium of claim 18 , wherein the operations further comprise calculating a local compression ratio and wherein determining process cost for each of the stages comprises weighting the process cost of at least one stage by the local compression ratio.

20. The medium of claim 15 , wherein the plurality of pipelines includes at least a deduplication pipeline, a restore pipeline, and a garbage collection pipeline.

21. The medium of claim 15 , wherein the operations further comprise at each node maintaining information of computing and storage resources of other nodes within the cluster and sending local information of computing and storage resources to other nodes within the cluster.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (051302/0528) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.); SECUREWORKS CORP.
Reel/Frame 060438/0593 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST AT REEL 051449 FRAME 0728 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
Reel/Frame 058002/0010 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Dec 31, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 051449/0728 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Dec 16, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 051302/0528 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2019
From: LIU, BING; MATHEW, GEORGE
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 050869/0471 →
Continuity (1)
Related Publication 20210132852A1 · May 6, 2021
Cited By (1)
US 12,499,088