The assignee for this patent application is
Reporters obtained the following quote from the background information supplied by the inventors: "Information stored by applications may be viewed as two types, namely, application data and cached data. Application data is data that an application, or its users, depends on for normal operation. Examples of application data may include bank account information stored by a bank application, or a document saved by a word processing application. Application data may be regarded as requiring '100% storage reliability', because application data that is written to a storage device must always be retrievable.
"Unlike application data, cached data is data that the application does not depend on for normal operation, but that is stored in order to possibly benefit from for purposes of accelerating application operation. Specifically, a cache is a temporary storage area where frequently used data can be stored for rapid access. This data is referred to as cached data. Once the data is stored in the cache, future use by an application can be made by accessing the cached copy rather than re-fetching or re-computing the original data, so that the average access time is shorter. An example of cached data may be pages stored by a Web browser after the pages were viewed, just in case the user wants to view the pages again. In this example, if the user wants to view the pages again, but the cached copies of the pages which were written to the cache are no longer found, the browser will maintain its normal mode of operation, by bringing that information from the web site itself
"FIG. 1 is a block diagram illustrating a basic prior art file system. For exemplary purposes, FIG. 1 shows that there are multiple applications, illustrated as application blocks 101, 102, and 103, that wish to manipulate files (store, write, read, delete, or other function calls). The applications 101, 102, 103, call on a common, operating system level file system application programming interface (API) 104 that is capable of implementing the manipulation commands. The file system API 104 is implemented by a file system driver 105, which uses smaller blocks of data as the basic building blocks of the files. These blocks of data, are manipulated by a block storage handler and device driver 106. It is noted that the file system API 104, file system driver 105, and the block storage handler and device driver 106 are each provided by an operating system. The actual data is stored on a physical block storage device 107, which may be a hard disk, flash memory, solid state disk, or a different storage device.
"As is known by those having ordinary skill in the art, for each memory block, the block storage handler and device driver maintain data that describes the memory block. This information about the block may contain the address of the memory block, size, or other characteristics of the memory block. As is also known, a file system typically has two types of blocks, namely, 'used,' which are blocks that currently contain data which is to be kept, and 'free,' which are blocks that may be used by the file system to store data in the future. A memory block typically has metadata associated with it, where the metadata that may include any type of information related to the block that is useful for the operating system.
"FIG. 2 is a schematic diagram illustrating a prior art block storage device 110. As shown by FIG. 2, the block storage device 110 has blocks that are classified as either 'free' or 'used.'
"Unfortunately, file systems today treat 'reliable data' (application data) in the same way that the 'non-reliable data' (cached data) is treated. Specifically, both application data and cached data are stored into 'free' memory blocks, after which the block is categorized as 'used.' This brings about a reality where applications are careful about how much cached data is saved, so that enough room is left on a storage device for the application data. The result is lower performance for the overall system than may theoretically be achieved.
"Thus, a heretofore unaddressed need exists in the industry to address the aforementioned deficiencies and inadequacies."
In addition to obtaining background information on this patent application, VerticalNews editors also obtained the inventors' summary information for this patent application: "Embodiments of the present invention provide a system and method for increasing cache size. Briefly described, in architecture, one embodiment of the system, among others, can be implemented as follows. The system contains a memory and a processor, wherein the processor is configured by the memory to perform the steps of: categorizing storage blocks within the storage device within a first category of storage blocks if the storage blocks are available to the system for storing data when needed; categorizing storage blocks within the storage device within a second category of storage blocks if the storage blocks contain application data therein; and categorizing storage blocks within the storage device within a third category of storage blocks if the storage blocks are storing cached data and are available for storing application data if no first category of storage blocks are available to the system.
"Other systems, methods, and features of the present invention will be or become apparent to one with skill in the art upon examination of the following drawings and detailed description. It is intended that all such additional systems, methods, and features be included within this description, be within the scope of the present invention, and be protected by the accompanying claims.
BRIEF DESCRIPTION OF THE DRAWINGS
"Many aspects of the invention can be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present invention. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views.
"FIG. 1 is a block diagram illustrating a basic prior art file system.
"FIG. 2 is a schematic diagram illustrating a prior art block storage device.
"FIG. 3 is a block diagram illustrating a general-purpose computer architecture that can implement the caching system of the present invention.
"FIG. 4 is a block diagram illustrating certain elements of the operating system of FIG. 3.
"FIG. 5 is a block diagram illustrating a non-deterministic file system in accordance with the present caching system.
"FIG. 6 is a schematic diagram illustrating the block storage device of the computer.
"FIG. 7 is a flowchart illustrating high level functions performed by the caching system in receiving and handling deterministic and non-deterministic commands, in accordance with the first exemplary embodiment of the invention.
"FIG. 8 is a flowchart specifically illustrating how the block manipulation system handles an allocation of a new block within the block storage device.
"FIG. 9 is a flowchart illustrating how the block manipulating system writes data to an existing block within the block storage.
"FIG. 10 is a flowchart illustrating how the block manipulating system reads data from an existing block within the block storage.
"FIG. 11 is a flowchart illustrating how the block manipulating system releases a block of data from the block storage device.
"FIG. 12 is a block diagram illustrating a file system, in accordance with a second exemplary embodiment of the invention.
"FIG. 13A is an example of a table located within a storage device prior to updating.
"FIG. 13B is an example of a table located within a storage device after updating.
"FIG. 14 is a flowchart illustrating implementation of a listener module.
"FIG. 15 is a flowchart illustrating actions performed by the system of FIG. 12 when a new non-deterministic file is created.
"FIG. 16A is a flowchart illustrating actions performed by the system of FIG. 12 when writing to an existing file.
"FIG. 16B is a flowchart further illustrating the step of determining whether the file being written to is still valid.
"FIG. 17A is a flowchart illustrating actions taken by the system when a non-deterministic 'file read' command is received.
"FIG. 17B is a flowchart further illustrating the step of determining if a block is still valid.
"FIG. 18 is a flowchart illustrating the process of releasing a file (deleting a file) from the non-deterministic file system."
For more information, see this patent application: Shribman, Derry; Vilenski,
Keywords for this news article include:
Our reports deliver fact-based news of research and discoveries from around the world. Copyright 2014, NewsRx LLC
Most Popular Stories
- 5 Notable Hispanic Technology Executives
- Top Hispanic Tech Companies Push for the Top
- Russia, Crimea Discuss Referendum
- Visa, MasterCard Team Up to Focus on Payment Security
- China Urges Malaysia Flight Emergency Response
- Sunday Starts Daylight Saving Time
- Three Americans on Missing Malaysia Airlines Plane: State Department
- Samsung Launches Milk Music
- For Obama, a Last Stab at Improving Ties with Capitol Hill
- Taco Bell Rings Up Breakfast Menu