IP Library Granted Patent US 9,996,264
Granted Patent B2
US 9,996,264 · App. 15/220,018 · Granted Jun 12, 2018

Data block migration

Inventors: Vinod Jayaraman (San Francisco, CA); Abhijit Dinkar (San Jose, CA); Mark Taylor (San Jose, CA); Goutham Rao (Los Altos, CA); Michael E. Root (San Jose, CA); Murali Bashyam (Fremont, CA)
Assignee: Quest Software Inc.
G06F3/0604G06F3/067G06F3/0608G06F3/0641G06F3/0643G06F3/0647G06F3/0667G06F17/30156G06F17/30194
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,996,264
App. No.
15/220,018
Granted
Jun 12, 2018
Kind
B2
Abstract

Techniques and mechanisms are provided for migrating data blocks around a cluster during node addition and node deletion. Migration requires no downtime, as a newly added node is immediately operational while the data blocks are being moved. Blockmap files and deduplication dictionaries need not be updated.

Claims (38)

1. A method, comprising:

receiving a request to add a new node from a data storage cluster, the data storage cluster maintaining a plurality of deduplicated data segments in a plurality of suitcases at particular nodes in the data storage cluster, wherein the plurality of suitcases include datastore suitcases created after optimizing a file, each datastore suitcase comprising a data structure including deduplicated data segments, index information, offset information, data reference count information, and last file reference information, wherein optimizing a file includes compressing the file;

generating a plurality of new keys associated with a mapping function, the mapping function using a particular key to identify a particular node containing a particular suitcase, wherein the plurality of new keys are used to identify particular suitcases stored in particular nodes, including the new node, of the data storage cluster,

copying data including suitcases and their corresponding deduplicated data segments from the plurality of existing nodes to the new node, in accordance with the mapping function and new keys, to rebalance data across the data storage cluster,

wherein performing data access after data migration includes accessing a stub file corresponding to a virtual image of the optimized file, the stub file providing a suitcase identifier that specifies a node.

2. The method of claim 1 , wherein each of the plurality of new keys includes a node number.

3. The method of claim 1 , wherein the plurality of new keys correspond to a plurality of blockmap files, but the blockmap files do not contain references to the new-keys.

4. The method of claim 3 , wherein each blockmap file includes offset, length, and location identifiers for identifying segments in a plurality of suitcases.

5. The method of claim 3 , wherein the plurality of blockmap files remain unchanged after adding the new node.

6. The method of claim 1 , wherein the plurality of new keys are a plurality of suitcase identifiers (scids).

7. The method of claim 6 , wherein the mapping function comprises the following:

#define get_the_node_number_from_the_scid(_scid_) scid_to_node_array [_scid_% MAX_CLUSTER_SIZE]

wherein scid represents a suitcase ID and wherein MAX_CLUSTER_SIZE represents a maximum cluster size of the data storage cluster.

8. A system, comprising:

a processor; and

memory comprising instructions to execute a method, the method comprising:

receiving a request to add a new node from a data storage cluster, the data storage cluster maintaining a plurality of deduplicated data segments in a plurality of suitcases at particular nodes in the data storage cluster, wherein the plurality of suitcases include datastore suitcases created after optimizing a file, each datastore suitcase comprising a data structure including deduplicated data segments, index information, offset information, data reference count information, and last file reference information, wherein optimizing a file includes compressing the file;

generating a plurality of new keys associated with a mapping function, the mapping function using a particular key to identify a particular node containing a particular suitcase, wherein the plurality of new keys are used to identify particular suitcases stored in particular nodes, including the new node, of the data storage cluster,

copying data including suitcases and their corresponding deduplicated data segments from the plurality of existing nodes to the new node, in accordance with the mapping function and new keys, to rebalance data across the data storage cluster,

wherein performing data access after data migration includes accessing a stub file corresponding to a virtual image of the optimized file, the stub file providing a suitcase identifier that specifies a node.

9. The system of claim 8 , wherein each of the plurality of new keys includes a node number.

10. The system of claim 8 , wherein the plurality of new keys correspond to a plurality of blockmap files, but the blockmap files do not contain references to the new keys.

11. The system of claim 10 , wherein each blockmap file includes offset, length, and location identifiers for identifying segments in a plurality of suitcases.

12. The system of claim 10 , wherein the plurality of blockmap files remain unchanged after adding the new node.

13. The system of claim 8 , wherein the plurality of new keys are a plurality of suitcase identifiers (scids).

14. The system of claim 13 , wherein the mapping function comprises the following:

#define get_the_node_number_from_the_scid(_scid_) scid_to_node_array [_scid_% MAX_CLUSTER_SIZE]

wherein scid represents a suitcase ID and wherein MAX CLUSTER SIZE represents a maximum cluster size of the data storage cluster.

15. A non-transitory computer readable medium comprising computer code for:

receiving a request to add a new node from a data storage cluster, the data storage cluster maintaining a plurality of deduplicated data segments in a plurality of suitcases at particular nodes in the data storage cluster, wherein the plurality of suitcases include datastore suitcases created after optimizing a file, each datastore suitcase comprising a data structure including deduplicated data segments, index information, offset information, data reference count information, and last file reference information, wherein optimizing a file includes compressing the file;

generating a plurality of new keys associated with a mapping function, the mapping function using a particular key to identify a particular node containing a particular suitcase, wherein the plurality of new keys are used to identify particular suitcases stored in particular nodes, including the new node, of the data storage cluster;

copying data including suitcases and their corresponding deduplicated data segments from the plurality of existing nodes to the new node, in accordance with the mapping function and new keys, to rebalance data across the data storage cluster,

wherein performing data access after data migration includes accessing a stub file corresponding to a virtual image of the optimized file, the stub file providing a suitcase identifier that specifies a node.

16. The non-transitory computer readable medium of claim 15 , wherein each of the plurality of new keys includes a node number.

17. The non-transitory computer readable medium of claim 15 , wherein the plurality of new keys correspond to a plurality of blockmap files, but the blockmap files do not contain references to the new keys.

18. The non-transitory computer readable medium of claim 17 , wherein each blockmap file includes offset, length, and location identifiers for identifying segments in a plurality of suitcases.

19. The non-transitory computer readable medium of claim 17 , wherein the plurality of blockmap files remain unchanged after adding the new node.

20. The non-transitory computer readable medium of claim 15 , wherein the plurality of new keys are a plurality of suitcase identifiers (scids).

Assignments (19)
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 →
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 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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2017
From: DELL PRODUCTS L.P.
To: DELL SOFTWARE INC.
Reel/Frame 044268/0851 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2017
From: JAYARAMAN, VINOD; DINKAR, ABHIJIT; TAYLOR, MARK; RAO, GOUTHAM; ROOT, MICHAEL E.; BASHYAM, MURALI
To: DELL PRODUCTS L.P.
Reel/Frame 044268/0845 →
CHANGE OF NAME Recorded Nov 30, 2017
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 044591/0246 →
RELEASE OF SEC. INT. IN PATENTS (NOTES) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040026/0710 →
RELEASE OF SEC. INT. IN PATENTS (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040027/0329 →
RELEASE OF SEC. INT. IN PATENTS (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040013/0733 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded Aug 10, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 039643/0953 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded Aug 10, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 039644/0084 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Aug 10, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 039719/0889 →
Continuity (3)
Continuation 13158289 · Jun 10, 2011
Provisional Application 61389602 · Oct 4, 2010
Related Publication 20170031598A1 · Feb 2, 2017