Patent Publication Number: US-7596588-B2

Title: Managing files to be offloaded by multiple users into a common storage repository

Description:
TECHNICAL FIELD 
     The present invention relates generally to a multi-user computer environment and, in particular, to managing files in a common storage repository in the multi-user computer environment. 
     BACKGROUND ART 
     There are numerous instances in which multiple users may require access to the same data file or a group of data files. For example, during the development of a new or updated computer system or subsystem, it is important for testers to be able to access various files on the systems under development. Such files include log files, debug files and other files containing system status information compiled during test runs. Typically, a user wanting to access such a file will issue a file request to a common offload tool. The tool will then locate the file or group of files on the system under test and direct that the file(s) be offloaded into a common storage repository for use by the user. If another user wants to access the same file(s), that user will go through the same procedure, resulting in another copy of the file(s) in the common storage repository. On occasion, the second request may be issued nearly simultaneously with the first. 
     In many test and other environments, the files may be extremely large and offloading such files to the common storage repository takes a very long time, sometimes several hours. Therefore, not only is unnecessary storage space used when duplicate files are stored in the common storage repository, but unnecessary bandwidth is used for the file transfer and additional burden is placed on the management of the common storage repository. 
     Furthermore, because the files on the test computers have standard names and employ file wrapping techniques to minimize the space they require on the test computers, it may be difficult for a user to know which specific file is required for a particular problem determination or analysis. Thus, users may often offload an entire set of files when only a smaller subset is required. It will be appreciated that such activity further degrades system performance and storage space usage. 
     Consequently, a need remains for more efficient management of file offloads to the common storage repository. 
     SUMMARY OF THE INVENTION 
     A method, system and program product are provided for managing files to be offloaded by multiple users into a common storage repository. A request is received from a user to offload a file from a computer. A determination is made whether the file is currently stored in the common storage repository. If the file is not currently stored in the common storage repository, the file is offloaded to the common storage repository. If the file is currently stored in the common storage repository, a link is established for the user to the file in the common storage repository. If the requested file is in-transit, the link is established when the transfer is complete. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a block diagram of a multi-user environment in which the present invention may be implemented; 
         FIG. 2  is a flow chart of one example of the present invention; and 
         FIG. 3  is a flow chart of another example of the present invention. 
     
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
       FIG. 1  is a block diagram of a multi-user environment  100  in which the present invention may be implemented. Test computers  102 ,  104 , or other systems or subsystems to which multiple users require access, are interconnected, such as through a network, with a common offload tool  106 . User computers or terminals  108 ,  110  are similarly interconnected with the common offload tool  106 . Although any number of test computers and users may be interconnected with the common offload tool  106 , for clarity only two of each are illustrated herein. Additionally, a common storage repository  112  is interconnected with the common offload tool  106 . The common storage repository  112  may comprise a large disk storage subsystem capable of holding, for example, many terabytes of data. Space  114 ,  116  is allocated in the common storage repository  112  for the files that each user  108 ,  110 , respectively, has offloaded. The components in the environment  100  may be interconnected in any known manner, such as with direct wired connections or through a network. 
     Each test computer  102 ,  104  has associated with it a persistent table  118 ,  120 , respectively, which has an entry for each file that has been offloaded from the computer to the common storage repository  112 . These entries include, but are not limited to, the location in the common storage repository  112  of files that are currently offloaded. The tables  118 ,  120  may also include an entry for each file that is currently being transferred to the common storage repository  112 . These entries include, but are not limited to, the destination in the common storage repository  112  of the in-transit files. An indicator may be used to indicate the status of each file: “offloaded” or “in-transit”. Although in  FIG. 1  the tables  118 ,  120  are stored in the associated computer  102 ,  104 , they may instead be stored in the common offload tool  106  and the present invention does not depend upon their location. 
     The common offload tool  106  may comprise one or more servers operating under a protocol which enables the users  108 ,  110  to request that files on the test computers  102 ,  104  be offloaded into the common storage repository  112 . In one embodiment, each user computer or terminal  108 ,  110  runs an instance of the protocol or common offload tool  106 . It is also preferable for any file offloaded in the common storage repository  112  to be “locked” to prevent it from being modified. 
       FIG. 2  is a flow chart of one example of the present invention. A user  108  requests through the common offload tool  106  files A, B and C on one test computer  102  (step  200 ). The common offload tool  106  queries the table  118  associated with the test computer  102  to determine if any of the requested files has already been offloaded to the common storage repository  112  (step  202 ). If the common offload tool  106  determines that a previously offloaded file has the same name as a requested file, the common offload tool  106  also preferably determines if the contents of the already-offloaded file and the requested file have the same contents (step  204 ). If such an option is included in the process, a checksum, CRC or other value is calculated for each file that uniquely identifies the content of the file. A common utility program, such as the AIX routine “cksum”, may be used. If two files have different checksum values, their contents are different even if they share the same file name. Consequently, they will be treated as different files by the common offload tool  106 . In the example of  FIG. 2 , because none of the files A, B, C have already been offloaded, the common offload tool  106  initiates a transfer of the files (step  206 ) to space /LOC 1  in the common storage repository  112 . 
     For purposes of the example of  FIG. 2 , the transfer of all of the files A, B and C completes (step  208 ) and appropriate entries are made in the table  118  (step  210 ) indicating their new offloaded status before a second user  110  requires files from the same computer  102 . The second user  110  requests through the common offload tool  106  files B, C and D on the test computer  102  (step  212 ). The common offload tool  106  again queries the table  118  to determine any of the requested files has already been offloaded to the common storage repository  112  (step  214 ) and verifies the uniqueness of the contents of the requested file (step  216 ). Files B and C are already in the common storage repository  112  and, assuming the contents of the requested files B and C are the same as the contents of the already-offloaded files B and C, instead of offloading these files again, the common offload tool  106  offloads file D (step  216 ) to /LOC 2  in the common storage repository  112  and creates links in /LOC 2  to files B and C in /LOC 1  (step  218 ). Appropriate entries are then made in the table  118  indicating the new status of file D (step  220 ). Thus, because two of the requested files are already stored in the common storage repository  112 , instead of using bandwidth and space to transfer and store all three requested files, only one is transferred. 
       FIG. 3  is a flow chart illustrating another aspect of the present invention. Again, the user  108  requests through the common offload tool  106  files A, B and C on one test computer  102  (step  300 ). The common offload tool  106  queries the table  118  associated with the test computer  102  to determine if any of the requested files has already been offloaded to the common storage repository  112  and if so, whether the contents are the same (step  302 ). Since none of the files A, B, C have already been offloaded, the common offload tool  106  initiates a transfer of the files (step  304 ) to space /LOC 1  in the common storage repository  112  and adds entries into the table  118  indicating that the files are in transit (step  306 ). 
     For purposes of the example of  FIG. 2 , the second user  110  requests files B, C and D (step  308 ) before the transfer of the files A, B and C is complete. The common offload tool  106  again queries the table  118  to determine any of the requested files has already been offloaded or is in-transit to the common storage repository  112  and if so, whether the contents are the same (step  310 ). According to the table  118 , files B and C are in-transit; the common offload tool  106  initiates the transfer of only file D to /LOC 2  in the common storage repository  112  (step  312 ) and makes the appropriate entry in the table  118  (step  314 ). The common offload tool  106  waits until the transfer of the other two files B and C is complete (step  316 ) and then creates a link in /LOC 2  to the files B and C in /LOC 1  (step  318 ) and updates the table  118  with appropriate entries (step  320 ). 
     It is important to note that while the present invention has been described in the context of a fully functioning data processing system, those of ordinary skill in the art will appreciate that the processes of the present invention are capable of being distributed in the form of a computer readable medium of instructions and a variety of forms and that the present invention applies regardless of the particular type of signal bearing media actually used to carry out the distribution. Examples of computer readable media include recordable-type media such as a floppy disk, a hard disk drive, a RAM, and CD-ROMs and transmission-type media such as digital and analog communication links. 
     The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art. The embodiment was chosen and described in order to best explain the principles of the invention, the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated. Moreover, although described above with respect to methods and systems, the need in the art may also be met with a computer program product containing instructions for managing files to be offloaded by multiple users into a common storage repository.