IP Library Granted Patent US 11,340,784
Granted Patent B1
US 11,340,784 · App. 16/913,086 · Granted May 24, 2022

Verification microservice for a deduplicated object storage system with worker node estimation

Inventors: Tipper Truong (San Jose, CA); Joseph Brandt (Salt Lake City, UT); Philip Shilane (Newtown, PA)
Assignee: EMC IP Holding Company LLC
G06F3/0604G06F3/0638G06F3/0673
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,340,784
App. No.
16/913,086
Granted
May 24, 2022
Kind
B1
Abstract

Described is a system for detecting corruption in a deduplicated object storage system accessible by one or more microservices while minimizing costly read operations on objects. A controller module and one or more worker nodes execute verification paths in concert with each other to identify object corruptions. The controller module estimates a number of worker nodes required for execution of different types of verification paths.

Claims (52)

1. A computer-implemented method, comprising:

determining a first total memory size of worker node memory identified for storage of slice recipe names currently located in object storage of a deduplicated storage system, wherein each slice recipe name references a similarity group and each similarity group is pre-assigned to a worker node;

determining a second total memory size of the worker node memory identified for storage of the referenced similarity groups; and

estimating a number of worker nodes to be instantiated based on the first total memory size or the second total memory size of worker node memory for performance of a slice recipe verification path or a similarity group verification path, the first total memory size or the second total memory size of worker node memory the first total memory size of worker node memory supporting the slice recipe verification path and the second total memory size of worker node memory supporting the similarity group verification path.

2. The computer-implemented method of claim 1 , further comprising:

detecting occurrence of a worker node memory condition indicating the second total memory size of worker node memory for the referenced similarity groups exceeds the first total memory size of worker node memory for the slice recipe names.

3. The computer-implemented method of claim 2 , wherein the first total memory size of worker node memory for the slice recipe names includes memory sizes of respective memory partitions internal to a plurality of the worker nodes and wherein the second total memory size of worker node memory for the referenced similarity groups includes the memory sizes of one or more of the respective memory partitions internal to the plurality of the worker nodes.

4. The computer-implemented method of claim 2 , further comprising:

tracking a running tally of a total memory size of worker node memory identified for storage of a subset of the referenced similarity groups; and

comparing the running tally of the total memory size of worker node memory for the subset of referenced similarity groups to the first total memory size of worker node memory identified for the slice recipe names; and

detecting an occurrence of the worker node memory condition based upon the running tally for the subset of referenced similarity groups exceeding the first total memory size of worker node memory identified for the slice recipe names.

5. The computer-implemented method of claim 4 , further comprising:

instantiating one or more worker nodes with respective internal memory partitions for storing the slice recipes names that corresponds to first total memory size of worker node memory, the respective, instantiated worker nodes for support of performance of the slice recipe verification path.

6. The computer-implemented method of claim 4 , further comprising:

detecting absence of the worker node memory condition based upon a final tally of the total memory size of worker node memory for all referenced similarity groups not exceeding the first total memory size of worker node memory identified for the slice recipe names.

7. The computer-implemented method of claim 6 , further comprising:

instantiating one or more worker nodes with respective internal memory partitions for storing the referenced similarity groups that corresponds to the final tally the total memory size of worker node memory for all referenced similarity groups, the respective, instantiated worker nodes for support of performance of the similarity group verification path.

8. A system comprising:

one or more processors; and

a non-transitory computer readable medium storing a plurality of instructions, which when executed, cause the one or more processors to:

determine a first total memory size of worker node memory identified for storage of slice recipe names currently located in object storage of a deduplicated storage system, wherein each slice recipe name references a similarity group and each similarity group is pre-assigned to a worker node;

determine a second total memory size of the worker node memory identified for storage of the referenced similarity groups; and

estimate a number of worker nodes to be instantiated based on the first total memory size or the second total memory size of worker node memory for performance of a slice recipe verification path or a similarity group verification path, the first total memory size of work node memory supporting the slice recipe verification path and the second total memory size of worker node memory supporting the similarity group verification path.

9. The system of claim 8 , wherein the plurality of instructions, when executed, further cause the one or more processors to:

detect occurrence of a worker node memory condition indicating the second total memory size of worker node memory for the referenced similarity groups exceeds the first total memory size of worker node memory for the slice recipe names.

10. The system of claim 9 , wherein the first total memory size of worker node memory for the slice recipe names includes memory sizes of respective memory partitions internal to a plurality of the worker nodes and wherein the second total memory size of worker node memory for the referenced similarity groups includes the memory sizes of one or more of the respective memory partitions internal to the plurality of the worker nodes.

11. The system of claim 9 , wherein the plurality of instructions, when executed, further cause the one or more processors to:

track a running tally of a total memory size of worker node memory identified for storage of a subset of the referenced similarity groups; and

compare the running tally of the total memory size of worker node memory for the subset of referenced similarity groups to the first total memory size of worker node memory identified for the slice recipe names; and

detect an occurrence of the worker node memory condition based upon the running tally for the subset of referenced similarity groups exceeding the first total memory size of worker node memory identified for the slice recipe names.

12. The system of claim 11 , wherein the plurality of instructions, when executed, further cause the one or more processors to:

instantiate one or more worker nodes with respective internal memory partitions for storing the slice recipes names that corresponds to first total memory size of worker node memory, the respective, instantiated worker nodes for support of performance of the slice recipe verification path.

13. The system of claim 11 , wherein the plurality of instructions, when executed, further cause the one or more processors to:

detect absence of the worker node memory condition based upon a final tally of the total memory size of worker node memory for all referenced similarity groups not exceeding the first total memory size of worker node memory identified for the slice recipe names.

14. The system of claim 13 , wherein the plurality of instructions, when executed, further cause the one or more processors to:

instantiate one or more worker nodes with respective internal memory partitions for storing the referenced similarity groups that corresponds to the final tally the total memory size of worker node memory for all referenced similarity groups, the respective, instantiated worker nodes for support of performance of the similarity group verification path.

15. A computer program product comprising a non-transitory computer-readable medium having a computer-readable program code embodied therein to be executed by one or more processors, the program code including instructions to:

determine a first total memory size of worker node memory identified for storage of slice recipe names currently located in object storage of a deduplicated storage system, wherein each slice recipe name references a similarity group and each similarity group is pre-assigned to a worker node;

determine a second total memory size of the worker node memory identified for storage of the referenced similarity groups; and

estimate a number of worker nodes to be instantiated based on the first total memory size or the second total memory size of worker node memory for performance of a slice recipe verification path or a similarity group verification path, the first total memory size of worker node memory supporting the slice recipe verification path and the second total memory size of worker node memory supporting the similarity group verification path.

16. The computer program product of claim 15 , wherein the program code includes further instructions to:

detect occurrence of a worker node memory condition indicating the second total memory size of worker node memory for the referenced similarity groups exceeds the first total memory size of worker node memory for the slice recipe names.

17. The computer program product of claim 16 , wherein the first total memory size of worker node memory for the slice recipe names includes memory sizes of respective memory partitions internal to a plurality of the worker nodes and wherein the second total memory size of worker node memory for the referenced similarity groups also includes the memory sizes of one or more of the respective memory partitions internal to the plurality of the worker nodes.

18. The computer program product of claim 16 , wherein the program code includes further instructions to:

track a running tally of a total memory size of worker node memory identified for storage of a subset of the referenced similarity groups; and

compare the running tally of the total memory size of worker node memory for the subset of referenced similarity groups to the first total memory size of worker node memory identified for the slice recipe names; and

detect an occurrence of the worker node memory condition based upon the running tally for the subset of referenced similarity groups exceeding the first total memory size of worker node memory identified for the slice recipe names.

19. The computer program product of claim 18 , wherein the program code includes further instructions to:

instantiate one or more worker nodes with respective internal memory partitions for storing the slice recipes names that corresponds to first total memory size of worker node memory, the respective, instantiated worker nodes for support of performance of the slice recipe verification path.

20. The computer program product of claim 18 , wherein the program code includes further instructions to:

detect absence of the worker node memory condition based upon a final tally of the total memory size of worker node memory for all referenced similarity groups not exceeding the first total memory size of worker node memory identified for the slice recipe names; and

instantiate one or more worker nodes with respective internal memory partitions for storing the referenced similarity groups that corresponds to the final tally the total memory size of worker node memory for all referenced similarity groups, the respective, instantiated worker nodes for support of performance of the similarity group verification path.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053578/0183) Recorded Jun 10, 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
Reel/Frame 060332/0864 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053574/0221) Recorded Jun 10, 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
Reel/Frame 060333/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053573/0535) Recorded Jun 10, 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
Reel/Frame 060333/0106 →
RELEASE OF SECURITY INTEREST AT REEL 053531 FRAME 0108 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0371 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053578/0183 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053573/0535 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053574/0221 →
SECURITY AGREEMENT Recorded Aug 18, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 053531/0108 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 26, 2020
From: TRUONG, TIPPER; BRANDT, JOSEPH; SHILANE, PHILIP
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 053048/0910 →