Method and apparatus for selective data caching implemented with noncacheable and cacheable data for improved cache performance in a computer networking system
First Claim
1. A method for selectively caching data in a computer network, comprising steps of:
- indicating particular data as exempt from being cached when said particular data has a specified characteristic, said specified characteristic being something other than main memory address location of said particular data;
receiving a request from an application program running on a first computer system for a set of data, said request indicating whether said set of data is exempt;
determining whether said set of data resides within a random access memory of the first computer system;
in response to a determination that said set of data resides within said random access memory;
retrieving said set of data from said random access memory; and
providing said set of data to said application program;
in response to a determination that said set of data does not reside within said random access memory;
retrieving said set of data from a mass storage device residing apart from said first computer system;
determining from said request whether said set of data is exempt;
in response to a determination that said set of data is not exempt;
storing said set of data from said mass storage device into said random access memory of said first computer system; and
providing said set of data to said application program running on the first computer system;
in response to a determination that said set of data is exempt;
providing said set of data to said application program running on the first computer system without storing said set of data into the random access memory;
if a second application running on a second computer system coupled to the computer network requests the set of data;
providing the set of data to the second application program and storing the set of data in a second random access memory of the second computer system if the set of data is not exempt, otherwise not storing the set of data into the second random access memory of the second computer system if the set of data is exempt;
wherein selecting the data that is to be exempt solely depend on an individual object basis, wherein the individual object includes choices of a page, a record, a field and a table; and
said data which is designated as being exempt from being cached before it is retrieved is to be used only one time within a given time span, and said request by said application program indicate exempt data designation in a single operation.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for selectively caching data in a computer network. Initially, data objects which are anticipated as being accessed only once or seldomly accessed are designated as being exempt from being cached. When a read request is generated, the cache controller reads the requested data object from the cache memory if it currently resides in the cache memory. However, if the requested data object cannot be found in the cache memory, it is read from a mass storage device. Thereupon, the cache controller determines whether the requested data object is to be cached or is exempt from being cached. If the data object is exempt from being cached, it is loaded directly into a local memory and is not stored in the cache. This provides improved cache utilization because only objects that are used multiple times are entered in the cache. Furthermore, processing overhead is minimized by reducing unnecessary cache insertion and purging operations. In addition, I/O operations are minimized by increasing the likelihood that hot objects are retained in the cache longer at the expense of infrequently used objects.
180 Citations
19 Claims
-
1. A method for selectively caching data in a computer network, comprising steps of:
-
indicating particular data as exempt from being cached when said particular data has a specified characteristic, said specified characteristic being something other than main memory address location of said particular data; receiving a request from an application program running on a first computer system for a set of data, said request indicating whether said set of data is exempt; determining whether said set of data resides within a random access memory of the first computer system; in response to a determination that said set of data resides within said random access memory; retrieving said set of data from said random access memory; and providing said set of data to said application program; in response to a determination that said set of data does not reside within said random access memory; retrieving said set of data from a mass storage device residing apart from said first computer system; determining from said request whether said set of data is exempt; in response to a determination that said set of data is not exempt; storing said set of data from said mass storage device into said random access memory of said first computer system; and providing said set of data to said application program running on the first computer system; in response to a determination that said set of data is exempt; providing said set of data to said application program running on the first computer system without storing said set of data into the random access memory; if a second application running on a second computer system coupled to the computer network requests the set of data; providing the set of data to the second application program and storing the set of data in a second random access memory of the second computer system if the set of data is not exempt, otherwise not storing the set of data into the second random access memory of the second computer system if the set of data is exempt; wherein selecting the data that is to be exempt solely depend on an individual object basis, wherein the individual object includes choices of a page, a record, a field and a table; and said data which is designated as being exempt from being cached before it is retrieved is to be used only one time within a given time span, and said request by said application program indicate exempt data designation in a single operation. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. In a computer network, an apparatus for selectively caching data, comprising:
-
a first client computer coupled to the computer network for running an application program, wherein the first client computer includes a first local memory; a second client computer coupled to the computer network for running the application program, wherein the second client computer includes a second local memory; a mass storage device coupled to the computer network for storing data; and
a server computer coupled to the first client computer, the second client computer and the mass storage device for handling read requests generated by the application program running on the first client computer and the second client computer, wherein the server computer is comprised of;a cache memory for temporarily storing data; and a cache controller coupled to the cache memory for controlling the cache memory, wherein requested data not currently residing in the cache memory is read from the mass storage device and selectively; (a) stored in the cache memory of the server computer if said request for data indicates the data is not exempt from being cached; (b) not stored in the cache memory of the server computer and stored into the first local memory of the first client computer if said request for data indicates the data is exempt from being cached; and (c) not stored in the cache memory of the server computer and stored into the second local memory of the second client computer if said request for data indicates the data is exempt from being cached; wherein selecting the data that is to be exempt solely depend on an individual object basis, wherein the individual object includes choices of a page, a record, a field and a table; and said data which is designated as being exempt from being cached before it is retrieved is to be used only one time within a given time span, and said request by said application program indicates exempt data designation in a single operation. - View Dependent Claims (9, 10, 11, 12)
-
-
13. In a cache controller for controlling a cache memory in a computer network, a method for selectively caching data objects in the computer network, comprising steps of:
-
detecting a first read request generated by an application program running on a first client computer coupled to the computer network, wherein the first client computer includes a first local memory; detecting a second read request generated by the application program running on a second client computer coupled to the computer network, wherein the second client computer includes a second local memory, said first and said second read request indicating whether data object sought is exempt from being cached based on a predetermined data characteristic other than main memory address location of said particular data object; determining whether a requested data object is currently stored within the cache memory contained in a server computer coupled to the computer network; retrieving the requested data object from a cache memory of the server computer if the requested data object is currently stored within the cache memory; if the requested data object is not currently stored in the cache memory of the server computer; accepting the requested data read from a mass storage device coupled to the computer network; determining whether the requested data object is to be cached in the cache memory of the server computer based on said predetermined data characteristic of the data object; caching the requested data object in the cache memory of the server computer from said mass storage device if the requested data object has been designated to be cached; and if the requested data object has been designated not to be cached; (a) not caching the requested data object in the cache memory of the server computer; and (b) storing the requested data object in the first local memory of the first client computer or the second local memory of the second client; wherein selecting the data object that is to be exempt solely depend on an individual object basis, wherein the individual object includes choices of a page, a record, a field and a table; and said data object which is designated as being exempt from being cached before it is retrieved is to be used only one time within a given time span, and said request by said application program indicates exempt-data-object designation in a single operation. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
Specification