IP Library › Granted Patent US 11,755,557
Granted Patent B2
US 11,755,557 · App. 17/930,214 · Granted Sep 12, 2023

Flat object storage namespace in an object storage system

Inventors: Richard Parvin Jernigan, IV (Sewickley, PA); Roger Warren Cox (Los Altos, CA)
Assignee: NETAPP, INC.
G06F16/2282G06F16/162G06F16/182G06F16/24552G06F16/24554G06F16/28
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,755,557
App. No.
17/930,214
Granted
Sep 12, 2023
Kind
B2
Abstract

A system, method, and machine-readable storage medium for maintaining an object storage system data are provided. In some embodiments, an object manager may receive a request to perform an operation on an object. The object storage system includes a first database of a first type and a second database of a second type. The object manager may identify a first record stored in the first database. The first record includes a name marker indicating a range of object names covered by the second database and includes a file handle referencing the second database. The range of object names includes the object name. Additionally, the object manager may identify a second record stored in the second database. The second record includes the object name and includes a file handle referencing the object. The object manager may perform the operation on the object in accordance with the request.

Claims (55)

1. A method performed by an object storage system, the method comprising:

maintaining a first database and a second database, wherein, for a first object being stored in the object storage system,

the first database stores a first record, which includes a first name marker indicating a range of object names covered by the second database and a first volume identifier referencing a first volume and a first inode, within the first volume, indicating a first location at which the second database is stored, and the range of object names including an object name of the first object, and

the second database stores a second record, the second record including the object name and including a second volume identifier referencing a second volume and a second inode, within the second volume, indicating a second location at which the first object is stored in the object storage system;

determining that the second database satisfies a split threshold;

partitioning a plurality of records of the second database into a first subset of records and a second subset of records in response to the split threshold being satisfied, including storing a third database including the first subset of records and covering a first sub range of the range of object names, the third database storing the second record; and storing a fourth database including the second subset of records and covering a second sub range of the range of object names; and

updating the first record to store a second name marker indicating the first sub range and to reference a third inode, within the first volume, indicating a third location at which the third database is stored.

2. The method of claim 1 , further comprising:

inserting a third record into the first database, the third record storing a third name marker indicating the second sub range and referencing a fourth inode, within the first volume, indicating a fourth location at which the fourth database is stored.

3. The method of claim 1 , further comprising:

deleting the second database after partitioning the second database and generating at least the third database.

4. The method of claim 1 , wherein the second database represents a flat namespace storing a plurality of object names.

5. The method of claim 1 , further comprising:

wherein determining that the second database satisfies the split threshold includes determining that the plurality of records is greater than a threshold quantity of records.

6. The method of claim 1 , further comprising:

searching the first database, using the object name of the first object, for the first name marker.

7. A method performed by an object storage system, the method comprising:

accessing a first database and a second database, wherein, for a first object being stored in the object storage system,

the first database stores a first record, which includes a first name marker indicating a first range of object names covered by the second database and a first volume identifier referencing a first volume and a first inode, within the first volume, indicating a first location at which the second database is stored, and the first range of object names including an object name of the first object, and

the second database stores a second record, the second record including the object name and including a second volume identifier referencing a second volume and a second inode, within the second volume, indicating a second location at which the first object is stored in the object storage system;

receiving a request to perform an operation on the first object, the request including the object name of the first object;

searching the first database, using the object name, to identify the first location at which the second database is stored, and searching the second database to identify the second location;

performing the operation on the first object at the second location;

determining that the second database satisfies a first merge threshold; and

merging the second database into a combined database in response to the first merge threshold being satisfied.

8. The method of claim 7 , wherein merging the second database into the combined database comprises:

merging the second database with a third database to create the combined database in response to a determination that a size of the second database is less than the first merge threshold and a size of the third database is less than a second merge threshold, the third database and the combined database being chapter databases.

9. The method of claim 7 , further comprising:

determining that a third database satisfies a second merge threshold; and

merging the second database and the third database to create the combined database in response to the second merge threshold being satisfied.

10. The method of claim 7 , further comprising:

determining that a third database satisfies a second merge threshold, wherein the third database covers a second range of object names; and

merging the second database and the third database to create the combined database in response to the second merge threshold being satisfied, wherein the combined database covers the first range of object names and the second range of object names.

11. The method of claim 10 , further comprising:

updating the first record to store a second name marker indicating the first range of object names and the second range of object names.

12. The method of claim 11 , further comprising:

removing a third record from the first database, the third record corresponding to the third database.

13. The method of claim 7 , wherein the second database represents a flat namespace storing a plurality of object names.

14. The method of claim 7 , further comprising:

caching a plurality of further records of a table-of-contents (TOC) database into the first database.

15. A method performed by an object storage system, the method comprising:

accessing a table-of-contents (TOC) database and a first chapter database, wherein, for a first object being stored in the object storage system,

the TOC database stores a first record, which includes a first name marker indicating a range of object names covered by the first chapter database and a first volume identifier referencing a first volume and a first inode, within the first volume, indicating a first location at which the first chapter database is stored, and the range of object names including an object name of the first object, and

the first chapter database stores a second record, the second record including the object name and including a second volume identifier referencing a second volume and a second inode, within the second volume, indicating a second location at which the first object is stored in the object storage system;

determining that the first chapter database satisfies a split threshold;

partitioning a plurality of records of the first chapter database into a first subset of records and a second subset of records in response to the split threshold being satisfied, including storing a second chapter database including the first subset of records and covering a first sub range of the range of object names, the second chapter database storing the second record; and storing a third chapter database including the second subset of records and covering a second sub range of the range of object names; and

updating the first record to store a second name marker indicating the first sub range and to reference a third inode, within the first volume, indicating a third location at which the second chapter database is stored.

16. The method of claim 15 , further comprising:

inserting a third record into the TOC database, the third record storing a third name marker indicating the second sub range and referencing a fourth inode, within the first volume, indicating a fourth location at which the third chapter database is stored.

17. The method of claim 15 , further comprising:

deleting the first chapter database after partitioning the first chapter database and generating at least the second chapter database.

18. The method of claim 15 , wherein the first chapter database represents a flat namespace storing a plurality of object names.

19. The method of claim 15 , wherein determining that the first chapter database satisfies the split threshold includes determining that a quantity of records is greater than a threshold quantity of records.

20. The method of claim 15 , further comprising:

searching the TOC database, using the object name of the first object, for the first name marker.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 7, 2022
From: JERNIGAN, RICHARD PARVIN, IV; COX, ROGER WARREN
To: NETAPP, INC.
Reel/Frame 061014/0603 →
Continuity (2)
Continuation 16853980 · Apr 21, 2020
Related Publication 20230004543A1 · Jan 5, 2023