CACHE EXPIRY IN MULTIPLE-SERVER ENVIRONMENT
First Claim
1. In a system including a plurality of processes interacting with a data store, a method for propagating a cache expiry indication signifying a change to an item in the data store, the method comprising:
- receiving, from a first process, an indication that at least one item in the data store has been changed by the first process;
storing a cache expiry indication identifying the changed data item; and
responsive to receiving a subsequent request;
transmitting the stored cache expiry indication to a second process; and
transmitting the subsequent request to the second process.
5 Assignments
0 Petitions
Accused Products
Abstract
In a multiple-server or multiple-process environment where each server has a local cache, data in one cache may become obsolete because of changes to a data store performed by another server or entity. The present invention provides techniques for efficiently notifying servers as to cache expiry indications that indicate that their local cache data is out of date and should not be used. A cache expiry manager receives cache expiry indications from servers, and sends cache expiry indications to servers in conjunction with client requests or in response to certain trigger events. The need for broadcasting cache expiry notifications to all servers is eliminated, as servers can be informed of cache expiry indications the next time a server is being given a client request that relates to the cache in question. Extraneous and duplicative cache expiry notifications are reduced or eliminated.
82 Citations
91 Claims
-
1. In a system including a plurality of processes interacting with a data store, a method for propagating a cache expiry indication signifying a change to an item in the data store, the method comprising:
-
receiving, from a first process, an indication that at least one item in the data store has been changed by the first process; storing a cache expiry indication identifying the changed data item; and responsive to receiving a subsequent request; transmitting the stored cache expiry indication to a second process; and transmitting the subsequent request to the second process. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. In a system including a plurality of processes interacting with a data store, a method for propagating a cache expiry indication signifying a change to an item in the data store, the method comprising:
-
monitoring the data store for changes; detecting a change in the data store; storing a cache expiry indication identifying the changed data item; and responsive to receiving a subsequent request, transmitting the stored cache expiry indication.
-
-
20. In a system including a plurality of processes interacting with a data store, a method for propagating a cache expiry indication signifying a change to an item in the data store, the method comprising:
-
receiving, from a first process, an indication that at least one item in the data store has been changed by the first process; storing a cache expiry indication identifying the changed data item; and responsive to detecting a trigger event, transmitting the stored cache expiry indication to a second process; wherein the trigger event comprises at least one selected from the group consisting of; a subsequent request; a determination that a predefined time period has elapsed since the cache expiry indication was stored; a determination that a predefined number of cache expiry indications have been stored; and a determination that a predefined amount of cache expiry indication storage has been used. - View Dependent Claims (21)
-
-
22. In a system including a plurality of processes interacting with a data store, a method for propagating a cache expiry indication signifying a change to an item in the data store, the method comprising:
-
receiving, from a first process, an indication that at least one item in a data store has been changed by the first process; determining whether to broadcast a cache expiry indication identifying the changed data item; responsive to a determination that a cache expiry indication should be broadcast, broadcasting a cache expiry indication identifying the changed data item; responsive to a determination that a cache expiry indication should not be broadcast; storing the cache expiry indication identifying the changed data item; and responsive to receiving a subsequent request; transmitting the cache expiry indication to the second process; and transmitting the subsequent request to a second process. - View Dependent Claims (23, 24)
-
-
25. In a system including a plurality of processes interacting with a data store, a method for propagating a cache expiry indication signifying a change to an item in the data store, the method comprising:
-
receiving, from a first process, an indication that at least one item in the data store has been changed by the first process; storing a cache expiry indication identifying the changed data item; and responsive to receiving a subsequent request; selecting a second process to handle the subsequent request; determining whether the second process has a need for the changed data item; responsive to the second process having a need for the changed data item; transmitting the stored cache expiry indication to the second process; and transmitting the subsequent request to the second process; and responsive to the second process not having a need for the changed data item; transmitting the subsequent request to the second process.
-
-
26. In a system including a plurality of processes interacting with a data store, a method for propagating a cache expiry indication signifying a change to an item in the data store, the method comprising:
-
responsive to receiving a first request; routing the first request to a first process; the first process updating at least one item in the data store; receiving, at a cache expiry manager, an indication from the first process that at least one item in the data store has been updated; storing a cache expiry indication identifying the changed data item; and transmitting a response to the first request; and responsive to receiving a second request; transmitting the stored cache expiry indication to a second process; and routing the second request to the second process having a cache; receiving a response to the second request from the second process; and transmitting the received response. - View Dependent Claims (27, 28, 29, 30, 31, 32)
-
-
33. In a system including a plurality of processes interacting with a data store, a computer program product for propagating a cache expiry indication signifying a change to an item in the data store, the computer program product comprising:
-
a computer-readable medium; and computer program code, encoded on the medium, for; receiving, from a first process, an indication that at least one item in the data store has been changed by the first process; storing a cache expiry indication identifying the changed data item; and responsive to receiving a subsequent request; transmitting the stored cache expiry indication to a second process; and transmitting the subsequent request to the second process. - View Dependent Claims (34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50)
-
-
51. In a system including a plurality of processes interacting with a data store, a computer program product for propagating a cache expiry indication signifying a change to an item in the data store, the computer program product comprising:
-
a computer-readable medium; and computer program code, encoded on the medium, for; monitoring the data store for changes; detecting a change in the data store; storing a cache expiry indication identifying the changed data item; and responsive to receiving a subsequent request, transmitting the stored cache expiry indication.
-
-
52. In a system including a plurality of processes interacting with a data store, a computer program product for propagating a cache expiry indication signifying a change to an item in the data store, the computer program product comprising:
-
a computer-readable medium; and computer program code, encoded on the medium, for; receiving, from a first process, an indication that at least one item in the data store has been changed by the first process; storing a cache expiry indication identifying the changed data item; and responsive to detecting a trigger event, transmitting the stored cache expiry indication to a second process; wherein the trigger event comprises at least one selected from the group consisting of; a subsequent request; a determination that a predefined time period has elapsed since the cache expiry indication was stored; a determination that a predefined number of cache expiry indications have been stored; and a determination that a predefined amount of cache expiry indication storage has been used. - View Dependent Claims (53)
-
-
54. In a system including a plurality of processes interacting with a data store, a computer program product for propagating a cache expiry indication signifying a change to an item in the data store, the computer program product comprising:
-
a computer-readable medium; and computer program code, encoded on the medium, for; receiving, from a first process, an indication that at least one item in a data store has been changed by the first process; determining whether to broadcast a cache expiry indication identifying the changed data item; responsive to a determination that a cache expiry indication should be broadcast, broadcasting a cache expiry indication identifying the changed data item; responsive to a determination that a cache expiry indication should not be broadcast; storing the cache expiry indication identifying the changed data item; and responsive to receiving a subsequent request; transmitting the cache expiry indication to the second process; and transmitting the subsequent request to a second process. - View Dependent Claims (55, 56)
-
-
57. In a system including a plurality of processes interacting with a data store, a computer program product for propagating a cache expiry indication signifying a change to an item in the data store, the computer program product comprising:
-
a computer-readable medium; and computer program code, encoded on the medium, for; receiving, from a first process, an indication that at least one item in the data store has been changed by the first process; storing a cache expiry indication identifying the changed data item; and responsive to receiving a subsequent request; selecting a second process to handle the subsequent request; determining whether the second process has a need for the changed data item; responsive to the second process having a need for the changed data item; transmitting the stored cache expiry indication to the second process; and transmitting the subsequent request to the second process; and responsive to the second process not having a need for the changed data item; transmitting the subsequent request to the second process.
-
-
58. In a system including a plurality of processes interacting with a data store, a computer program product for propagating a cache expiry indication signifying a change to an item in the data store, the computer program product comprising:
-
a computer-readable medium; and computer program code, encoded on the medium, for; responsive to receiving a first request; routing the first request to a first process; the first process updating at least one item in the data store; receiving, at a cache expiry manager, an indication from the first process that at least one item in the data store has been updated; storing a cache expiry indication identifying the changed data item; and transmitting a response to the first request; and responsive to receiving a second request; transmitting the stored cache expiry indication to the second process; and routing the second request to a second process having a cache; receiving a response to the second request from the second process; and transmitting a response to the second request. - View Dependent Claims (59, 60, 61)
-
-
62. A system for propagating a cache expiry indication signifying a change to an item in a data store, the system comprising:
-
a data store, for storing data items used for servicing requests; a first process, for receiving and processing requests using data items obtained from the data store; a second process, for receiving and processing requests using data items obtained from the data store; a first cache associated with the first process, for locally storing data items obtained from the data store; a second cache associated with the second process, for locally storing data items obtained from the data store; and a cache expiry manager, for; responsive to receiving an indication that at least one item in the data store has been changed by the first process, storing a cache expiry indication identifying the changed data item; and responsive to receiving a subsequent request, transmitting the stored cache expiry indication and the subsequent request to the second process. - View Dependent Claims (63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78)
-
-
79. A system for propagating a cache expiry indication signifying a change to an item in a data store, the system comprising:
-
a data store, for storing data items used for servicing requests; a process, for receiving and processing requests using data items obtained from the data store; a cache associated with the process, for locally storing data items obtained from the data store; and a data store monitor, for monitoring the data store for changes; a cache expiry manager, for; responsive to the data store monitor detecting a change to at least one item in the data store, storing a cache expiry indication identifying the changed data item; and responsive to receiving a subsequent request from the process, transmitting the stored cache expiry indication.
-
-
80. A system for propagating a cache expiry indication signifying a change to an item in a data store, the system comprising:
-
a data store, for storing data items used for servicing requests; a first process, for receiving and processing requests using data items obtained from the data store; a second process, for receiving and processing requests using data items obtained from the data store; a first cache associated with the first process, for locally storing data items obtained from the data store; a second cache associated with the second process, for locally storing data items obtained from the data store; and a cache expiry manager, for; responsive to receiving an indication that at least one item in the data store has been changed by the first process, storing a cache expiry indication identifying the changed data item; and responsive to detecting a trigger event, transmitting the stored cache expiry indication to a second process; wherein the trigger event comprises at least one selected from the group consisting of; a subsequent request; a determination that a predefined time period has elapsed since the cache expiry indication was stored; a determination that a predefined number of cache expiry indications have been stored; and a determination that a predefined amount of cache expiry indication storage has been used. - View Dependent Claims (81)
-
-
82. A system for propagating a cache expiry indication signifying a change to an item in the data store, the system comprising:
-
a data store, for storing data items used for servicing requests; a first process, for receiving and processing requests using data items obtained from the data store; a second process, for receiving and processing requests using data items obtained from the data store; a first cache associated with the first process, for locally storing data items obtained from the data store; a second cache associated with the second process, for locally storing data items obtained from the data store; and a cache expiry manager, for; responsive to receiving an indication that at least one item in the data store has been changed by the first process, determining whether to broadcast a cache expiry indication identifying the changed data item; responsive to a determination that a cache expiry indication should be broadcast, broadcasting a cache expiry indication identifying the changed data item; and responsive to a determination that a cache expiry indication should not be broadcast; storing the cache expiry indication identifying the changed data item; and responsive to receiving a subsequent request, transmitting the stored cache expiry indication and the subsequent request to the second process. - View Dependent Claims (83, 84)
-
-
85. A system for propagating a cache expiry indication signifying a change to an item in the data store, the system comprising:
-
a data store, for storing data items used for servicing requests; a first process, for receiving and processing requests using data items obtained from the data store; a second process, for receiving and processing requests using data items obtained from the data store; a first cache associated with the first process, for locally storing data items obtained from the data store; a second cache associated with the second process, for locally storing data items obtained from the data store; and a cache expiry manager, for; responsive to receiving an indication that at least one item in the data store has been changed by the first process, storing a cache expiry indication identifying the changed data item; and responsive to receiving a subsequent request; determining whether the second process has a need for the changed data item; responsive to the second process having a need for the changed data item; transmitting the stored cache expiry indication and the subsequent request to the second process; and responsive to the second process not having a need for the changed data item; transmitting the subsequent request to the second process.
-
-
86. A system for propagating a cache expiry indication signifying a change to an item in the data store, the system comprising:
-
a data store, for storing data items used for servicing requests; a router, for routing requests; a first process, for; receiving a first request from the router; processing the first request using at least one data item obtained from the data store; updating at least one item in the data store; and transmitting an indication that at least one item in the data store has been updated; a first cache associated with the first process, for locally storing data items obtained from the data store; a cache expiry manager, for; receiving the indication from the first process that at least one item in the data store has been updated; storing a cache expiry indication identifying the changed data item; and responsive to the router routing a second request to a second process, transmitting the stored cache expiry indication to the second process; a second process, for; receiving the second request and the stored cache expiry indication; and processing the second request using at least one data item obtained from the data store; and a second cache associated with the second process, for locally storing data items obtained from the data store. - View Dependent Claims (87, 88, 89, 90, 91)
-
Specification