IP Library Granted Patent US 11,269,548
Granted Patent B2
US 11,269,548 · App. 16/508,220 · Granted Mar 8, 2022

Methods, devices, and a computer program product for processing an access request and updating a storage system

Inventors: Lu Lei (Shanghai, CN); Ao Sun (Shanghai, CN)
Assignee: EMC IP HOLDING COMPANY LLC
G06F3/0659G06F3/0604G06F3/0664G06F3/0673G06F9/5011G06F2209/5013
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,269,548
App. No.
16/508,220
Granted
Mar 8, 2022
Kind
B2
Abstract

Techniques for processing an access request and updating a storage system are provided. For instance, a method comprises: receiving an access request for an object associated with a storage system, the storage system including a plurality of physical nodes, each of the plurality of physical nodes including at least one set of virtual units, each set of virtual units including at least one virtual unit; determining, from a plurality of sets of virtual units included in the plurality of physical nodes of the storage system, a target set of virtual units associated with the object; and determining, from the target set of virtual units, a target virtual unit corresponding to the object. With the technical solution of the present disclosure, not only a set of virtual units on a physical node may be easily split and merged, but also huge computing resources that need to be allocated may be saved, so better user experience may be brought about at a lower cost.

Claims (70)

1. A method, comprising:

receiving, by a system comprising a processor, an access request for an object associated with a storage system, the storage system including a plurality of physical nodes, each of the plurality of physical nodes including at least one set of virtual units, each set of virtual units including at least one virtual unit;

determining, from a plurality of sets of virtual units included in the plurality of physical nodes of the storage system, a target set of virtual units associated with the object based on performing a first hash on a first identifier of the object, the target set of virtual units being stored on a first node of the plurality of physical nodes;

determining, from the target set of virtual units, a target virtual unit of the first node corresponding to the object, based on performing a second hash on the first identifier of the object and a second identifier of the target set of virtual units; and

in response to adding a second node to the storage system, moving the target set of virtual units to the second node, wherein an updated first hash identifies the target set of virtual units and the second node, and wherein the second hash remains constant to identify the target virtual unit of the target set of virtual units on the second node.

2. The method according to claim 1 , wherein the determining the target set of virtual units comprises:

determining the first identifier of the object;

determining a plurality of set identifiers of the plurality of sets of virtual units in the storage system;

determining, from the plurality of set identifiers, a set identifier associated with the first identifier of the object; and

determining a set of virtual units identified by the associated set identifier as the target set of virtual units.

3. The method according to claim 1 , wherein the determining the target virtual unit comprises:

determining a third identifier of the object;

determining at least one virtual unit identifier of at least one virtual unit in the target set of virtual units;

determining, from the at least one virtual unit identifier, a virtual unit identifier corresponding to the third identifier of the object; and

determining a virtual unit identified by the virtual unit identifier as the target virtual unit.

4. The method according to claim 1 , further comprising:

allocating, to the target set of virtual units, a computing resource, for processing the access request, the computing resource being shared by virtual units in the target set of virtual units.

5. The method according to claim 4 , wherein the allocating the computing resource comprises:

determining a maximum computing resource supported by a physical node that includes the target set of virtual units; and

evenly allocating the maximum computing resource to sets of virtual units included in the physical node.

6. The method according to claim 1 , further comprising:

in response to the access request being a write request, writing the object to the target virtual unit.

7. The method according to claim 1 , further comprising:

in response to the access request being a read request, reading the object from the target virtual unit.

8. A device, comprising:

at least one processing unit;

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

receiving an access request for an object associated with a storage system, the storage system including a plurality of physical nodes, each of the plurality of physical nodes including at least one set of virtual units, each set of virtual units including at least one virtual unit;

determining, from a plurality of sets of virtual units included in the plurality of physical nodes of the storage system, a target set of virtual units associated with the object, based on performing a first hash on a first identifier of the object;

determining, from the target set of virtual units, a target virtual unit corresponding to the object, based on performing a second hash on the first identifier of the object and a second identifier of the target set of virtual units; and

in response to adding a first node to the storage system, moving the target set of virtual units to the first node, wherein an updated first hash identifies the target set of virtual units and the first node, and wherein the second hash is unalterable and is used to identify the target virtual unit of the target set of virtual units on the second node.

9. The device according to claim 8 , wherein the determining the target set of virtual units comprises:

determining the first identifier of the object;

determining a plurality of set identifiers of the plurality of sets of virtual units in the storage system;

determining, from the plurality of set identifiers, a set identifier associated with the first identifier of the object; and

determining a set of virtual units identified by the associated set identifier as the target set of virtual units.

10. The device according to claim 8 , wherein the determining the target virtual unit comprises:

determining a third identifier of the object;

determining at least one virtual unit identifier of at least one virtual unit in the target set of virtual units;

determining, from the at least one virtual unit identifier, a virtual unit identifier corresponding to the third identifier of the object; and

determining a virtual unit identified by the virtual unit identifier as the target virtual unit.

11. The device according to claim 8 , wherein the acts further comprise:

allocating, to the target set of virtual units, a computing resource, for processing the access request, the computing resource being shared by virtual units in the target set of virtual units.

12. The device according to claim 11 , wherein the allocating the computing resource comprises:

determining a maximum computing resource supported by a physical node that includes the target set of virtual units.

13. The device according to claim 12 , wherein the allocating the computing resource further comprises:

evenly allocating the maximum computing resource to sets of virtual units included in the physical node.

14. The device according to claim 8 , wherein the acts further comprise:

in response to the access request being a write request, writing the object to the target virtual unit.

15. The device according to claim 8 , wherein the acts further comprise:

in response to the access request being a read request, reading the object from the target virtual unit.

16. A non-transitory computer-readable medium comprising instructions that, in response to execution, cause a system comprising a processor to perform operations, comprising:

receiving an access request for an object associated with a storage system, the storage system comprising physical nodes, comprising respective sets of virtual units, each comprising at least one virtual unit;

determining, from sets of the respective sets of virtual units, a target set of virtual units associated with the object, based on performing a first hash on a first identifier of the object; and

determining, from the target set of virtual units, a target virtual unit corresponding to the object, based on performing a second hash on the first identifier of the object and a second identifier of the target set of virtual units; and

in response to adding a first node to the storage system, moving the target set of virtual units to the first node, wherein an updated first hash identifies the target set of virtual units and the first node, and wherein the second hash remains unaltered and is usable to identify the target virtual unit of the target set of virtual units on the second node.

17. The non-transitory computer-readable medium of claim 16 , wherein the determining the target set of virtual units comprises:

determining the first identifier of the object;

determining set identifiers of the sets of the respective sets of virtual units;

determining, from the set identifiers, a set identifier associated with the first identifier of the object; and

determining a set of virtual units, identified by the set identifier, as the target set of virtual units.

18. The non-transitory computer-readable medium of claim 16 , wherein the determining the target virtual unit comprises:

determining a third identifier of the object;

determining at least one virtual unit identifier of at least one virtual unit in the target set of virtual units;

determining, from the at least one virtual unit identifier, a virtual unit identifier corresponding to the third identifier of the object; and

determining a virtual unit, identified by the virtual unit identifier, as the target virtual unit.

19. The non-transitory computer-readable medium of claim 16 , wherein the operations further comprise:

allocating, to the target set of virtual units, a computing resource, usable to process the access request and able to be shared by virtual units in the target set of virtual units.

20. The non-transitory computer-readable medium of claim 19 , wherein the allocating the computing resource comprises:

determining a maximum computing resource supported by a physical node that comprises the target set of virtual units.

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 Jul 10, 2019
From: LEI, LU; SUN, AO
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 049719/0553 →