Relocating data within a file system
AssigneeApple Inc.
InventorDominic Giampaolo
Life of this patent
Estimating the term…
Abstract
A method for dynamically optimizing file systems based on user access patterns or other parameters. According to an embodiment of the present invention, a list of files forming a cluster is first created based on various preset criteria by an application, the list is transmitted to a file system program, and then the file system optimizes allocation of files in a storage medium based on the list. Embodiments of the present invention can be used to rearrange files stored in a storage medium so that files which tend to be used together are stored closer to each other. This can substantially reduce a typical application launch time.
Claims20
A computer-implemented method for managing a storage medium of a data processing system, the method comprising:
- receiving a selection of particular metadata attributes, wherein the selected metadata attributes are shared between files stored in the storage medium;
- based on the selected metadata attributes, generating an attribute space that is comprised of a plurality of dimensions, wherein each dimension of the attribute space corresponds to a different one of the selected metadata attributes;
- for each of the files, plotting the file within the attribute space based on metadata associated with the file, wherein the metadata at least includes values for each one of the different metadata attributes that correspond to the dimensions of the attribute space;
- identifying, based on the manner in which the files are plotted within the attribute space, at least a first group of the files and a second group of the files;
- relocating files of the first group to a first contiguous region of the storage medium;
- and
- relocating files of the second group to a second contiguous region of the storage medium that is distinctive from the first contiguous region, such that seek time of the storage medium for accessing at least one of the first group and second group is reduced.
A non-transitory machine-readable storage medium having instructions stored therein, which when executed by a processor, cause the processor to perform a method for managing a storage medium of a data processing system, the method comprising:
- scanning files stored in the storage medium to identify at least a first group of the files and a second group of the files, wherein each file is associated with a different metadata that includes at least a first attribute and a second attribute, and the scanning includes:
- receiving a selection of particular metadata attributes, wherein the selected metadata attributes are shared between files stored in the storage medium,
- based on the selected metadata attributes, generating an attribute space that is comprised of a plurality of dimensions, wherein each dimension of the attribute space corresponds to a different one of the selected metadata attributes,
- for each of the files, plotting the file within the attribute space based on metadata associated with the file, wherein the metadata at least includes values for each one of the different metadata attributes that correspond to the dimensions of the attribute space, and
- identifying, based on the manner in which the files are plotted within the attribute space, at least a first group of the files and a second group of the files;
- relocating files of the first group to a first contiguous region of the storage medium;
- and
- relocating files of the second group to a second contiguous region of the storage medium that is distinctive from the first contiguous region, such that seek time of the storage medium for accessing at least one of the first group and second group is reduced.
A data processing system, comprising:
- a first component running at an application level configured to scan files stored in the storage medium to identify at least a first group of the files and a second group of the files, wherein each file is associated with a different metadata that includes at least a first attribute and a second attribute, and the scanning includes:
- receiving a selection of particular metadata attributes, wherein the selected metadata attributes are shared between files stored in the storage medium,
- based on the selected metadata attributes, generating an attribute space that is comprised of a plurality of dimensions, wherein each dimension of the attribute space corresponds to a different one of the selected metadata attributes,
- for each of the files, plotting the file within the attribute space based on metadata associated with the file, wherein the metadata at least includes values for each one of the different metadata attributes that correspond to the dimensions of the attribute space,
- identifying, based on the manner in which the files are plotted within the attribute space, at least a first group of the files and a second group of the files;
- and
- a second component running at a kernel level to relocate files of the first group to a first contiguous region of the storage medium and to relocate files of the second group to a second contiguous region of the storage medium that is distinctive from the first contiguous region, such that seek time of the storage medium for accessing at least one of the first group and second group is reduced.
Dependencies are inferred from the claim text.