General dependency model for invalidating cache entries
AssigneeMicrosoft Corporation
InventorsAdam Wade Smith, Robert Michael Howard, Patrick Yu-Kwan Ng
Life of this patent
Estimating the term…
Abstract
Systems, methods, and computer products for deriving custom cache dependencies are explained. A framework that includes an extensible cache dependency base class that can be used to derive custom cache dependency classes for invalidating cache entries on some custom condition is disclosed. In some embodiments, a Web page server includes a cache and the framework including the extensible cache dependency base. Methods are disclosed for causing a cache entry to be dependent on a customized cache dependency and for invalidating cache entries based on customized cache dependencies. For example, cache entries can depend on and be purged based on dependencies on database tables and Web services.
Claims30
In a server computer system that provides Web pages to requesting client computer systems, the Web pages potentially including content from locations that are external to the server computer system, the server computer system including a cache that stores portions of cached content previously received from locations external to the server computer system, a method for determining the validity of a cache entry, the validity of which is dependent on a user-customized dependency, the method comprising the following:
- an act of accessing an extensible cache dependency base class from which customized cache dependencies can be derived, the extensible cache dependency base class including a plurality of inheritable cache management methods usable by customized dependencies derived from the extensible case dependency base class to determine the validity of one or more cache entries corresponding to the customized dependencies;
- an act of deriving a customized cache dependency class from the extensible cache dependency base class, the customized cache dependency class inheriting the plurality of inheritable cache management methods from the extensible cache dependency base class, the customized cache dependency class also configured to implement further unique functionality of a customized dependency that extends the plurality of inheritable cache management methods included in the extensible cache dependency base class, the unique functionality including providing a user-customized basis for determining the validity of cache entries associated with the customized cache dependency;
- an act of accessing a portion of cached content that is to be delivered to a client computer system;
- an act of creating a cache entry that associates the customized dependency with the accessed portion of cached content, the customized dependency including the user-customized basis for determining cache entry validity;
- an act of determining that the cache entry is valid according to the user-customized basis for determining cache entry validity;
- and
- an act of inserting the determined valid cache entry into cache for delivery to the client computer system.
In a server computer system that provides Web pages to requesting client computer systems, the Web pages potentially including content from locations that are external to the server computer system, the server computer system including a cache that stores portions of cached content previously received from locations external to the server computer system, a method for purging an invalid cache entry, the method comprising the following:
- an act of monitoring one or more custom dependency conditions associated with a user-customized basis for determining validity of cache entries, the user-customized basis for determining validity of cache entries being included in an instance of a customized cache dependency that extends a plurality of cache management methods inherited from an extensible cache dependency base class to implement unique functionality, the customized cache dependency corresponding to a customized cache dependency class that was derived from the extensible cache dependency base class, wherein the customized cache dependency includes the user-customized basis for determining cache entry validity;
- an act of determining if the one or more custom dependency conditions have been satisfied;
- an act of receiving an indication that the one or more custom dependency conditions have been satisfied;
- an act of determining that the cache entry associated with the custom dependency conditions is invalid according to the user-customized basis for determining cache entry validity;
- and
- an act of purging the cache entry at the server computer system in response to determining that the cache entry is invalid.
A computer program product for use in a server computer system that provides Web pages to requesting client computer systems, the Web pages potentially including content from locations that are external to the server computer system, the server computer system including a cache that stores portions of cached content previously received from locations external to the server computer system, the computer program product for implementing a method for determining the validity of a cache entry, the validity of which is dependent on a user-customized dependency, the computer program product comprising one or more computer-readable storage media having stored thereon computer executable instructions that, when executed by a processor, cause the server computer system to perform the following:
- access an extensible cache dependency base class from which customized cache dependencies can be derived, the extensible cache dependency base class including a plurality of inheritable cache management methods usable by customized dependencies derived from the extensible case dependency base class to determine the validity of one or more cache entries corresponding to the customized dependencies;
- derive a customized cache dependency class from the extensible cache dependency base class, the customized cache dependency class inheriting the plurality of inheritable cache management methods from the extensible cache dependency base class, the customized cache dependency class also configured to implement further unique functionality of a customized dependency that extends the plurality of inheritable cache management methods included in the extensible cache dependency base class, the unique functionality including providing a user-customized basis for determining the validity of cache entries associated with the customized cache dependency;
- access a portion of cached content that is to be delivered to a client computer system;
- create a cache entry that associates the customized dependency with the accessed portion of cached content, the customized dependency including the user-customized basis for determining cache entry validity;
- determine that the cache entry is valid according to the user-customized basis for determining cache entry validity;
- and
- insert the determined valid cache entry into cache for delivery to the client computer system.
A computer program product for use in a server computer system that provides Web pages to requesting client computer systems, the Web pages potentially including content from locations that are external to the server computer system, the server computer system including a cache that stores portions of cached content previously received from locations external to the server computer system, the computer program product for implementing a method for purging an invalid cache entry, the computer program product comprising one or more computer-readable storage media having stored thereon computer executable instructions that, when executed by a processor, cause the server computer system to perform the following:
- monitor one or more custom dependency conditions associated with a user-customized basis for determining validity of cache entries, the user-customized basis for determining validity of cache entries being included in an instance of a customized cache dependency that extends a plurality of cache management methods inherited from an extensible cache dependency base class to implement unique functionality, the customized cache dependency corresponding to a customized cache dependency class that was derived from the extensible cache dependency base class, wherein the customized cache dependency includes the user-customized basis for determining cache entry validity;
- determine if the one or more custom dependency conditions have been satisfied;
- receive an indication that the one or more custom dependency conditions have been satisfied;
- determine that the cache entry associated with the custom dependency conditions is invalid according to the user-customized basis for determining cache entry validity;
- and
- purge the cache entry at the server computer system in response to determining that the cache entry is in valid.
In a server computer system that provides Web pages to requesting client computer systems, the Web pages potentially including content from locations that are external to the server computer system, the server computer system including a cache that stores portions of cached content previously received from locations external to the server computer system, a method for determining the validity of a cache entry, the validity of which is dependent on a user-customized dependency, the method comprising the following:
- an act of accessing an extensible cache dependency base class from which customized cache dependencies can be derived, the extensible cache dependency base class including a plurality of inheritable cache management methods usable by customized dependencies derived from the extensible case dependency base class to determine the validity of one or more cache entries corresponding to the customized dependencies;
- an act of deriving a customized cache dependency class from the extensible cache dependency base class, the customized cache dependency class inheriting the plurality of inheritable cache management methods from the extensible cache dependency base class, the customized cache dependency class also configured to implement further unique functionality of a customized dependency that extends the plurality of inheritable cache management methods included in the extensible cache dependency base class, the unique functionality including providing a user-customized basis for determining the validity of cache entries associated with the customized cache dependency, the user-customized basis including a selectable set of elements on which validity of the cache entries can depend;
- an act of accessing a portion of cached content that is to be delivered to a client computer system;
- an act of creating a cache entry that associates the customized dependency with the accessed portion of cached content, the customized dependency including the user-customized basis for determining cache entry validity;
- an act of determining that the cache entry is valid according to the user-customized basis for determining cache entry validity;
- and
- an act of inserting the determined valid cache entry into cache for delivery to the client computer system.
Dependencies are inferred from the claim text.