Systems and methods for caching with file-level granularity
First Claim
1. A method for improved access to data files comprising the steps:
- (a) designating a portion of volatile memory to be used as a cache memory;
(b) receiving a designation of a file as memory resident;
(c) maintaining at least one of a data block and an index block corresponding to said designated file in said cache memory regardless of its age;
(d) receiving an indicator corresponding to a maximum size of said cache memory; and
(e) limiting the size of said cache memory to said maximum size indicated by removing a maintained data block from said cache memory.
20 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for implementing improved disk caching in a programmed computer. Improved disk caching is achieved through apparatus and methods that permit the designation of files or types of files as memory-resident, transient, or normal (i.e., neither memory-resident or transient). The disk blocks associated with a memory-resident file are loaded immediately into cache memory in whole or in part, or are loaded on a block-by-block basis as they are accessed. The blocks of a memory-resident file remain in cache until the file is designated not memory resident, whereupon the blocks become purgeable, or until cache size limits force the removal of blocks from the cache. The blocks are purged immediately in whole or in part, or displaced gradually as blocks from other memory-resident files displace them. The blocks of a transient file are maintained in cache for a shorter duration before removal, freeing resources to cache other blocks.
188 Citations
22 Claims
-
1. A method for improved access to data files comprising the steps:
-
(a) designating a portion of volatile memory to be used as a cache memory;
(b) receiving a designation of a file as memory resident;
(c) maintaining at least one of a data block and an index block corresponding to said designated file in said cache memory regardless of its age;
(d) receiving an indicator corresponding to a maximum size of said cache memory; and
(e) limiting the size of said cache memory to said maximum size indicated by removing a maintained data block from said cache memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
(c-a) accessing at least one of a disk block and an index block associated with a designated file in a non-volatile memory; and
(c-b) storing the contents of said accessed block in said cache memory.
-
-
6. The method of claim 1 wherein said volatile memory is random-access memory (RAM).
-
7. The method of claim 1 wherein said cache memory is a sub-cache memory contained within a cache memory.
-
8. The method of claim 1 further comprising the step of (d) modifying the size of the cache memory.
-
9. The method of claim 8 wherein step (d) is performed by the user.
-
10. The method of claim 8 wherein step (d) is performed without user interaction.
-
11. The method of claim 1 further comprising the steps of:
-
(d) receiving a designation of a data file as not memory-resident; and
(e) processing at least one of a data block and an index block corresponding to said designated file using default caching methods.
-
-
12. A method for improved access to data files comprising the steps:
-
(a) designating a portion of volatile memory to be used as a cache memory;
(b) receiving a designation of a file as transient;
(c) maintaining at least one of a data block and an index block corresponding to said designated file in said cache memory for a nominal duration; and
(d) removing said at least one of said data block and said index block corresponding to said designated file from said cache memory immediately after said at least one of said data block and said index block is referenced. - View Dependent Claims (13, 14, 15, 16, 17, 18)
delaying writing said at least one of a data block and an index block corresponding to said designated file to a non-volatile memory until the passage of said nominal duration; - and step (d) comprises
removing said at least one of a data block and an index block corresponding to said designated file from said cache memory immediately after the completion of foregoing step.
-
-
14. The method of claim 12 wherein step (b) occurs while an application is accessing said data filed.
-
15. The method of claim 12 wherein step (b) is performed by a user.
-
16. The method of claim 12 wherein step (b) is performed without user interaction.
-
17. The method of claim 12 wherein said volatile memory is random-access memory (RAM).
-
18. The method of claim 12 further comprising the steps of:
-
(e) receiving a designation of a data file as not transient; and
(f) processing at least one of a data block and an index block corresponding to said designated file using default caching methods.
-
-
19. A programmed computer with an improved cache system, comprising:
-
a non-volatile memory comprising a file, said file comprising;
a disk block; and
an attribute field having a value equal to at least one of transient and memory-resident; and
a volatile memory comprising;
a cache comprising a data block, said data block corresponding to a file whose attribute field has a value equal to memory-resident; and
a queue comprising a data structure, said data structure corresponding to a data block stored in said cache, wherein said data structure may only be removed from said queue in satisfaction of size constraints on said cache. - View Dependent Claims (20, 21, 22)
a first queue comprising a data structure, said data structure corresponding to a disk block, said disk block corresponding to a file whose attribute field has a value equal to memory-resident; and
a second queue comprising a data structure, said data structure corresponding to a disk block, said disk block corresponding to a file whose attribute field has a value equal to transient.
-
Specification