IP Library Granted Patent US 11,243,932
Granted Patent B2
US 11,243,932 · App. 16/917,843 · Granted Feb 8, 2022

Method, device, and computer program product for managing index in storage system

Inventors: Jie Liu (Chengdu, CN); Haitao Li (Chengdu, CN); Jian Wen (Chengdu, CN); Chao Lin (Chengdu, CN)
Assignee: EMC IP Holding Company LLC
G06F16/2272G06F16/137
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,243,932
App. No.
16/917,843
Granted
Feb 8, 2022
Kind
B2
Abstract

The present disclosure relates to a method, a device, and a computer program product for managing indexes in a storage system. The storage system includes storage data. In the method, a first set of data objects associated with the storage data is acquired. A first set of hashes of the first set of data objects is determined respectively. Hashes in the first set of hashes are hashes of data objects in the first set of data objects. A first file is generated in the storage system to store the first set of hashes. A first name of the first file is determined based on the hashes in the first set of hashes. An index of the storage data is created based on the first file.

Claims (76)

1. A method for managing indexes in a storage system, the storage system comprising storage data, the method comprising:

acquiring a first set of data objects associated with the storage data;

determining a first set of hashes of the first set of data objects, wherein hashes in the first set of hashes being hashes of data objects in the first set of data objects;

generating a first file in the storage system to store the first set of hashes, a first name of the first file being determined based on the hashes in the first set of hashes;

acquiring a second set of data objects associated with the storage data;

determining a second set of hashes of the second set of data objects;

generating a second file in the storage system to store the second set of hashes, a second name of the second file being determined based on hashes in the second set of hashes;

creating an index of the storage data based on the first file and the second file, wherein creating the index of the storage data comprises:

generating a third file in the storage system to store hashes of the first name and the second name; and

identifying the third file as a parent node of the first file and the second file in the index.

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

setting a type of the first file as an index type.

3. The method according to claim 2 , wherein the storage data comprises multiple data blocks, and acquiring the first set of data objects associated with the storage data comprises:

acquiring at least a portion of the multiple data blocks as the first set of data objects.

4. The method according to claim 3 , wherein generating the first file in the storage system to store the first set of hashes comprises:

combining the first set of hashes according to a predetermined combination rule to generate content;

storing the content into the first file; and

setting a hash of the content as the first name of the first file.

5. The method according to claim 1 , wherein generating the third file in the storage system to store hashes of the first name and the second name comprises:

combining the first name and the second name according to a predetermined combination rule to generate content;

storing the content into the third file; and

using a hash of the content as a name of the third file.

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

identifying the third file as the first file to perform the method iteratively until the third file involves all data blocks in the storage data; and

identifying the third file as a root file of the index of the storage data.

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

reading content of the root file according to a received access request for accessing the storage data;

determining a set of file names of a set of child nodes of the root file using the content of the root file; and

accessing the storage data based on the set of file names.

8. The method according to claim 7 , wherein determining the set of file names of the set of child nodes of the root file according to the content of the root file comprises:

determining the set of file names of the set of child nodes of the root file according to a predetermined combination rule.

9. The method according to claim 7 , wherein accessing the storage data based on the set of file names comprises:

for a given file name in the set of file names:

accessing a given file having the given file name;

determining a set of child file names of a set of child nodes of the given file according to a determination that a type of the given file is an index type and based on file content of the given file; and

accessing the storage data based on the set of child file names.

10. The method according to claim 9 , further comprising:

accessing the file content of the given file according to a determination that a type of the given file is a data type, the file content comprising a data block of the storage data.

11. The method according to claim 10 , further comprising:

traversing all child nodes of the root file to access all of data blocks of the storage data.

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

determining, based on a file related to the storage data, a path identifier associated with the file; and

storing the file into a storage space having the path identifier in a remote storage system.

13. The method according to claim 12 , further comprising:

retrieving the file from the storage space having the path identifier in the remote storage system.

14. An electronic device, comprising:

at least one processor; and

a memory coupled to the at least one processor, the memory having instructions stored therein, wherein when executed by the at least one processor, the instructions cause the electronic device to perform a method for managing indexes in a storage system, the method comprising:

acquiring a first set of data objects associated with storage data in the storage system;

determining a first set of hashes of the first set of data objects, wherein hashes in the first set of hashes being hashes of data objects in the first set of data objects;

generating a first file in the storage system to store the first set of hashes, a first name of the first file being determined based on the hashes in the first set of hashes;

acquiring a second set of data objects associated with the storage data;

determining a second set of hashes of the second set of data objects;

generating a second file in the storage system to store the second set of hashes, a second name of the second file being determined based on hashes in the second set of hashes;

creating an index of the storage data based on the first file and the second file,

wherein creating the index of the storage data comprises:

generating a third file in the storage system to store hashes of the first name and the second name; and

identifying the third file as a parent node of the first file and the second file in the index.

15. A computer program product tangibly stored on a non-transitory computer-readable medium and comprising machine-executable instructions, wherein the machine-executable instructions are used to perform a method, the method comprising:

acquiring a first set of data objects associated with storage data in a storage system;

determining a first set of hashes of the first set of data objects respectively, wherein hashes in the first set of hashes being hashes of data objects in the first set of data objects;

generating a first file in the storage system to store the first set of hashes, a first name of the first file being determined based on the hashes in the first set of hashes, wherein generating the first file in the storage system to store the first set of hashes comprises:

acquiring a second set of data objects associated with the storage data;

determining a second set of hashes of the second set of data objects;

generating a second file in the storage system to store the second set of hashes, a second name of the second file being determined based on hashes in the second set of hashes;

creating an index of the storage data based on the first file and the second file,

wherein creating the index of the storage data comprises:

generating a third file in the storage system to store hashes of the first name and the second name; and

identifying the third file as a parent node of the first file and the second file in the index.

16. The computer program product of claim 15 , the method further comprising:

setting a type of the first file as an index type,

wherein the storage data comprises multiple data blocks, and acquiring the first set of data objects associated with the storage data comprises: acquiring at least a portion of the multiple data blocks as the first set of data objects.

17. The computer program product of claim 16 , wherein generating the first file in the storage system to store the first set of hashes comprises:

combining the first set of hashes according to a predetermined combination rule to generate content;

storing the content into the first file; and

setting a hash of the content as the first name of the first file.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053574/0221) Recorded Jun 10, 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 060333/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053578/0183) Recorded Jun 10, 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 060332/0864 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053573/0535) Recorded Jun 10, 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 060333/0106 →
RELEASE OF SECURITY INTEREST AT REEL 053531 FRAME 0108 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0371 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053578/0183 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053573/0535 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053574/0221 →
SECURITY AGREEMENT Recorded Aug 18, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 053531/0108 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 1, 2020
From: LIU, JIE; LI, HAITAO; LIN, CHAO; WEN, JIAN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 053100/0222 →