Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
FILE MANAGEMENT SYSTEM AND METHOD
Document Type and Number:
WIPO Patent Application WO/2011/040922
Kind Code:
A1
Abstract:
A file management system (22) and method create an overlay file system in a memory location (34) other than the main memory in response to receiving a request to access a file, retrieve the file (44) and store the file (44) in the overlay file system and intercept requests (52) to access the main memory to access the file (44) and redirect the requests (52) to the memory location (34) other than the main memory (30).

Inventors:
PROVENCHER MICHAEL A (US)
WHIPPLE WILLIAM R (US)
PELHAM MICHAEL D (US)
Application Number:
PCT/US2009/059143
Publication Date:
April 07, 2011
Filing Date:
September 30, 2009
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HEWLETT PACKARD DEVELOPMENT CO (US)
PROVENCHER MICHAEL A (US)
WHIPPLE WILLIAM R (US)
PELHAM MICHAEL D (US)
International Classes:
G06F9/06; G06F12/00
Foreign References:
US7197516B12007-03-27
US20040044706A12004-03-04
US20070277055A12007-11-29
Attorney, Agent or Firm:
CZARNECKI, Michael S. et al. (Intellectual Property AdministrationMail Stop 35,P.O. Box 27240, Fort Collins Colorado, US)
Download PDF:
Claims:
WHAT IS CLAIMED IS:

1. An apparatus comprising:

a file management system (22) comprising:

a file manager program (48) configured to:

create an overlay file system (40) in a memory location other than the main memory (30) in response to receiving a first request to access a file; and

retrieve the file and store the file (44) in the memory (34) location other than the main memory (30); and

an interceptor program (42) configured to intercept the first request (52) or another request (52) from an operating system (32) to access the main memory (30) to access the file (44) and to redirect the request (52) to the memory (34) location other than the main memory (30) storing the file.

2. The apparatus of claim 1 , wherein the file manager program (48) isconfigured to create the interceptor program (42).

3. The apparatus of any o claims 1 -2, wherein the file manager program (48) is further configured uncompress the file and to store the file in the overlay file system (40).

4. The apparatus of any of claims 1-3 further comprising an operating system (32 ), wherei the file manager program (48) is stored in a startup environment of the operating system (32).

5. The apparatus of any of claim 1-4, wherein the interceptor program (42) comprises a file system driver.

6. The apparatus of claim 5, wherein the file system driver is selected from a group of file system drivers consisting of: a unionfs or a bind mount of a tmpfs over relevant portions of a rootfs.

7. The apparatus of any of claims 1-6 further comprising:

a computer operating system (32);

the main memory (30); and

the memory location (34) other than the main memory.

8. The apparatus of any of claims 1 -7, wherein the memory location (34) other than the main memory is selected from a group of memory location consisting of: a random access memory; an external hard disc drive; a portable external flash memory; a server or a LINUX tmpfs.

9. The apparatus of any of claims 1 -8 further comprising a random access memory, wherein the interceptor program (42) is stored in the main memory (30) and loaded into the random access memory.

10. The apparatus of any of claims 1 -9, wherein the main memory (30) comprises a hard disk drive.

1 1. A file management method comprising:

creating an overlay file system (40) in a memory (34) location other than a main memory (30) in response to receiving a first request to access a file;

retrieving the file and storing the file (44) in the memory (34) location other than the main memory (30);

intercepting the first request or another request in a computer to access the main memory (30) to access the file (44) and redirecting the request (52) to the memory location (34) other than the main memory (30); and

accessing the file (44) from the memory location (34). wherein the accessing of the file (44) results in tangible changes external to the computer.

12. The method of claim 1 1 , wherein the main memory (30) comprises a hard disk drive.

13. The method of any of claims 11-12, wherein the memory location (34) other than the main memory is selected from a group of memory location consisting of: a random access memory; an external hard disc drive; a portable external flash memory; a server or a LINUX tmpfs.

14. . The method of claim 1 1 further comprising storing the file (44) in the main memory (30) after changes have been made to the file (44) while the file (44) was i the overlay file system (40).

15. The method of any of claim 11-14 further comprising creating an interceptor program (42), wherein the interceptor program (42) performs the intercepting of the request and the redirecting of the request (52).

Description:
FILE MANAGEMENT SYSTEM AND METHOD

BACKGROUND

[0001] Computer files are sometimes compressed to conserve memory. Updating compressed files is difficult and hampers run-time performance.

BRIEF DESCRIPTION OF THE DRAWINGS

[0002] Figure 1 is a schematic illustration of a computing system and an associated file management system according to an example embodiment.

[0003] Figure 2 is a flow diagram of a method of accessing a file using the file management system of Figure 1 according to an example embodiment.

[0004] Figure 3 is a schematic illustration of the computing system and the associated file management system of Figure 1 upon installation of a file manager according to an example o embodiment.

[0005] Figure 4 is a flow diagram o a method of installing the file manager of Figure 3 and obtaining a compressed file according to an example embodiment.

[0006] Figure 5 is a flow diagram of a method creating the interceptor and

decompressing the compressed file according to an example embodiment.

DETAILED DESCRIPTION OF THE EXAMPLE EMBODIMENTS

[0007] Figure 1 schematically illustrates a computer system 20 and an associated file management system 22 according to an example embodiment. As will be described hereafter, file management system 22 facilitates compression of files while permitting updates to the files without substantial impairment of run-time performance.

[0008] Computer system 20 comprises a system of computer components configured to run or execute one more files which results in tangible changes external to the computing system. Such tangible changes may include the changing of an image, a display or other information presented on a display monitor or screen. Such tangible changes may include the output of control signals to an external device, causing the external device to perform one or more steps or operations. In other embodiments, other tangible changes may result from the operation of one of more of the files by the computer system 20. 10009] Computer system 20 includes main memory 30, operating system 32 and alternative memory location 34. Main memory 30 comprises the main memory location at which operating system 32 stores files, programs and data. For purposes of this disclosure, a "main memory" shall mean a non-volatile memory location or structure in which a majority of files, programs and data accessed by a computing system are stored. In one embodiment, the main memory may store operating system 32. In one

embodiment, main memory 30 may be a local non-volatile memory contained in the computing terminal such as the memory contained in the housing of the computing terminal or directly connected to the computing terminal via a universal serial bus port. For example, the main memory any contained in the housing a desktop computer or the housing of a laptop or notebook computer. In one embodiment, the main memory may comprise a hard disk drive, also referred to as a hard disk, hard drive or HDD. A hard disk drive comprises a non-volatile persistent memory storage device in which data stored on one or more rotating disks.

[0010] Operating system 32 comprises software or programming stored on the memory provided by main memory 30. Operating system 32 facilitates interface between a person and computing system 20. In one embodiment, operating system 32 is installed onto a main memory comprising a hard disk drive. In one embodiment, operating system 36 may comprise a disk operating system (DOS). One example of a DOS operating system is an operating system that runs on machines with INTEL X86 or compatible central processing units. One example of such an operating system is a WINDOWS based operating system such as WINDOWS XP, WINDOWS VISTA or WINDOWS 7 operating systems. Other examples of operating systems include, but are not limited to, LINUX, Mac OS X, Solaris. BSD and Amiga OS.

[0011] Alternative memory location 34 comprises a memory location other than the main memory 30. In one embodiment, alternative memory location 34 comprises a memory location other than a hard disk drive comprising main memory 30. Alternative memory location 34 may comprise volatile or non-volatile persistent memory. In one embodiment, alternative memory location has a memory storage capacity less than that of main memory 30. In one embodiment, alternative memory location 34 is remote from main memory 30 containing operating system 32 where communication is through a wired or wireless network (a local area network, a wide area network or internet) or is removably plugged into the computing terminal containing main memory 30 and operating system 32 via a universal serial bus (USB) port or similar plug. Examples of alternative memory location 34 include, but are not limited to, a random access memory which is local or provided in the same terminal or unit containing main memory 30, a portable external flash memory such as a jump drive which is connected to a computer terminal via a USB port or other connection or other wired or wireless interface, an external hard disk drive connected to the computing system by a USB port or other wired or wireless interface and memory contained in an external network server or a LINUX tmpfs memory location.

[0012] File management system 22 comprises one or more executable computer files or computer readable programs or instructions configured to result in the creation of an overlay file system in a memory location other than a main memory in response to receiving a first request to access a file, to result in the obtaining or retrieval of the file and storage of the file in the memory location other than the main memory, to result in the interception of any requests for accessing the main memory 30 to run the file and to result in the intercepted request being redirected to the alternative memory location 34. The request may be to execute or run the file contained in alternative memory location 34 or to update the file or its data contained in the alternative memory location 34. The file may be retrieved from the main memory or may be retrieved from a location remote the computer. The retrieved filed may be in a compressed state, wherein the file

management system uncompresses the file and stores the uncompressed file in the memory location other than the main memory. Because the compressed file or payload, which may have been stored in the main memory 30, is uncompressed into the alternative memory location 34, the uncompressed file does not occupy memory space or resources of main memory 30. Because requests for accessing the uncompressed file arc intercepted and redirected to the alternative memory location, the uncompressed file in alternative memory location 34 may be quickly accessed and run or updated without substantially impairing run-time performance.

[0013] File management system 22 includes directory 40 and interceptor 42. Directory 40 comprises a directory of files which correspond to or which is named or identified in a fashion similar to the directory for a file 44 had the file 44 been actually uncompressed and stored in main memory 30. File 44 may be an executable program, program settings, or data.

[0014] In one embodiment, directory 40 comprises an overlay file system into which the uncompressed file 44 is stored. An overlay file system is a pseudo file system that allows users to work with files from another file system without affecting it. The overlay file system provides a "mirror" of files in a mounted file system which users can access normally, except that all modifications to the mirror are stored on the side so that the original file system, referred to as the base file system, is unaffected. All modi ications to user attributes, such as the owner and permissions, are saved by the overlay file system in its own storage. All modifications to the contents of files and directories are stored in another location, as specified when mounted.

[0015] In the example disclosed, because the uncompressed file is stored in an overlay file system, the file is in the mounted or base file system, while any subsequent changes are contained in the mirror or overlay file storage.

[0016] Interceptor 42 comprises a computer program or computer readable instructions configured to intercept a request from operating system 32 to access main memory 30 and run or update a file 44 and to redirect the request to alternative memory location 34. In particular, interceptor 42 redirects or reroutes the request to directory 40 where the uncompressed file 44 is stored. According to one embodiment, interceptor 42 comprises a file system driver. According to one embodiment, interceptor 42 comprises a file system driver such as a unionfs or a bind mount of a tmpfs over relevant portions of a rootfs. In other embodiments, other file system drivers they employed as interceptor 42. Interceptor 42 may have other configurations as well.

[0017] As shown by Figure 1, file management system 22 includes a file manager 48. File manager 48 comprises an executable computer program or file stored in a startup environment of the operating system 32. The executable file serving as the file manager 48 is opened upon startup of the operating system 32. In response to receiving a request to access a predetermined file or a file meeting predefined conditions or characteristics (such as file size, file type, file location or file associations, such as specific persons associated with the file), file manager 48 automatically creates directory 40 in memory location 34 and stores the file in memory location 34. In other embodiments, file manager 48 may first request permission from the person (via a display or monitor) to create the directory and store the file in the directory 40. In those instances where the retrieved file is compressed, file manager 48 uncompresses the compressed file to an uncompressed state (file 44) which is stored in directory 40. Manager 48 further creates or establishes interceptor 42. In one embodiment, interceptor 42 is stored in main memory 30 and is loaded into a random access memory. In other embodiments, correctly for you and interceptor 42 may be established in other fashions.

[0018] Figure 2 is a flow diagram illustrating a method 100 of accessing files using file management system 22 according to an example embodiment. As indicated by step 1 10, an open file command 52 (schematically represented in Figure 1) is received by operating system 32. This request 52 may be for the purpose of running the file, for updating the file or accessing data in the file. Request 52 may originate either directly from a person using computing system 20 or may originate from another file or program currently running which requires access to the file 44. The request 52 is made by the operating system to a file system driver that accesses the main memory 30.

[0019] As indicated by step 1 12, interceptor 42 intercepts the open file command or request 52 prior to the command or request 52 being transmitted or forwarded to the file system driver which accesses main memory 30. As schematically indicated by arrow 56 in Figure 1 , interceptor 42 redirects the request 52 to directory 40. As indicated by step 1 14, if the uncompressed file 44 is contained in directory 40, file 44 is accessed while in directory 40 of alternative memory location 34. During such access, updated

uncompressed file 44 may be run or updated. In other words, file 44 is run or accessed just as if file 44 had alternatively been stored in an uncompressed state in main memory 30.

[0020] As indicated by step 1 16, if the file 44 is not contained in the alternative memory location 34 or directory 40, the open file request 52 is forwarded or transmitted to the file system driver which accesses main memory 30. At this point, the open file request 52 is handled as if interceptor 42 was not present. As indicated by step 1 1 8. if the uncompressed file is in main memory 30, the file in main memory 30 is accessed or run. In embodiments where the file is in a compressed state in main memory 30, the file is first uncompressed before such access or execution. As indicated by step 120, if the file is not in main memory 30, the operating system 32 may search for a compressed or uncompressed version of the file elsewhere. Alternatively, a file not found message may be presented to the user who made the request or to the file or program from which the request originated.

[0021] Figures 3-5 illustrate the establishment of file management system 22 in computing system 20 according to one example embodiment. Figure 3 schematically illustrates computing system 20. Figure 4 is a flow diagram of a method 1 30 establishing file management system 22 in the state shown in Figure 3. As indicated by step 132, file manager 48 of file management system 22 is installed as an executable in a startup environment of operating system 32.

[0022] As indicated by step 134, a compressed file (CF) is obtained. The CF may be obtained by a download from the Internet or a network source or may be obtained from a portable memory device storing the CF 58. As indicated by step 1 36. the CF 58 is stored in the alternative memory location 34. In other embodiments, the CF 58 may be stored in main memory 30 or another memory location until a request to access the CF 58 is made.

[0023] Figures 5 illustrates the further establishment of file management system 22 according to an example embodiment. Figure 5 is a flow diagram of a method 150 establishing file management system 22 in the state shown in Figure 1. As indicated by step 152, in response to receiving a request to access the compressed file, file manager 48 creates directory 40, an overlay file system for file 44, in alternative memory location 34. File manager 48 further creates interceptor 42. In one embodiment, interceptor 42 is stored in main memory 30 and loaded into a random access memory.

[0024] As indicated by step 154, file manager 48 uncompresses the compressed file (CF) 58 previously stored in the alternative media location 34 (shown in Figure 3). The uncompressed file 44 is stored in directory 40 as shown in Figure 1. At this point in time, the uncompressed file 44 is available for access in response to an open file or open file command or request 52 as discussed above with respect to Figures 1 and 2. In instances where the retrieved file is not compressed, the decompressing step may be omitted.

[0025] Overall, because the compressed file, which may have been stored in the main memory 30. is uncompressed into the overlay file system or directory created in the alternative memory location 34, the uncompressed file does not occupy memory space or resources of main memory 30. Because requests for accessing the uncompressed file are intercepted and redirected to the alternative memory location, the uncompressed file in alternative memory location 34 may be quickly accessed and run or updated without substantially impairing run- time performance. In embodiments where the alternative memory location is a random access memory or other temporary storage location, such as a tmpfs in LINUX, the file is automatically removed upon shut down of the computer system without storage in main memory 30. In other embodiments, changes made to the file while the file is accessed in the overlay file system or directory may be stored (in a compressed or uncompressed state) in the main memory for later retrieval after shut down of the computer and for later reinsertion into a subsequently created overlay file system on the alternative memory location 34.

[0026] Although the present disclosure has been described with reference to example embodiments, workers skilled in the art will recognize that changes may be made in form and detail without departing from the spirit and scope of the claimed subject matter. For example, although different example embodiments may have been described as including one or more features providing one or more benefits, it is contemplated that the described features may be interchanged with one another or alternatively be combined with one another in the described example embodiments or in other alternative embodiments. Because the technology of the present disclosure is relatively complex, not all changes in the technology are foreseeable. The present disclosure described with reference to the example embodiments and set forth in the following claims is manifestly intended to be as broad as possible. For example, unless specifically otherwise noted, the claims reciting a single particular element also encompass a plurality of such particular elements.