Abstract:
A file is written or not written to a first storage medium (as opposed to a second storage medium) as a function of its distribution-priority file-name extension character or characters and an available capacity of the first storage medium. A system includes a manufacture in the form of a computer-readable storage medium tangibly encoded with software. The software includes an operating system that, when executed, selects a first storage medium or a second storage medium to which to write a target file as a function of distribution-priority file-name extension characters of a file name for the target file and of available capacity on the first storage medium.

Description:
BACKGROUND 
     As it has become more affordable, capacious solid-state memory has increasingly assumed the mass storage role conventionally occupied by hard disks. Solid-state drives (SSDs) tend be faster, more robust, and more power efficient that hard-disk drives (HDDs). Thus, some computers include SSDs in lieu of HDDs. However, SSDs are (presently) more expensive than HDDs for a given storage capacity so computers with HDDs remain prevalent. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The figures depict implementations/embodiments of the invention and not the invention itself. 
         FIG. 1  is a schematic illustration of a computer system in accordance with an embodiment of the invention. The computer system includes both an SSD and an HDD. Some files are depicted as crossing the boundary between the SSD and HDD. The degree to which such a file is shown in the SSD is roughly indicative of a probability of it being found or written to the SSD. 
         FIG. 2  is a flow chart of a method in accordance with an embodiment of the invention. 
         FIG. 3  is a flow chart of a method segment of the method of  FIG. 2 . 
     
    
    
     DETAILED DESCRIPTION 
     A computer can include a SSD and a HDD to obtain the advantages of each. An operating system for such a computer determines whether to write a file to the SSD or the HDD (or both). This is a special case of distributing files between a smaller faster storage device and a larger slower storage device. Herein, some example embodiments disclose using file-name extensions to prioritize files for writing to the smaller-faster SSD. 
     As shown in  FIG. 1 , a computer system API includes processors  11 , communications devices  13 , and computer-readable storage media  15 . Media  15  includes manufactures in the form of a solid-state drive (SSD)  17  and a hard-disk drive (HDD)  19 . Collectively they store tangible memory states constituting software  20 , including data  21 , applications  23 , and an operating system  25 . Operating system  25  includes a number of “dynamically-linked-library” or “DLL” files  31 - 51 . 
     Each DLL file is given a file name that includes a base, a period, and an extension. For example, DLL file  31  has the file name “HIGHEST,DLLs 1 ”. (Note uppercase and lower case are not distinguished in these file names.) This file name includes a base “HIGHEST”, a period, and an extension “DLLs 1 ”. The extension includes two sections: the first three characters “DLL” are file-type extension characters and define a Me type for file  31 . The last two characters are “distribution-priority” characters and are used to help determine whether they are written to smaller-faster SSD  17  or larger-slower HDD  19 . In the case of file  31 , the fourth character is an “s”, indicating it is to be stored in SSD  17  if possible; the fifth character is a “1” indicating it has the highest priority for storage in SSD  17 . It is to be stored in SSD  17  (as indicated in  FIG. 1 ) unless SSD  17  is already full with highest-priority files. 
     File  32  has a file name “HIGHER.DLLs 2 ”. In this case, the fourth character is “s”, indicating the file is to be stored preferentially in SSD  17 . However, fifth character is a “2” (as opposed to “1” for file  31 ), indicating its priority rating is below that of files with distribution-priority s 1 . Thus, file  32  could be removed from solid-state disk  17  to make room for file  31 . On the other hand, file  32  would not be removed to make room for files with fifth characters of “3” (e.g., file  33 ), “4” (e.g., file  34 ), or “5” (e.g., file  35 ). Note that files  32 - 35  are shown in  FIG. 1  as straddling an abstract boundary between SSD  17  and HDD  19 . This straddling corresponds very schematically to probability distribution of finding a file in SSD  17  versus finding it in HDD  19 . (Straddling does not indicate that the file is partially stored in SSD  17  and partially stored in HDD  19 .) 
     File  36  has a distribution-priority extension section “s”, without a fifth character. This is treated as a preference for storage in SSD  17 , but with a lower priority than a file with an “s 5 ” distribution-priority extension section. For file  37 , the fourth extension character is “Ii” and there is no fifth character. The “h” indicates that file  37  is to be preferentially stored on HDD  19 . No fifth character is used to indicate priority since HDD  19  is presumably sufficiently capacious that file  37  will fit without moving files to SSD  17 . 
     File  38  has a file name (ZERO.DLL) with a file-type extension section but no distribution-priority extension characters. In the illustrated embodiment, such a file is treated as if it had an “s” extension with no fifth character; in other words it is treated as if it had an “h” for the fourth character. In an alternative embodiment, a file lacking distribution-priority extension characters is treated as if it had an s 3  extension. In another embodiment, such a file is distributed according to file type (or its file-type extension section). 
     For some files, e.g., files  39 - 50 , it is preferably to store then in both SSD  17  and HDD  19 , e.g., for backup. The fourth character “m” is used as the fourth character in these files. Thus, in  FIG. 1 , files  39  and  40  are duplicates and have the same file name “HIGHEST.DLLM 1 ”. Such “m” files can have a priority indicator of 1-5, this fifth character has the same basic meaning as the fifth character for the “s” files. Thus, file  45 , which has a distribution-priority extension of “m 3 ” has a priority higher than file  34  (with an s 4 ), but lower than file  32  (with an s 2 ). However, in the case of a tie at the fifth character, the file with the “s” extension has priority over the file with the “m” extension, since the latter has a copy on HDD  19 . If an “m” file is removed from SSD  17  to make room for a higher-priority file, it is simply deleted rather than moved (as an “s” file would be”) because of the copy already in place on HDD  19 . How these distribution-priority characters are used is explained further with reference to a method flow charted in  FIG. 2 . 
       FIG. 2  is a flow chart of a method ME 1  in accordance with an embodiment of the invention. Method segment M 1  invoking assigning distribution-priority file-name extensions to files. This extension may be may or may not be in addition to another extension, e.g., a file-type extension. In the case where there is more than one extension type, the distribution-priority extension can be identified by an absolute position (e.g., 4 th  and 5 th  characters) or position relative to some delimiter within the extension (e.g., a period or other separator within the extension). If a preceding extension (e.g., file-type extension) has a fixed length, the distribution priority section can begin at the end of that. If it has a variable length, the preceding extension can be filled in with default values to a fixed length. 
     In the embodiment of  FIG. 1 , an “s” as the fourth-character used to indicate a preference for an SSD or other faster-smaller storage medium. “h” is used to indicate a preference for a HDD or other slower-larger storage medium. “m” is used for a preference for writing a file to both media. Other characters can be used, as can values other than 1-5 for indicating priority rankings. 
     At method segment M 2 , files be written are distributed between media as indicated by the distribution-priority extension characters. Method segment M 2  is detailed in  FIG. 3 . At step S 1 , an operating system checks the fourth character of a file-name extension for a target file. Step S 2  involves determining whether the fourth character is or is not “s”. If it is, step S 3  calls for checking to determine with there is room on an SSD for writing the target file. If there is room, then step S 4  calls for writing the target file to the SSD. 
     If at step S 3 , it is determined that there is not enough room for the target file, then at step S 5 , the operating system checks the 5 th  character of the file-name extension of the target file. This character can be a “1”-“5” or be absent, which is treated as if it were a “6”, in other words, has the lowest priority. 
     At step S 6 , the operating system determines whether or not there is a file with a lower priority than the target file, i.e., has a higher priority number. If there is such a lower-priority file, it is moved to the hard disk at step S 7 . At this point, method segment S 2  returns to step S 3  to see if there is now sufficient room on the SSD. If there is sufficient room, the target file is written to the SSD. If there is not, another lower-priority file can be moved at S 7 . However, if it is not possible to make room for the target file by moving lower priority files, as determined at an iteration of S 6 , then the target file is written to the hard disk at step S 8 . 
     If at step S 2 , the operating system determines that the fourth character is not an “s”, step S 9  checks to determine if it is an “m” instead. If it is not an “m” (or an “s”), it is written to the HDD at step S 8 . Note that if the fourth character is not an “s” or an “m” is it either an “h” (indicating a preference for the hard disk, or absent, indicating a very low priority. In either case, the writing to the HDD is appropriate. 
     If at step S 9 , the operating system determines that the fourth character is “m”, then it also writes the target file to the HDD. However, in the case of an “m”, method segment M 2  branches to S 3  to determine if a copy of the target file should be written to the SSD. From step S 3 , method segment S 2  proceeds as it would with an “s” file to determine whether or not to write the target file to the SSD. The exception is that, if at step S 6 , there is no room on the SSD that can be cleared by moving lower priority files, the “m” file is not written a second time to the HDD. 
     If the naming scheme varies from that used in  FIG. 1 , method ME 1  and step S 2  will vary accordingly. These and other variations upon and modifications to the illustrated embodiment are provided for by the present invention, the scope of which is defined by the following claims.