IP Library Granted Patent US 9,678,974
Granted Patent B2
US 9,678,974 · App. 14/596,186 · Granted Jun 13, 2017

Methods and apparatus for network efficient deduplication

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 9,678,974
App. No.
14/596,186
Granted
Jun 13, 2017
Kind
B2
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 (33)

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 and communicate using file level protocol;

determining segment boundaries for the plurality of files using data type information associated with the plurality of files and determine segment size using file type information;

determining whether segments in the plurality of files have already been deduplicated at a target system in a deduplication system, wherein determining whether segments in the plurality of files have already been deduplicated includes comparing hashes of data segments stored at the target system with hashes in a deduplication dictionary at a source device, wherein ranges for the hashes of the data segments are assigned to different nodes within a cluster, each node corresponding to a separate deduplication dictionary, wherein if a first node is processing a data segment which has a hash value which maps to a second node, the first node will contact the second node that owns the range to find out if the data segments already exist in a datastore on the second node, wherein a work portioning scheme is applied based the hash ranges;

transmitting a first plurality of segments to the target system, the first plurality of segments not already deduplicated at the target system, the first plurality of segments added to a datastore suitcase, and not transmitting a second plurality of segments to the target system, the second plurality of segments already deduplicated at the target system;

modifying references and reference counts including filemaps and the datastore suitcases at the target system for the first plurality of segments and a second plurality of segments.

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 determining whether segments in the plurality of files have already been deduplicated at a target system in a deduplication system comprises comparing segment identifiers (segment IDs) for the segments match segment IDs for segments already deduplicated.

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

9. The method of claim 7 , wherein segment IDs are evaluated by transmitting segment IDs to the target system and comparing the segment IDs with entries in a deduplication dictionary.

10. 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 and communicate using file level protocol;

a processor configured to determine segment boundaries for the plurality of files using data type information associated with the plurality of files and determine segment size using file type information and determine whether segments in the plurality of files have already been deduplicated at a target system in a deduplication system, wherein determining whether segments in the plurality of files have already been deduplicated includes comparing hashes of data segments stored at the target system with hashes in a deduplication dictionary at a source device, wherein ranges for the hashes of the data segments are assigned to different nodes within a cluster, each node corresponding to a separate deduplication dictionary, wherein if a first node is processing a data segment which has a hash value which maps to a second node, the first node will contact the second node that owns the range to find out if the data segments already exist in a datastore on the second node, wherein a work portioning scheme is applied based the hash ranges;

an output interface configured to transmit a first plurality of segments to the target system, the first plurality of segments not already deduplicated at the target system, the first plurality of segments added to a datastore suitcase, and not transmitting a second plurality of segments to the target system, the second plurality of segment already deduplicated at the target system;

wherein references and reference counts including filemaps and the datastore suitcases at the target system are modified for the first plurality of segments and a second plurality of segments.

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

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

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

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

15. The apparatus of claim 14 , 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.

16. The apparatus of claim 10 , wherein determining whether segments in the plurality of files have already been deduplicated at a target system in a deduplication system comprises comparing segment identifiers (segment IDs) for the segments match segment IDs for segments already deduplicated.

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

18. The apparatus of claim 16 , wherein segment IDs are evaluated by transmitting segment IDs to the target system and comparing the segment IDs with entries in a deduplication dictionary.

19. 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 and communicate using file level protocol;

computer code for determining segment boundaries for the plurality of files using data type information associated with the plurality of files and determine segment size using file type information;

computer code for determining whether segments in the plurality of files have already been deduplicated at a target system in a deduplication system, wherein determining whether segments in the plurality of files have already been deduplicated includes comparing hashes of data segments stored at the target system with hashes in a deduplication dictionary at a source device, wherein ranges for the hashes of the data segments are assigned to different nodes within a cluster, each node corresponding to a separate deduplication dictionary, wherein if a first node is processing a data segment which has a hash value which maps to a second node, the first node will contact the second node that owns the range to find out if the data segments already exist in a datastore on the second node, wherein a work portioning scheme is applied based the hash ranges;

computer code for transmitting a first plurality of segments to the target system, the first plurality of segments not already deduplicated at the target system, the first plurality of segments added to a datastore suitcase, and not transmitting a second plurality of segments to the target system, the second plurality of segment already deduplicated at the target system;

computer code for modifying references and reference counts including filemaps and the datastore suitcases at the target system for the first plurality of segments and a second plurality of segments.

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/0649 →
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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2016
From: JAYARAMAN, VINOD
To: DELL PRODUCTS L.P.
Reel/Frame 040086/0391 →
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 REEL 035104 FRAME 0043 (NOTE) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; COMPELLENT TECHNOLOGIES, INC.
Reel/Frame 040027/0123 →
RELEASE OF REEL 035103 FRAME 0809 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; COMPELLENT TECHNOLOGIES, INC.
Reel/Frame 040027/0934 →
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 →
RELEASE OF REEL 035103 FRAME 0536 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; COMPELLENT TECHNOLOGIES, INC.
Reel/Frame 040016/0864 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded Feb 26, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; COMPELLENT TECHNOLOGIES, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 035104/0043 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded Feb 26, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; COMPELLENT TECHNOLOGIES, INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 035103/0536 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Feb 26, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; COMPELLENT TECHNOLOGIES, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 035103/0809 →