IP Library Granted Patent US 10,657,066
Granted Patent B2
US 10,657,066 · App. 15/954,812 · Granted May 19, 2020

Method and device for storage management

Inventors: Geng Han (Beijing, CN); Jian Gao (Beijing, CN); Wayne Weihua Li (Beijing, CN); Jamin Kang (Beijing, CN); Jibing Dong (Beijing, CN)
Assignee: EMC IP Holding Company LLC
G06F12/1009G06F12/0246G06F2212/1008G06F2212/1016G06F2212/657G06F2212/7203
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 10,657,066
App. No.
15/954,812
Granted
May 19, 2020
Kind
B2
Abstract

Embodiments of the present disclosure provide a method and an apparatus for storage management. For example, there is provided a method comprising: creating a plurality of profiles for address mapping, the profiles comprising a part of mapping relation in the total mapping table and creating an index for a part of the plurality of profiles to accelerate the lookup speed. A corresponding device and computer program product are also disclosed.

Claims (67)

1. A method of storage management, comprising:

creating a plurality of profiles for address mapping, a profile containing a part of an address mapping table stored on a non-volatile storage device, and the profile indicating:

a logical starting address of an initial logical block of a plurality of logical blocks,

a physical starting address corresponding to the logical starting address,

the number of the plurality of logical blocks, and

a modification flag bit indicating whether the profile is changed with respect to the address mapping table;

storing the plurality of profiles in a cache in an order of the corresponding logical starting addresses;

creating an index for a part of the plurality of profiles in the cache;

creating a first record for a first physical extent, the first record indicating a physical starting address of the first physical extent and a first number of physical blocks contained therein, at least a part of the plurality of logical blocks indicated by a first profile of the plurality of profiles being mapped to the first physical extent;

creating a second record for a second physical extent, the second record indicating a physical starting address of the second physical extent and a second number of physical blocks contained therein, at least a part of the plurality of logical blocks indicated by a second profile of the plurality of profiles being mapped to the second physical extent;

in response to a physical end address of the first physical extent and a physical starting address of the second physical extent being continuous, merging the first record and the second record to generate a third record, the third record indicating the physical starting address of the first physical extent and a sum of the first number and the second number; and

storing the third record in the cache.

2. The method of claim 1 , wherein creating an index for a part of the plurality of profiles in the cache comprises:

selecting the part of profiles randomly to create the index.

3. The method of claim 1 , wherein creating an index for a part of the plurality of profiles in the cache comprises:

selecting, based on an access frequency, the part of profiles to create the index.

4. The method of claim 1 , further comprising:

in response to the physical end address of the first physical extent and the physical starting address of the second physical extent being non-continuous, storing the first record and the second record in the cache.

5. The method of claim 1 , further comprising:

receiving a request for a target profile, the request indicating an index associated with the target profile; and

searching the target profile in the cache based on the index.

6. The method of claim 5 , further comprising:

in response to the target profile being absent in the cache, creating the target profile based on the address mapping table.

7. The method of claim 5 wherein the request comprises a request to modify a part of the address mapping table contained in the target profile, the method further comprising:

in response to the target profile being present in the cache, updating the part of the address mapping table contained in the target profile.

8. The method of claim 1 , further comprising:

in response to the number of idle profiles in the cache being lower than a first threshold, triggering reclaiming of the plurality of profiles; and

in response to the number of idle profiles in the cache being greater than a second threshold, ceasing the reclaiming.

9. The method of claim 8 , wherein triggering reclaiming of the plurality of profiles comprises:

reclaiming, among the plurality of profiles, profiles not having been changed with respect to the address mapping table.

10. The method of claim 8 , wherein triggering reclaiming of the plurality of profiles comprises:

reclaiming, among the plurality of profiles, profiles having been changed with respect to the address mapping table, comprising:

storing, in the non-volatile storage device, changed address mapping in the changed profiles.

11. The method of claim 8 , further comprising:

removing an index of a reclaimed profile.

12. An electronic device, comprising:

a processor; and

a memory coupled to the processor, the memory having instructions stored therein which, when executed by the processor, cause the electronic device to perform acts comprising:

creating a plurality of profiles for address mapping, one profile containing a part of an address mapping table stored on a non-volatile storage device and the profile indicating:

a logical starting address of an initial logical block of a plurality of logical blocks,

a physical starting address corresponding to the logical starting address,

the number of the plurality of logical blocks, and

a modification flag bit indicating whether the profile is changed with respect to the address mapping table;

storing the plurality of profiles in a cache in an order of the corresponding logical starting addresses;

creating an index for a part of the plurality of profiles in the cache,

creating a first record for a first physical extent, the first record indicating a physical starting address of the first physical extent and a first number of physical blocks contained therein, at least a part of the plurality of logical blocks indicated by a first profile of the plurality of profiles being mapped to the first physical extent:

creating a second record for a second physical extent, the second record indicating a physical starting address of the second physical extent and a second number of physical blocks contained therein, at least a part of the plurality of logical blocks indicated by a second profile of the plurality of profiles being mapped to the second physical extent;

in response to a physical end address of the first physical extent and a physical starting address of the second physical extent being continuous, merging the first record and the second record to generate a third record, the third record indicating the physical starting address of the first physical extent and a sum of the first number and the second number; and

storing the third record in the cache.

13. The device of claim 12 , wherein creating an index for a part of the plurality of profiles in the cache comprises:

selecting the part of profiles randomly to create the index.

14. The device of claim 12 , wherein creating an index for a part of the plurality of profiles in the cache comprises:

selecting, based on an access frequency, the part of profiles to create the index.

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

in response to the physical end address of the first physical extent and the physical starting address of the second physical extent being non-continuous, storing the first record and the second record in the cache.

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

receiving a request for a target profile, the request indicating an index associated with the target profile;

searching the target profile in the cache based on the index.

17. The device of claim 16 , wherein the acts further comprise:

in response to the target profile being absent in the cache, creating the target profile based on the address mapping table.

18. The device of claim 16 , wherein the request comprises a request to modify a part of the address mapping table contained in the target profile, the acts further comprising:

in response to the target profile being present in the cache, updating the part of the address mapping table contained in the target profile.

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

in response to the number of idle profiles in the cache being lower than a first threshold, triggering reclaiming of the plurality of profiles; and

in response to the number of idle profiles in the cache being greater than a second threshold, ceasing the reclaiming.

20. The device of claim 19 , wherein triggering reclaiming of the plurality of profiles comprises:

reclaiming, among the plurality of profiles, profiles not having been changed with respect to the address mapping table.

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 (046366/0014) 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 060450/0306 →
RELEASE OF SECURITY INTEREST AT REEL 046286 FRAME 0653 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/0093 →
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 Jun 1, 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 046286/0653 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jun 1, 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 046366/0014 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 20, 2018
From: HAN, GENG; GAO, JIAN; LI, WAYNE WEIHUA; KANG, JAMIN; DONG, JIBING
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 045594/0950 →
Priority Claims (1)
CN 2017 1 0250388 · Apr 17, 2017 · national
Continuity (1)
Related Publication 20180300254A1 · Oct 18, 2018