IP Library Granted Patent US 10,545,829
Granted Patent B2
US 10,545,829 · App. 15/690,114 · Granted Jan 28, 2020

Using file system extended attributes to recover databases in hierarchical file systems

Inventors: Stephen Allen Hellwege (Ladera Ranch, CA); Sailesh Rachabathuni (Santa Clara, CA); Samuel Kevin Baughman (Anaheim, CA); Gabriel Ribeiro (San Francisco, CA); Jonathan Gaillard (San Francisco, CA)
Assignee: Western Digital Technologies, Inc.
G06F11/1435G06F11/1471G06F16/27G06F16/289
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,545,829
App. No.
15/690,114
Granted
Jan 28, 2020
Kind
B2
Abstract

Systems and methods are disclosed for reconstructing a file hierarchy by scanning attributes of stored files. Stored files can have a file hierarchy that is maintained in a database stored on a storage device. The files can be stored as objects on the device using a flat file structure. The file database provides the file hierarchy. The systems and methods disclosed herein store information in file system extended attributes for individual storage files such that the database can be reconstructed by scanning the storage files, using values in the extended attributes to recreate the hierarchical database.

Claims (48)

1. A network-attached storage device (NAS) comprising:

a non-volatile memory module configured to store:

a plurality of files stored in a flat file structure and not in a hierarchical format, the plurality of files comprising file system extended attributes sufficient to establish a file hierarchy; and

a file system database providing the file hierarchy of the plurality of files; and

control circuitry coupled to the non-volatile memory module and configured to:

detect one or more errors in the file system database adversely affecting the file hierarchy;

scan the plurality of files to extract information related to the file hierarchy from the file system extended attributes; and

write file information to an updated file system database based on the extracted information to correct the one or more detected errors related to the file hierarchy thereby restoring the file hierarchy of the plurality of files in the file system database.

2. The NAS of claim 1 , wherein the file system database comprises records associating file metadata with one or more stored objects.

3. The NAS of claim 1 , wherein individual files of the plurality of files are stored as objects using object-based storage.

4. The NAS of claim 1 , wherein the control circuitry is further configured to detect the one or more errors by comparing values in the file system database with values extracted from the file system extended attributes.

5. The NAS of claim 1 , wherein the control circuitry is further configured to create a new file system database as the updated file system database.

6. The NAS of claim 1 , wherein the control circuitry is further configured to overwrite corrupt entries in the file system database to create the updated file system database.

7. The NAS of claim 1 , wherein the control circuitry is further configured to add a new entry to the file system database responsive to creation of a new file.

8. The NAS of claim 7 , wherein the control circuitry is further configured to write file system extended attributes for the new file.

9. The NAS of claim 1 , wherein the control circuitry is further configured to update an existing entry in the file system database to correspond to updates to file data.

10. The NAS of claim 9 , wherein the control circuitry is further configured to update the file system extended attributes to correspond to updates to the file data.

11. The NAS of claim 1 , wherein the file system extended attributes include key-value pairs corresponding to a file identifier, a client-facing filename, a parent file identifier, and a flag indicating whether a corresponding file is a directory.

12. The NAS of claim 11 , wherein the file identifier corresponds to a name of a file stored in the non-volatile memory module.

13. The NAS of claim 12 , wherein the file identifier differs from the client-facing filename.

14. A computing device comprising:

a data storage module configured to store:

a plurality of files stored in a flat file structure and not in a hierarchical format, the plurality of files comprising file system extended attributes sufficient to establish a file hierarchy; and

a file system database providing the file hierarchy of the plurality of files; and

control circuitry coupled to the data storage module and configured to:

determine that the file hierarchy provided by the file system database is corrupted;

extract key-value pairs from the file system extended attributes, the key-value pairs including information related to the file hierarchy; and

generate a recovered file system database by associating information from the extracted key-value pairs with files on the data storage module to restore the file hierarchy of the plurality of files in the file system database.

15. The computing device of claim 14 , wherein the file system database comprises records associating file metadata with the plurality of files.

16. The computing device of claim 14 , wherein individual files of the plurality of files are stored in the flat file structure as objects using object-based storage.

17. The computing device of claim 14 , wherein the file system extended attributes include key-value pairs corresponding to a file identifier, a client-facing filename, a parent file identifier, and a flag indicating whether a corresponding file is a directory.

18. The computing device of claim 14 , further comprising a network interface.

19. The computing device of claim 18 , wherein the control circuitry is further coupled to the network interface and is further configured to:

receive, from a client device, a request for access to a file;

determine, using the file system database, an object stored on the data storage module corresponding to the file requested by the client device;

send, to the client device, file data corresponding to the file requested by the client device;

receive, from the client device, updates to the file sent to the client device;

update the file system database with updated properties based on the updates to the file received from the client device; and

update the file system extended attributes with the updated properties.

20. A network attached storage (NAS) device comprising:

data storage means for storing:

computer executable instructions;

a plurality of files stored in a flat file structure and not in a hierarchical format, the plurality of files comprising file system extended attributes sufficient to establish a file hierarchy; and

a file system database providing the file hierarchy of the plurality of files; and

control means for controlling the data storage means and, upon execution of the computer executable instructions, for:

comparing values extracted from the file system extended attributes to entries in the file system database;

determining that the file hierarchy provided by the file system database is corrupted responsive to identifying a difference between at least one extracted value from the file system extended attributes related to the file hierarchy and a corresponding entry in the file system database; and

restoring the file hierarchy provided by the file system database using values extracted from the file system extended attributes.

Assignments (10)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2017
From: HELLWEGE, STEPHEN ALLEN; RACHABATHUNI, SAILESH; RIBEIRO, GABRIEL; BAUGHMAN, SAMUEL KEVIN; GAILLARD, JONATHAN
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 044454/0534 →
Continuity (1)
Related Publication 20190065319A1 · Feb 28, 2019