IP Library Granted Patent US 11,461,284
Granted Patent B2
US 11,461,284 · App. 16/836,176 · Granted Oct 4, 2022

Method, device and computer program product for storage management

Inventors: YuHong Nie (Shanghai, CN); Pengfei Wu (Shanghai, CN); Tianxiang Chen (Shanghai, CN)
Assignee: EMC IP Holding Company LLC
G06F16/182G06F16/137G06F16/2255G06N3/08
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,461,284
App. No.
16/836,176
Granted
Oct 4, 2022
Kind
B2
Abstract

A method for storage management comprises: obtaining, at a first storage service deployed at a first node, a first request of a first computing service deployed at the first node for first target data, the first storage service having access to a remote storage device and providing the first computing service with a same access interface as the remote storage device, the remote storage device storing a dataset reusable in a task to be performed at least partially by the first computing service, the dataset comprising the first target data; obtaining, based on the first request, the first target data from the remote storage device or a local storage space for the first storage service; and providing the first target data to the first computing service.

Claims (97)

1. A method for storage management, comprising:

obtaining, at a first storage service deployed at a first node, a first request of a first computing service deployed at the first node for first target data, the first storage service having access to a remote storage device and providing the first computing service with a same access interface as the remote storage device, the remote storage device storing a dataset reusable in a task to be performed at least partially by the first computing service, the dataset comprising the first target data;

obtaining, based on the first request, the first target data from the remote storage device or a local storage space for the first storage service; and

providing the first target data to the first computing service;

wherein obtaining the first target data comprises:

determining, based on the first request, whether the first target data is stored in a first local storage device of the first node; and

in accordance with a determination that the first target data is stored in the first local storage device, obtaining the first target data from the first local storage device; and

wherein the task is performed by the first computing service in cooperation with at least one further computing service deployed at least one further node, and the first storage service has a distributed hash table, the distributed hash table storing a hash result of a hash operation performed on an identification of at least partial data in the dataset in association with a storage position of the at least partial data in a further local storage device of the at least one further node or the remote storage device, and obtaining the first target data comprises:

in accordance with a determination that the first target data is not stored in the first local storage device:

obtaining an identification of the first target data from the first request;

generating a first hash result for the first target data by performing a hash operation on the identification of the first target data; and

obtaining, based on the first hash result, the first target data using the distributed hash table.

2. The method of claim 1 , wherein the task comprises a distributed deep learning task performed jointly by the first computing service and a further computing service deployed at least one further node, and the first target data comprises data used in an epoch of the distributed deep learning task.

3. The method of claim 1 , wherein the task is performed jointly by the first computing service and at least one further computing service deployed at at least one further node, the method further comprising:

obtaining a second request for determining a second target storage position of second target data from a second storage service of at least one further storage service deployed at the at least one further node;

determining, based on the second request, whether the second target data is stored in a first local storage device of the first node;

in accordance with a determination that the second target data is stored in the first local storage device, sending, to the second storage service, a storage position of the second target data in the first local storage device; and

in accordance with a determination that the second target data is not stored in the first local storage device, causing, based on a second hash result of a hash operation performed on an identification of the second target data, a second target storage position of the second target data to be determined using the distributed hash table corresponding to the first storage service.

4. The method of claim 3 , further comprising:

in accordance with the second target data being determined to be stored in the remote storage device and a further local storage device of the at least one further node, causing a storage position of the second target data in the further local storage device to be provided to the second storage service, without causing a storage position of the second target data in the remote storage device to be provided to the second storage service.

5. The method of claim 1 , wherein obtaining, based on the first hash result, the first target data using the distributed hash table comprises:

determining whether the first hash result is stored in the distributed hash table;

in accordance with a determination that the first hash result is stored in the distributed hash table, obtaining the first target data from a storage position stored in association with the first hash result in the distributed hash table; and

in accordance with a determination that the first hash result is not stored in the distributed hash table:

determining a second storage service in at least one further storage service deployed at the at least one further node, a similarity between a second hash result of a hash operation performed on an identification on the second storage service and the first hash result exceeding a similarity threshold;

sending, to the second storage service, a second request for determining a first target storage position of the first target data;

receiving the first target storage position from the second storage service; and

obtaining the first target data from the first target storage position.

6. The method of claim 5 , further comprising:

in accordance with a determination that the first target data is obtained from the first target storage position, storing the first target data in the first local storage device; and

storing the first hash result in association with the first target storage position in the distributed hash table.

7. An electronic device, comprising:

at least one processing unit; and

at least one memory coupled to the at least one processing unit and storing instructions executed by the at least one processing unit, the instructions, when executed by the at least one processing unit, causing the device to perform acts comprising:

obtaining, at a first storage service deployed at a first node, a first request of a first computing service deployed at the first node for first target data, the first storage service having access to a remote storage device and providing the first computing service with a same access interface as the remote storage device, the remote storage device storing a dataset reusable in a task to be performed at least partially by the first computing service, the dataset comprising the first target data;

obtaining, based on the first request, the first target data from the remote storage device or a local storage space for the first storage service; and

providing the first target data to the first computing service;

wherein obtaining the first target data comprises:

determining, based on the first request, whether the first target data is stored in a first local storage device of the first node; and

in accordance with a determination that the first target data is stored in the first local storage device, obtaining the first target data from the first local storage device; and

wherein the task is performed by the first computing service in cooperation with at least one further computing service deployed at least one further node, and the first storage service has a distributed hash table, the distributed hash table storing a hash result of a hash operation performed on an identification of at least partial data in the dataset in association with a storage position of the at least partial data in a further local storage device of the at least one further node or the remote storage device, and obtaining the first target data comprises:

in accordance with a determination that the first target data is not stored in the first local storage device:

obtaining an identification of the first target data from the first request;

generating a first hash result for the first target data by performing a hash operation on the identification of the first target data; and

obtaining, based on the first hash result, the first target data using the distributed hash table.

8. The device of claim 7 , wherein the task comprises a distributed deep learning task performed jointly by the first computing service and a further computing service deployed at least one further node, and the first target data comprises data used in an epoch of the distributed deep learning task.

9. The device of claim 7 , wherein obtaining, based on the first hash result, the first target data using the distributed hash table comprises:

determining whether the first hash result is stored in the distributed hash table;

in accordance with a determination that the first hash result is stored in the distributed hash table, obtaining the first target data from a storage position stored in association with the first hash result in the distributed hash table; and

in accordance with a determination that the first hash result is not stored in the distributed hash table:

determining a second storage service in at least one further storage service deployed at the at least one further node, a similarity between a second hash result of a hash operation performed on an identification on the second storage service and the first hash result exceeding a similarity threshold;

sending, to the second storage service, a second request for determining a first target storage position of the first target data;

receiving the first target storage position from the second storage service; and

obtaining the first target data from the first target storage position.

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

in accordance with a determination that the first target data is obtained from the first target storage position, storing the first target data in the first local storage device; and

storing the first hash result in association with the first target storage position in the distributed hash table.

11. The device of claim 7 , wherein the task is performed jointly by the first computing service and at least one further computing service deployed at at least one further node, and the acts further comprise:

obtaining a second request for determining a second target storage position of second target data from a second storage service of at least one further storage service deployed at the at least one further node;

determining, based on the second request, whether the second target data is stored in a first local storage device of the first node;

in accordance with a determination that the second target data is stored in the first local storage device, sending, to the second storage service, a storage position of the second target data in the first local storage device; and

in accordance with a determination that the second target data is not stored in the first local storage device, causing, based on a second hash result of a hash operation performed on an identification of the second target data, a second target storage position of the second target data to be determined using the distributed hash table corresponding to the first storage service.

12. The device of claim 11 , wherein the acts further comprise:

in accordance with the second target data being determined to be stored in the remote storage device and a further local storage device of the at least one further node, causing a storage position of the second target data in the further local storage device to be provided to the second storage service, without causing a storage position of the second target data in the remote storage device to be provided to the second storage service.

13. The device of claim 7 , wherein the distributed hash table stores information of a part of the dataset.

14. A computer program product tangibly stored on a non-transient computer-readable medium and including machine-executable instructions which, when executed, cause a machine to perform acts comprising:

obtaining, at a first storage service deployed at a first node, a first request of a first computing service deployed at the first node for first target data, the first storage service having access to a remote storage device and providing the first computing service with a same access interface as the remote storage device, the remote storage device storing a dataset reusable in a task to be performed at least partially by the first computing service, the dataset comprising the first target data;

obtaining, based on the first request, the first target data from the remote storage device or a local storage space for the first storage service; and

providing the first target data to the first computing service;

wherein obtaining the first target data comprises:

determining, based on the first request, whether the first target data is stored in a first local storage device of the first node; and

in accordance with a determination that the first target data is stored in the first local storage device, obtaining the first target data from the first local storage device; and

wherein the task is performed by the first computing service in cooperation with at least one further computing service deployed at least one further node, and the first storage service has a distributed hash table, the distributed hash table storing a hash result of a hash operation performed on an identification of at least partial data in the dataset in association with a storage position of the at least partial data in a further local storage device of the at least one further node or the remote storage device, and obtaining the first target data comprises:

in accordance with a determination that the first target data is not stored in the first local storage device:

obtaining an identification of the first target data from the first request;

generating a first hash result for the first target data by performing a hash operation on the identification of the first target data; and

obtaining, based on the first hash result, the first target data using the distributed hash table.

15. The computer program product of claim 14 , wherein the task comprises a distributed deep learning task performed jointly by the first computing service and a further computing service deployed at least one further node, and the first target data comprises data used in an epoch of the distributed deep learning task.

16. The computer program product of claim 14 , wherein obtaining, based on the first hash result, the first target data using the distributed hash table comprises:

determining whether the first hash result is stored in the distributed hash table;

in accordance with a determination that the first hash result is stored in the distributed hash table, obtaining the first target data from a storage position stored in association with the first hash result in the distributed hash table; and

in accordance with a determination that the first hash result is not stored in the distributed hash table:

determining a second storage service in at least one further storage service deployed at the at least one further node, a similarity between a second hash result of a hash operation performed on an identification on the second storage service and the first hash result exceeding a similarity threshold;

sending, to the second storage service, a second request for determining a first target storage position of the first target data;

receiving the first target storage position from the second storage service; and

obtaining the first target data from the first target storage position.

17. The computer program product of claim 16 , wherein the acts further comprise:

in accordance with a determination that the first target data is obtained from the first target storage position, storing the first target data in the first local storage device; and

storing the first hash result in association with the first target storage position in the distributed hash table.

18. The computer program product of claim 14 , wherein the task is performed jointly by the first computing service and at least one further computing service deployed at at least one further node, and the acts further comprise:

obtaining a second request for determining a second target storage position of second target data from a second storage service of at least one further storage service deployed at the at least one further node;

determining, based on the second request, whether the second target data is stored in a first local storage device of the first node;

in accordance with a determination that the second target data is stored in the first local storage device, sending, to the second storage service, a storage position of the second target data in the first local storage device; and

in accordance with a determination that the second target data is not stored in the first local storage device, causing, based on a second hash result of a hash operation performed on an identification of the second target data, a second target storage position of the second target data to be determined using the distributed hash table corresponding to the first storage service.

19. The computer program product of claim 18 , wherein the acts further comprise:

in accordance with the second target data being determined to be stored in the remote storage device and a further local storage device of the at least one further node, causing a storage position of the second target data in the further local storage device to be provided to the second storage service, without causing a storage position of the second target data in the remote storage device to be provided to the second storage service.

20. The computer program product of claim 14 , wherein the distributed hash table stores information of a part of the dataset.

Assignments (11)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0081) 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 IP HOLDING COMPANY LLC
Reel/Frame 060436/0441 →
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 (052851/0917) 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 IP HOLDING COMPANY LLC
Reel/Frame 060436/0509 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052852/0022) 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 IP HOLDING COMPANY LLC
Reel/Frame 060436/0582 →
RELEASE OF SECURITY INTEREST AT REEL 052771 FRAME 0906 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0298 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0917 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0081 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052852/0022 →
SECURITY AGREEMENT Recorded May 28, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052771/0906 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 17, 2020
From: NIE, YUHONG; WU, PENGFEI; CHEN, TIANXIANG
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052434/0436 →
Priority Claims (1)
CN 202010043186.4 · Jan 15, 2020 · national
Continuity (1)
Related Publication 20210216507A1 · Jul 15, 2021