IP Library Granted Patent US 11,106,628
Granted Patent B2
US 11,106,628 · App. 16/442,318 · Granted Aug 31, 2021

Method, device and computer program product for storing metadata

Inventors: Aaron Yurun Wu (Shanghai, CN); Gary Jialei Wu (Shanghai, CN); Ao Sun (Shanghai, CN)
Assignee: EMC IP HOLDING COMPANY LLC
G06F16/144G06F9/505G06F16/164G06F16/182G06F16/2365
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,106,628
App. No.
16/442,318
Granted
Aug 31, 2021
Kind
B2
Abstract

In an example, a method comprises determining, based on a set of metadata items to be stored, a first sequence and a second sequence, wherein the first sequence and the second sequence each include a plurality of key-value pairs, each key-value pair including a metadata item from the set of metadata items and a keyword corresponding to the metadata item in the set. The method also comprises causing a first co-routine to utilize available computing resources to process the first sequence. The method further comprises in response to an amount of computing resources available for the first co-routine to process the first sequence being below a first threshold, causing a second co-routine to process the second sequence, wherein the second co-routine is different from the first co-routine. This method can increase the utilization rate of the processor and more rapidly stores the metadata into the external storage device.

Claims (67)

1. A method of storing metadata, the method comprising:

identifying, by a system comprising a processor and based on a set of metadata items to be stored, a first group of key-value pairs and a second group of key-value pairs, each key-value pair including a metadata item from the set of metadata items and a keyword corresponding to the metadata item;

causing a first co-routine to utilize available computing resources to process the first group of key-value pairs to store the first group of key-value pairs in a storage device; and

in response to an amount of computing resources available for the first co-routine to process the first group of key-value pairs being below a first threshold amount of available computing resources, causing a second co-routine to process the second group of key-value pairs to store the second group of key-value pairs in the storage device wherein the second co-routine is different from the first co-routine.

2. The method of claim 1 , further comprising:

in response to a number of Input/Output operations associated with the first group of key-value pairs and processed by the first co-routine exceeding a threshold number of Input/Output operations, determining that the amount of computing resources used by the first co-routine is below the first threshold amount of available computing resources.

3. The method of claim 1 , further comprising:

in response to the amount of computing resources available for the first co-routine to process the first group of key-value pairs being below the first threshold amount of available computing resources, causing the first co-routine to stop processing the first group of key value pairs.

4. The method of claim 3 , further comprising:

in response to the amount of computing resources available for the first co-routine to process the first group of key-value pairs exceeding the first threshold amount of available computing resources, causing the first co-routine to continue the processing of the first group of key-value pairs.

5. The method of claim 1 , wherein the causing the first co-routine to process the first group of key-value pairs comprises causing the first co-routine to:

determine, in a storage device, an associated key-value pair matching a first key-value pair in the first group of key-value pairs, a first keyword in the first key-value pair matching a second keyword in the associated key-value pair;

obtain a first set of key-value pairs from a critical storage page in the storage device, the critical storage page including the associated key-value pair;

update the first set of key-value pairs with the first key-value pair, resulting in an updated first set of key-value pairs; and

in response to the first co-routine and the second co-routine completing processing of the first group of key-value pairs and the second group of key-value pairs, store the updated first set of key-value pairs into the critical storage page.

6. The method of claim 5 , wherein the causing the first co-routine to process the first group of key-value pairs comprises causing the first co-routine to:

determine, in a storage device, a group of associated key-value pairs matching remaining key-value pairs in the first group of key-value pairs other than the first key-value pair, keywords in the remaining key-value pairs matching keywords in the group of associated key-value pairs respectively;

obtain a group of storage pages to be updated from the storage device, the group of storage pages including the group of associated key-value pairs and excluding the critical storage page;

update, with the remaining key-value pairs, a second set of key-value pairs obtained from the group of storage pages to be updated, resulting in an updated second set of key-value pairs;

store the updated second set of key-value pairs into a group of target storage pages respectively; and

cause the storage device to utilize addresses of the group of target storage pages to update addresses of the group of storage pages to be updated.

7. An electronic device for storing metadata, comprises:

a processor; and

a memory having computer program instructions stored thereon, the processor executing the computer program instructions in a memory to control the electronic device to perform acts comprising:

identifying, based on a set of metadata items to be stored, a first plurality of key-value pairs and a second plurality of key-value pairs, each key-value pair including a metadata item from the set of metadata items and a keyword corresponding to the metadata item;

causing a first co-routine to utilize available computing resources to process the first plurality of key-value pairs to store the first plurality of key-value pairs in a storage device; and

in response to an amount of computing resources available for the first co-routine to process the first plurality of key-value pairs being below a first threshold amount of available computing resources, causing a second co-routine to process the second plurality of key-value pairs to store the second plurality of key-value pairs in the storage device, wherein the second co-routine is different from the first co-routine.

8. The electronic device of claim 7 , wherein the actions further comprise:

in response to a number of Input/Output operations associated with the first plurality of key-value pairs and processed by the first co-routine exceeding a threshold number of Input/Output operations, determining that the amount of computing resources used by the first co-routine is below the first threshold amount of available computing resources.

9. The electronic device of claim 7 , wherein the actions further comprise:

in response to the amount of computing resources available for the first co-routine to process the first plurality of key-value pairs being below the first threshold amount of available computing resources, causing the first co-routine to stop processing the first plurality of key-value pairs.

10. The electronic device of claim 9 , wherein the actions further comprise:

in response to the amount of computing resources available for the first co-routine to process the first plurality of key-value pairs exceeding the first threshold amount of available computing resources, causing the first co-routine to continue the processing of the first plurality of key-value pairs.

11. The electronic device of claim 7 , wherein the causing the first co-routine to process the first plurality of key-value pairs comprises causing the first co-routine to:

determine, in a storage device, an associated key-value pair matching a first key-value pair in the first plurality of key-value pairs, a first keyword in the first key-value pair matching a second keyword in the associated key-value pair;

obtain a first set of key-value pairs from a critical storage page in the storage device, the critical storage page including the associated key-value pair;

update the first set of key-value pairs with the first key-value pair, resulting in an updated first set of key-value pairs; and

in response to the first co-routine and the second co-routine completing processing of the first plurality of key-value pairs and the second plurality of key-value pairs, storing the updated first set of key-value pairs into the critical storage page.

12. The electronic device of claim 7 , wherein the causing the first co-routine to process the first plurality of key-value pairs comprises causing the first co-routine to:

determine, in a storage device, a group of associated key-value pairs matching remaining key-value pairs in the first plurality of key-value pairs other than the first key-value pair, keywords in the remaining key-value pairs matching keywords in the group of associated key-value pairs respectively;

obtain a group of storage pages to be updated from the storage device, the group of storage pages including the group of associated key-value pairs and excluding the critical storage page;

update, with the remaining key-value pairs, a second set of key-value pairs obtained from the group of storage pages to be updated, resulting in an updated second set of key-value pairs;

store the updated second set of key-value pairs into a group of target storage pages respectively; and

cause the storage device to utilize addresses of the group of target storage pages to update addresses of the group of storage pages to be updated.

13. A computer program product being stored on a non-transitory computer-readable medium and comprising machine-executable instructions which, when executed, cause a machine to perform operations, comprising:

identifying, based on metadata items to be stored, a first group of key-value pairs and a second group of key-value pairs, each key-value pair including a metadata item from the metadata items and a keyword corresponding to the metadata item;

causing a first co-routine to utilize available computing resources to process the first group of key-value pairs to store the first group of key-value pairs in a storage device; and

in response to an amount of computing resources available for the first co-routine to process the first group of key-value pairs being below a first threshold amount of available computing resources, causing a second co-routine to process the second group of key-value pairs to store the second group of key-value pairs in the storage device, wherein the second co-routine is different from the first co-routine.

14. The computer program product of claim 13 , wherein the operations further comprising:

in response to a number of Input/Output operations associated with the first group of key-value pairs and processed by the first co-routine exceeding a threshold number of Input/Output operations, determining that the amount of computing resources used by the first co-routine is below the first threshold amount of available computing resources.

15. The computer program product of claim 13 , wherein the operations further comprise:

in response to the amount of computing resources available for the first co-routine to process the first group of key-value pairs being below the first threshold amount of available computing resources, causing the first co-routine to stop processing the first group of key-value pairs.

16. The computer program product of claim 15 , wherein the operations further comprise:

in response to the amount of computing resources available for the first co-routine to process the first group of key-value pairs exceeding the first threshold amount of available computing resources, causing the first co-routine to continue the processing of the first group of key-value pairs.

17. The computer program product of claim 13 , wherein the causing the first co-routine to process the first group of key-value pairs comprises causing the first co-routine to:

determine, in a storage device, an associated key-value pair matching a first key-value pair in the first group of key-value pairs, a first keyword in the first key-value pair matching a second keyword in the associated key-value pair; and

obtain a first set of key-value pairs from a critical storage page in the storage device, the critical storage page including the associated key-value pair.

18. The computer program product of claim 17 , wherein the causing the first co-routine to process the first group of key-value pairs further comprises causing the first co-routine to:

update the first set of key-value pairs with the first key-value pair, resulting in an updated first set of key-value pairs; and

in response to the first co-routine and the second co-routine completing processing of the first group of key-value pairs and the second group of key-value pairs, store the updated first set of key-value pairs into the critical storage page.

19. The computer program product of claim 18 , wherein the causing the first co-routine to process the first group of key-value pairs comprises causing the first co-routine to:

determine, in a storage device, a group of associated key-value pairs matching remaining key-value pairs in the first group of key-value pairs other than the first key-value pair, keywords in the remaining key-value pairs matching keywords in the group of associated key-value pairs respectively;

obtain a group of storage pages to be updated from the storage device, the group of storage pages including the group of associated key-value pairs and excluding the critical storage page; and

update, with the remaining key-value pairs, a second set of key-value pairs obtained from the group of storage pages to be updated, resulting in an updated second set of key-value pairs.

20. The computer program product of claim 19 , wherein the causing the first co-routine to process the first group of key-value pairs comprises causing the first co-routine to:

store the updated second set of key-value pairs into a group of target storage pages respectively; and

cause the storage device to utilize addresses of the group of target storage pages to update addresses of the group of storage pages to be updated.

Assignments (9)
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 (053311/0169) Recorded Jun 23, 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 060438/0742 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0571) Recorded Jun 23, 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 060436/0088 →
RELEASE OF SECURITY INTEREST AT REEL 050406 FRAME 421 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 058213/0825 →
SECURITY INTEREST Recorded Jun 5, 2020
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 053311/0169 →
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 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
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 050724/0571 →
SECURITY AGREEMENT Recorded Sep 17, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050406/0421 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 14, 2019
From: WU, AARON YURUN; WU, GARY JIALEI; SUN, AO
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 049478/0663 →