IP Library Granted Patent US 11,016,939
Granted Patent B2
US 11,016,939 · App. 16/032,898 · Granted May 25, 2021

Architecture for scalable metadata microservices orchestration

Inventors: Kimberly Lu (Sunnyvale, CA); Venkata Ravi Chandra Bandlamudi (San Jose, CA); Joseph Samuel Brandt (Emeryville, CA); Atul Avinash Karmarkar (San Jose, CA); Philip Shilane (Newtown, PA)
Assignee: EMC IP Holding Company, LLC
G06F16/1748G06F9/505G06F9/5077G06F16/137G06F16/172G06F16/182
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,016,939
App. No.
16/032,898
Granted
May 25, 2021
Kind
B2
Abstract

A deduplicated microservices-based storage system and method running in a cloud includes frontend and backend microservice nodes that process requests from a plurality of clients and interface with a master node and one or more worker nodes connected as a network for deduplicating, storing and retrieving data from object storage. A custom metric compares demand on system resources to thresholds and dynamically scales resources to add or eliminate resources according to demand. The master node partitions the range of values identifying data similarity groups across the worker nodes, reassigns ranges of values using consistent hashing as worker nodes are scaled, and maintains a mapping of ranges of values to worker IP addresses.

Claims (34)

1. A method of coordinating metadata microservices in a deduplication system that processes requests from a plurality of clients for deduplicating, storing and retrieving data slices and that queries worker nodes, said metadata microservices comprising a master node and one or more worker nodes connected as a network, the method comprising:

assigning to said worker nodes by the master node using consistent hashing non-overlapping partitions of a full range of identity values identifying data similarity groups for which said worker nodes are responsible;

monitoring queries to said worker nodes and comparing a level of said queries to a preselected metric to measure demand;

scaling worker nodes using a custom metric based upon demand by splitting a worker node and adding an additional worker node or by eliminating a worker node by merging the worker node being eliminated with another worker node; and

reassigning ranges of said identity values to said scaled worker nodes by said master node using consistent hashing.

2. The method of claim 1 , wherein said splitting a worker node comprises selecting a worker node to split based upon the span of said worker node, and said reassigning comprises repartitioning part of the range of similarity group values of the worker node being split to the added worker node.

3. The method of claim 1 , wherein said merging two worker nodes comprises reassigning the identity values assigned to the worker node being eliminated to a neighboring worker node that has an adjoining range of identity values.

4. The method of claim 1 , wherein said consistent hashing comprises partitioning similarity group identity values into ranges and assigning the partitioned ranges of identity values to worker nodes such there is a consistent location where a particular value may be found.

5. The method of claim 4 , wherein said method further comprises maintaining a mapping of similarity group values to the worker nodes to which said similarity group values are assigned, updating said mapping by the master node as assignments change, and communicating said mapping to nodes.

6. The method of claim 1 , wherein said deduplication system includes persistent object storage, and the method further comprises informing a worker node being scaled to flush similarity groups outside of a range of values assigned to said worker node being scaled to said object storage.

7. The method of claim 6 further comprising maintaining by said master node a record of the state of each worker node in a persistent store, and upon a worker node crashing and restarting, communicating by said master node to said restarted worker node its previously assigned partition range of similarity group values and a previous log of said worker node for recovery.

8. The method of claim 7 further comprising querying by the master node following a scaling event or a crash event each worker node to determine whether said each worker node is in an active state and to determine the partition range said each worker node is serving; and upon a worker node failing to respond, responding in the wrong state or reporting that it is serving an incorrect partition range, merging partition ranges of active worker nodes to restore the full partition range.

9. A computer program product comprising non-transitory computer readable storage medium embodying instructions for controlling a processor to perform a method of coordinating metadata microservices in a deduplication system that processes requests from a plurality of clients for deduplicating, storing and retrieving data slices and that queries worker nodes, said metadata microservices comprising a master node and one or more worker nodes connected as a network, the method comprising:

assigning to said worker nodes by the master node using consistent hashing non-overlapping partitions of a full range of identity values identifying data similarity groups for which said worker nodes are responsible;

monitoring queries to said worker nodes and comparing a level of said queries to a preselected metric to measure demand;

scaling worker nodes using a custom metric based upon demand by splitting a worker node and adding an additional worker node or by eliminating a worker node and merging two worker nodes; and

reassigning ranges of said identity values to said scaled worker nodes by said master node using consistent hashing.

10. The computer program product of claim 9 , wherein said splitting a worker node comprises selecting a worker node to split based upon the span of said worker node, and said reassigning comprises repartitioning part of the range of similarity group values of the worker node being split to the added worker node.

11. The computer program product of claim 9 , wherein said merging two worker nodes comprises reassigning by the master node the identity values of the worker node being eliminated to a neighboring worker node that has an adjoining range of identity values.

12. The computer program product of claim 9 , wherein said consistent hashing comprises partitioning similarity group identity values into ranges and assigning the partitioned ranges of identity values to worker nodes such there is a consistent location where a particular value may be found.

13. The computer program product of claim 12 , wherein said method further comprises maintaining a mapping of similarity group values to the worker nodes to which said similarity group values are assigned, updating said mapping by the master node as assignments change, and communicating said mapping to nodes.

14. The computer program product of claim 9 , wherein said deduplication system includes persistent object storage, and the method further comprises informing a worker node being scaled to flush similarity groups outside of a range of values assigned to said worker node being scaled to said object storage.

15. The computer program product of claim 14 further comprising maintaining by said master node a record of the state of each worker node in a persistent store, and upon a worker node crashing and restarting, communicating by said master node to said restarted worker node its previously assigned partition range of similarity group values and a previous log of said worker node for recovery.

16. The computer program product of claim 15 further comprising querying by the master node following a scaling event or a crash event each worker node to determine whether said each worker node is in an active state and to determine the partition range said each worker node is serving; and upon a worker node failing to respond, responding in the wrong state or reporting that it is serving an incorrect partition range, merging partition ranges of active worker nodes to restore the full partition range.

17. In a deduplication system that processes requests from a plurality of clients for deduplicating, storing and retrieving data slices and that queries metadata microservices for similarity groups, comprising:

a master node;

a plurality of one or more worker nodes connected with said master node as a network;

the system being configured to monitor demand on said worker nodes due to queries and to scale said worker nodes using a custom metric based upon demand by splitting a worker node and adding an additional worker node or by eliminating a worker node and merging two worker nodes; and

the master node comprising a processor and programming instructions for controlling the processor to:

assign non-overlapping partitions of a full range of identity values of said similarity groups to different ones of said plurality of worker nodes using consistent hashing; and

to reassign ranges of said identity values to said scaled worker nodes using consistent hashing.

18. The system of claim 17 , wherein said master node stores a mapping of similarity group values to worker nodes and supplies said mapping to a backend node to use to query a worker node to which a similarity group of interest is assigned.

19. The system of claim 18 , wherein said worker node to which the similarity group of interest is assigned is programmed to search an in-memory cache of said worker node for the similarity group of interest, and, if said similarity group of interest is not in said cache, to retrieve said similarity group of interest from object storage.

20. The system of claim 19 , wherein said worker node is further programmed to copy said similarity group of interest not in said cache to said cache.

Assignments (8)
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 (047648/0422) Recorded May 20, 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 060160/0862 →
RELEASE OF SECURITY INTEREST AT REEL 047648 FRAME 0346 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0510 →
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 Mar 21, 2019
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 049452/0223 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047648/0346 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 12, 2018
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 047648/0422 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 12, 2018
From: LU, KIMBERLY; BANDLAMUDI, VENKATA RAVI CHANDRA; BRANDT, JOSEPH SAMUEL; KARMARKAR, ATUL AVINASH; SHILANE, PHILIP
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 046332/0068 →