IP Library Granted Patent US 8,965,852
Granted Patent B2
US 8,965,852 · App. 12/954,348 · Granted Feb 24, 2015

Methods and apparatus for network efficient deduplication

Inventor: Vinod Jayaraman (San Francisco, CA)
Assignee: Dell Products L.P.
G06F17/30156
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,965,852
App. No.
12/954,348
Filed
Nov 24, 2010
Granted
Feb 24, 2015
Kind
B2
Examiner
UDDIN, MD I
Art Unit
2169
USPC
707/692
Abstract

Mechanisms are provided for performing network efficient deduplication. Segments are extracted from files received for deduplication at a host connected to a target over one or more networks and/or fabrics in a deduplication system. Segment identifiers (IDs) are determined and compared with segment IDs for segments already deduplicated. Segments already deduplicated need not be transmitted to a target system. References and reference counts are modified at a target system. Updating references and reference counts may involve modifying filemaps, dictionaries, and datastore suitcases for both already deduplicated and not already deduplicated segments.

Claims (31)

1. A method, comprising:

receiving a request at a host to deduplicate a plurality of files, the host and a plurality of other hosts connected to a target system and a plurality of other target systems over a network, wherein the host communicates over the network with the target system by using a file level protocol, wherein the target system is a file server;

determining at the host whether segments in the plurality of files have already been deduplicated at the target system in a deduplication system by comparing segment identifiers (segment IDs) for the segments to match segment IDs for segments already deduplicated, wherein segment IDs are evaluated by transmitting segment IDs to the target system to compare the segment IDs with entries in a deduplication dictionary;

transmitting a first plurality of segments over a network to the target system by using the file level protocol, the first plurality of segments not already deduplicated at the target system, and not transmitting a second plurality of segments to the target system to reduce network bandwidth utilization, the second plurality of segments already deduplicated at the target system;

modifying references and reference counts at the target system for the first plurality of segments and the second plurality of segments, wherein modifying references and reference counts includes modifying a filemap, dictionaries, and a datastore suitcase for both already deduplicated and not already deduplicated segments;

wherein the dictionary is used to identify duplicate data segments and point to the location of the data segments, the datastore suitcase includes an index portion and a data portion to allow a system to perform a bulk read of the index portion to obtain offset data to allow parallel reads of large amounts of data in the data section and further includes three offset, reference count pairs which map to the data segments of the filemap file.

2. The method of claim 1 , wherein the plurality of segments span a plurality of files.

3. The method of claim 1 , wherein the plurality of files are determined to be container or non-container files based on the file types associated with the files.

4. The method of claim 1 , wherein the second plurality of segments already deduplicated correspond to a plurality of filemaps.

5. The method of claim 1 , wherein the second plurality of segments already deduplicated correspond to a plurality of datastore suitcases.

6. The method of claim 5 , wherein a datastore suitcase in the plurality of datastore suitcases further comprises a plurality of reference counts corresponding to the plurality of deduplicated data segments.

7. The method of claim 1 , wherein segment IDs are evaluated using a segment ID database at the host.

8. The method of claim 1 , wherein modifying references and reference counts at the target system for the first plurality of segments and a second plurality of segments comprises.

9. An apparatus, comprising:

an input interface configured to receive a request to deduplicate a plurality of files, the host and a plurality of other hosts connected to a target system and a plurality of other target systems over a network, wherein the host communicates over the network with the target system by using a file level protocol, wherein the target system is a file server;

a processor configured to determine at the host whether segments in the plurality of files have already been deduplicated at the target system in a deduplication system by comparing segment identifiers (segment IDs) for the segments to match segment IDs for segments already deduplicated, wherein segment IDs are evaluated by transmitting segment IDs to the target system to compare the segment IDs with entries in a deduplication dictionary;

an output interface configured to transmit a first plurality of segments over a network to the target system by using the file level protocol, the first plurality of segments not already deduplicated at the target system, and not transmitting a second plurality of segments to the target system to reduce network bandwidth utilization, the second plurality of segments already deduplicated at the target system;

wherein references and reference counts at the target system are modified for the first plurality of segments and the second plurality of segments, wherein modifying references and reference counts includes modifying a filemap, dictionaries, and a datastore suitcase for both already deduplicated and not already deduplicated segments;

wherein the dictionary is used to identify duplicate data segments and point to the location of the data segments, the datastore suitcase includes an index portion and a data portion to allow a system to perform a bulk read of the index portion to obtain offset data to allow parallel reads of large amounts of data in the data section and further includes three offset, reference count pairs which map to the data segments of the filemap file.

10. The apparatus of claim 9 , wherein the plurality of segments span a plurality of files.

11. The apparatus of claim 9 , wherein the plurality of files are determined to be container or non-container files based on the file types associated with the files.

12. The apparatus of claim 9 , wherein the second plurality of segments already deduplicated correspond to a plurality of filemaps.

13. The apparatus of claim 9 , wherein the second plurality of segments already deduplicated correspond to a plurality of datastore suitcases.

14. The apparatus of claim 13 , wherein a datastore suitcase in the plurality of datastore suitcases further comprises a plurality of reference counts corresponding to the plurality of deduplicated data segments.

15. The apparatus of claim 9 , wherein segment IDs are evaluated using a segment ID database at the host.

16. A non-transitory computer readable medium, comprising:

computer code for receiving a request at a host to deduplicate a plurality of files, the host and a plurality of other hosts connected to a target system and a plurality of other target systems over a network, wherein the host communicates over the network with the target system by using a file level protocol, wherein the target system is a file server;

computer code for determining at the host whether segments in the plurality of files have already been deduplicated at the target system in a deduplication system by comparing segment identifiers (segment IDs) for the segments to match segment IDs for segments already deduplicated, wherein segment IDs are evaluated by transmitting segment IDs to the target system to compare the segment IDs with entries in a deduplication dictionary;

computer code for transmitting a first plurality of segments over a network to the target system by using the file level protocol, the first plurality of segments not already deduplicated at the target system, and not transmitting a second plurality of segments to the target system to reduce network bandwidth utilization, the second plurality of segments already deduplicated at the target system;

computer code for modifying references and reference counts at the target system for the first plurality of segments and the second plurality of segments, wherein modifying references and reference counts includes modifying a filemap, dictionaries, and a datastore suitcase for both already deduplicated and not already deduplicated segments;

wherein the dictionary is used to identify duplicate data segments and point to the location of the data segments, the datastore suitcase includes an index portion and a data portion to allow a system to perform a bulk read of the index portion to obtain offset data to allow parallel reads of large amounts of data in the data section and further includes three offset, reference count pairs which map to the data segments of the filemap file.

Assignments (27)
RELEASE OF SECURITY INTEREST Recorded Nov 19, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073606/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 18, 2025
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073613/0326 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0001 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0649 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059096/0683 →
FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: GOLDMAN SACHS BANK USA
Reel/Frame 058945/0778 →
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 058952/0279 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059105/0479 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0347 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0486 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS RECORDED AT R/F 040581/0850 Recorded May 22, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 046211/0735 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 040587 FRAME: 0624. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 28, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 044811/0598 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Nov 10, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040587/0624 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Nov 9, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040581/0850 →
CHANGE OF NAME Recorded Nov 2, 2016
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 040551/0885 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2016
From: DELL PRODUCTS L.P.
To: DELL SOFTWARE INC.
Reel/Frame 040520/0220 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040039/0642) Recorded Oct 31, 2016
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0016 →
RELEASE OF SECURITY INTEREST Recorded Oct 31, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0467 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040030/0187 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040039/0642 →
RELEASE OF SECURITY INTEREST Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040040/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040065/0618 →
RELEASE OF SECURITY INTEREST Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLANT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040065/0216 →
PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 031899/0261 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jan 2, 2014
From: APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS FIRST LIEN COLLATERAL AGENT
Reel/Frame 031897/0348 →
PATENT SECURITY AGREEMENT (ABL) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 031898/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 8, 2011
From: JAYARAMAN, VINOD
To: DELL PRODUCTS L.P.
Reel/Frame 025770/0306 →
Continuity (2)
Provisional Application 61264233 · Nov 24, 2009
Related Publication 20110125720A1 · May 26, 2011