US 11,853,165 B2
Using file system extended attributes to update databases in hierarchical file systems
Stephen Allen Hellwege, Ladera Ranch, CA (US); Sailesh Rachabathuni, Santa Clara, CA (US); Samuel Kevin Baughman, Anaheim, CA (US); Gabriel Ribeiro, San Francisco, CA (US); and Jonathan Gaillard, San Francisco, CA (US)
Assigned to Western Digital Technologies, Inc., San Jose, CA (US)
Filed by Western Digital Technologies, Inc., San Jose, CA (US)
Filed on Jan. 28, 2020, as Appl. No. 16/775,023.
Application 16/775,023 is a continuation of application No. 15/690,114, filed on Aug. 29, 2017, granted, now 10,545,829.
Prior Publication US 2020/0264955 A1, Aug. 20, 2020
Int. Cl. G06F 11/14 (2006.01); G06F 16/182 (2019.01); G06F 16/27 (2019.01); G06F 16/28 (2019.01)
CPC G06F 11/1435 (2013.01) [G06F 11/1471 (2013.01); G06F 16/1824 (2019.01); G06F 16/27 (2019.01); G06F 16/289 (2019.01)] 20 Claims
OG exemplary drawing
 
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, each file in the plurality of files comprising a file content and one or more file system extended attributes that include a parent file identifier that references a parent file of a file, wherein file system extended attributes of the plurality of files are configured to be used to establish a client-facing file hierarchy of the plurality of files; and
a file system database configured to provide the client-facing file hierarchy, the file system database configured to store at least one file system extended attribute including the parent file identifier for each file of the plurality of files but not the file content, wherein the file content of each file of the plurality of files is stored external to the file system database in the flat file structure; and
control circuitry coupled to the non-volatile memory module and configured to:
determine that a new file has been created by a client using the client-facing file hierarchy, the new file including file system extended attributes that include a parent file identifier that references a parent file of the new file;
in response to determining that the new file has been created:
store the new file within the flat file structure on the non-volatile memory module;
scan the new file to extract information to determine the parent file of the new file within the client-facing file hierarchy from the file system extended attributes of the new file; and
write file information to an updated file system database based on the extracted information to include the new file in the updated file system database thereby updating the client-facing file hierarchy of the plurality of files in the file system database to include the new file; and
in response to an update to the parent file of the new file in the client-facing file hierarchy:
update a record in the file system database to reference a second parent file identifier referencing a new parent of the new file in the client-facing file hierarchy; and
store the second parent file identifier in a first extended attribute of the new file within the flat file structure.