Computing devices with multi-layer file systems
AssigneeEmpire Technology Development LLC
InventorHui Huang Chang
Life of this patent
Estimating the term…
Abstract
Technologies are generally described for a multi-layer file system. In the multi-layer file system, a file is arranged into two or more data blocks respectively associated with corresponding multi-entry file indices. Each multi-entry file index can point to a location index at the beginning of a linked list (an initial entry in the linked list). The linked list may have at least one location index as an entry to identify a location in the storage device where the associated data block is stored.
Claims22
A method to access a file in a computing device having a storage controller configured to send and receive data to and from a storage device, respectively, the method comprising:
- identifying two or more multi-entry file indices associated with one or more pointers in a file descriptor of the file and maintained by an operating system of the computing device in a first data layer of a multi-layer file system;
- identifying a location index associated with each identified multi-entry file index,
- wherein the location index is an initial entry in a linked list maintained by the storage controller of the computing device in a second data layer of the multi-layer file system, and
- wherein the linked list has at least one location index as an entry to identify a location in the storage device that stores data associated with the file;
- identifying a modification-entry file index associated with the file for each identified multi-entry file index maintained by the operating system of the computing device in the first data layer,
- wherein the modification-entry file index identifies a modification location index which is an initial entry in a modification linked list maintained by the storage controller of the computing device in the second data layer, and
- wherein the modification linked list modifies a sequence of traversing entries in the linked list;
- evaluating a status field associated with each identified location index for a modification flag that indicates a modification to the sequence of traversing entries in the linked list;
- retrieving the data associated with the file in an order according to the modification linked list that modifies the sequence of traversing entries in the linked list;
- and
- organizing the data into a plurality of blocks, wherein:
- each block of the plurality of blocks is organized into one or more pages,
- each page of the one or more pages includes a spare region and a data region, and
- the spare region stores information that is utilized for error correction and to maintain location indices in the linked list.
A method to store a file into a storage device in a computing device having a storage controller configured to send and receive data to and from the storage device, respectively, the method comprising:
- dividing data associated with the file into two or more data blocks, wherein:
- each block of the two or more data blocks is organized into one or more pages,
- each page of the one or more pages includes a spare region and a data region, and
- the spare region stores information that is utilized for error correction and to maintain location indices in a linked list;
- creating, for each data block, a multi-entry file index that is maintained by an operating system of the computing device in a first data layer of a multi-layer file system and that references a location index which is an initial entry in the linked list maintained by the storage controller of the computing device in a second data layer of the multi-layer file system,
- wherein the multi-entry file index is associated with a pointer in a file descriptor of the file, and
- wherein the linked list has at least one location index as an entry to identify a location in the storage device where the data block is to be stored;
- identifying a modification-entry file index associated with the file,
- wherein the modification-entry file index identifies a modification location index which is an initial entry in a modification linked list maintained by the storage controller of the computing device in the second data layer, and
- wherein the modification linked list modifies a sequence of traversing entries in the linked list;
- evaluating a status field associated with each location index for a modification flag that indicates a modification to the sequence of traversing entries in the linked list;
- and
- writing the data block into the storage device in an order according to the modification linked list that modifies the sequence of traversing entries in the linked list.
A storage controller, comprising:
- a hardware processor;
- a data division unit coupled to the processor;
- a multi-entry file index creation unit coupled to the processor;
- and
- a data write unit coupled to the processor;
- the hardware processor configured to:
- control the data division unit to divide data associated with a file into two or more data blocks, wherein:
- each block of the two or more data blocks is organized into one or more pages,
- each page of the one or more pages includes a spare region and a data region, and
- the spare region stores information that is utilized for error correction and to maintain location indices in a linked list;
- control the multi-entry file index creation unit, for each data block, to create:
- a multi-entry file index that is maintained by an operating system of a computing device in a first data layer of a multi-layer file system and that references a location index which is an initial entry in the linked list that is maintained by the storage controller in a second data layer of the multi-layer file system, wherein the multi-entry file index is associated with a pointer in a file descriptor of the file, and wherein the linked list has at least one location index as an entry to identify a location in a storage device where the data block is to be stored, and wherein the computing device comprises the storage controller, and at least one modification-entry file index that identifies a modification location index which is an initial entry in a modification linked list maintained by the storage controller in the second data layer, wherein the modification linked list modifies a sequence of traversing entries in the linked list;
- evaluate a status field associated with each identified location index for a modification flag that indicates a modification to the sequence of traversing entries in the linked list;
- and
- control the data write unit, for each linked list, to write the data block into the storage device in an order according to the modification linked list that modifies the sequence of traversing entries in the linked list.
Dependencies are inferred from the claim text.