File system for a storage device, methods of allocating storage, searching data and optimising performance of a storage device file system
AssigneeAgency for Science, Technology and Research
InventorsWeiya Xi, Wei Khing For
Life of this patent
Estimating the term…
Abstract
A file system for a storage device including a storage region, capable of storing one or more blocks of data; and a first data structure representing free space in the storage region, the first data structure comprising a location and a length of a block of free space in the storage region is disclosed. Methods of allocating storage, searching data and optimizing performance of the storage device file system are also disclosed.
Claims13
A computer storage device comprising:
- a processor including:
- a first storage region, configured to store one or more storage blocks of data;
- a second storage region, configured to store one or more storage blocks of data and being different from the first storage region;
- and
- a first data structure representing free space in each of the first and second storage regions, the first data structure comprising a location and a length of a block of free space in the respective storage region,
- wherein a size of at least one storage block in the first storage region is different from a size of at least one storage block in the second storage region;
- a file system is configured to use an adaptive algorithm to allocate storage in the file system;
- wherein according to the adaptive algorithm:
- a size of a file to be written is determined based on a write request;
- a current performance parameter of the file system is determined based on system throughput and/or storage space utilization of the computer storage device;
- a storage region type of a plurality of predetermined storage region types which is to be used to store data is determined, wherein the determined storage region type is selected according to the size of the file and the current performance parameter;
- a storage region of a plurality of storage regions of the file system is determined, the determined storage region being associated with the determined storage region type, wherein the determined storage region type determines the size of data storage blocks in the determined storage region;
- free space is located within the determined storage region;
- and
- data is written from the file to the free space.
A computer storage device comprising:
- a first storage region, configured to store one or more storage blocks of data;
- a processor including:
- a second storage region, configured to store one or more storage blocks of data and being different from the first storage region;
- and
- a first data structure representing a variable-sized file stored in each of the first and second storage regions, the first data structure comprising embedded metadata for searching the respective storage region,
- wherein the embedded metadata comprises a size of the file stored in the respective storage region and a storage region type that the file reside in,
- and wherein a size of at least one storage block in the first storage region is different from a size of at least one storage block in the second storage region;
- a file system is configured to use an adaptive algorithm to allocate storage in the file system;
- wherein according to the adaptive algorithm:
- a size of a file to be written is determined based on a write request;
- a current performance parameter of the file system is determined based on system throughput and/or storage space utilization of the computer storage device;
- a storage region type of a plurality of predetermined storage region types which is to be used to store data is determined, wherein the determined storage region type is selected according to the size of the file and the current performance parameter;
- a storage region of a plurality of storage regions of the file system is determined, the determined storage region being associated with the determined storage region type, wherein the determined storage region type determines the size of data storage blocks in the determined storage region;
- free space is located within the determined storage region;
- and
- data is written from the file to the free space.
A method of adaptively allocating storage in a computer storage device file system, wherein the file system comprises a plurality of storage regions which are configured to store data, the method comprising the steps of:
- determining a size of a file to be written based on a write request;
- determining a current performance parameter of the file system based on system throughput and/or storage space utilization of the computer storage device;
- determining a storage region type of a plurality of predetermined storage region types which is to be used to store data, the determined storage region type selected according to the size of the file and the current performance parameter;
- determining a storage region of the plurality of storage regions, the determined storage region being associated with the determined storage region type, wherein the determined storage region type determines the size of data storage blocks in the determined storage region;
- locating free space within the determined storage region;
- and
- writing data from the file to the free space,
- moving data that has been stored in a first storage region of the plurality of storage regions with a first data storage block size to a second storage region of the plurality of storage regions with a second data storage block size in order to achieve better space utilization if the current performance parameter reaches a predetermined value,
- wherein the first data storage block size is larger than the second data storage block size,
- wherein the performance parameter comprises a parameter selected to optimize throughput or a parameter selected to optimize space utilization.
A method of adaptively allocating storage in a computer storage device file system, wherein the file system comprises a plurality of storage regions which are configured to store data, the method comprising:
- determining a size of a file to be written based on a write request;
- determining a current performance parameter of the file system based on system throughput and/or storage space utilization of the computer storage device;
- determining a storage region type of a plurality of predetermined storage region types which is to be used to store data, the determined storage region type selected according to the size of the file and the current performance parameter;
- determining a storage region of the plurality of storage regions, the determined storage region being associated with the determined storage region type, wherein the determined storage region type determines the size of data storage blocks in the determined storage region;
- locating free space within the determined storage region;
- and
- writing data from the file to the free space,
- moving data that has been stored in a first storage region of the plurality of storage regions with a first data storage block size to a second storage region of the plurality of storage regions with a second data storage block size in order to achieve better space utilization if the current performance parameter reaches a predetermined value,
- wherein the first data storage block size is larger than the second data storage block size.
Dependencies are inferred from the claim text.