Determining how changes to underlying data affect cached objects
First Claim
1. In a computer system having one or more caches storing one or more complex objects, a method for determining how changes to underlying data can affect values of one or more complex objects, comprising the steps of:
- identifying at least part of the underlying data, wherein the underlying data may or may not be cachable;
mapping said at least part of the underlying data to one or more of said complex objects having one or more data dependencies on said at least part of the underlying data; and
maintaining an object dependence graph (G) which may change over time and which includes a plurality of graph objects and edges indicating one or more data dependencies between graph objects.
1 Assignment
0 Petitions
Accused Products
Abstract
A determination can be made of how changes to underlying data affect the value of objects. Examples of applications include: caching dynamic Web pages; client-server applications whereby a server sending objects (which are changing all the time) to multiple clients can track which versions are sent to which clients and how obsolete the versions are; and any situation where it is necessary to maintain and uniquely identify several versions of objects, update obsolete objects, quantitatively assess how different two versions of the same object are, and/or maintain consistency among a set of objects. A directed graph, called an object dependence graph, may be used to represent the data dependencies between objects. Another aspect is constructing and maintaining objects to associate changes in remote data with cached objects. If data in a remote data source changes, database change notifications are used to "trigger" a dynamic rebuild of associated objects. Thus, obsolete objects can be dynamically replaced with fresh objects. The objects can be complex objects, such as dynamic Web pages or compound-complex objects, and the data can be underlying data in a database. The update can include either: storing a new version of the object in the cache; or deleting an object from the cache. Caches on multiple servers can also be synchronized with the data in a single common database. Updated information, whether new pages or delete orders, can be broadcast to a set of server nodes, permitting many systems to simultaneously benefit from the advantages of prefetching and providing a high degree of scaleability.
454 Citations
63 Claims
-
1. In a computer system having one or more caches storing one or more complex objects, a method for determining how changes to underlying data can affect values of one or more complex objects, comprising the steps of:
-
identifying at least part of the underlying data, wherein the underlying data may or may not be cachable; mapping said at least part of the underlying data to one or more of said complex objects having one or more data dependencies on said at least part of the underlying data; and maintaining an object dependence graph (G) which may change over time and which includes a plurality of graph objects and edges indicating one or more data dependencies between graph objects. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 62)
-
-
61. In a computer system including one or more caches storing one or more complex objects, and one or more remote data sources storing underlying data which may affect a current value of one or more of said objects, a method comprising the steps of:
-
maintaining an object dependence graph which may change over time and which includes a plurality of graph objects and edges indicating one or more data dependencies between said graph objects, recognizing when at least part of said underlying data has changed; communicating to a cache, one or more of;
information about at least part of said underlying data which has changed; and
information which includes the identity of at least one object whose value has changed as the result of said underlying data which has changed; and
information which allows the identity to be determined of at least one object whose value has changed as the result of said underlying data which has changed; andremoving an object from the cache, or updating a new version of an object in the cache, in response to said communicating step.
-
-
63. In a computer system having one or more caches storing one or more complex objects, a method for determining how changes to underlying data can affect values of one or more complex objects, comprising the steps of:
-
identifying at least part of the underlying data, wherein the underlying data may or may not be cachable; and mapping said at least part of the underlying data to one or more of said complex objects having one or more data dependencies on said at least part of the underlying data, wherein at least some of the objects are Web documents and at least some of the underlying data are part of one or more databases.
-
Specification