Systems and methods for cache coherence protocol
First Claim
1. A method of updating a cache in a clustered server environment, the method comprising:
- receiving a request to write data to a block of a first cache associated with a first server in the clustered server environment, wherein a plurality of servers in the clustered environment have an associated cache;
identifying a second cache storing a copy of the block, wherein the second cache is associated with a second server in the clustered environment;
transmitting a request to update the second cache with the received write data, whereby future requests are able to process the received write data from the second cache; and
upon receiving a subsequent request to write subsequent data, identifying a third cache for invalidating based at least in part on access patterns of the blocks, wherein the third cache is associated with a third server in the clustered environment.
2 Assignments
0 Petitions
Accused Products
Abstract
The present disclosure relates to systems, methods, and computer program products for keeping multiple caches updated, or coherent, on multiple servers when the multiple caches contain independent copies of cached data. Example methods may include receiving a request to write data to a block of a first cache associated with a first server in a clustered server environment. The methods may also include identifying a second cache storing a copy of the block, where the second cache is associated with a second server in the clustered environment. The methods may further include transmitting a request to update the second cache with the received write data, and upon receiving a subsequent request to write subsequent data, identifying a third cache for invalidating based on access patterns of the blocks, where the third cache is associated with a third server in the clustered environment.
-
Citations
20 Claims
-
1. A method of updating a cache in a clustered server environment, the method comprising:
-
receiving a request to write data to a block of a first cache associated with a first server in the clustered server environment, wherein a plurality of servers in the clustered environment have an associated cache; identifying a second cache storing a copy of the block, wherein the second cache is associated with a second server in the clustered environment; transmitting a request to update the second cache with the received write data, whereby future requests are able to process the received write data from the second cache; and upon receiving a subsequent request to write subsequent data, identifying a third cache for invalidating based at least in part on access patterns of the blocks, wherein the third cache is associated with a third server in the clustered environment. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A server for updating a cache in a clustered environment, the server comprising:
-
a network interface configured to transmit and receive a plurality of requests; a cache configured to store a plurality of blocks and data associated with the blocks; and a processor in communication with the network and to the cache, wherein the processor is configured to; receive, over the network interface, a request to write data to a block of the cache; identify a second cache storing a copy of the block, wherein the second cache is associated with a second server in the clustered environment; transmit, over the network interface, a request to update the second cache with the received write data, whereby future requests are able to process the received write data from the second cache; and upon receiving, over the network interface, a subsequent request to write subsequent data, identify a third cache for invalidating based at least in part on access patterns of the blocks, wherein the third cache is associated with a third server in the clustered environment. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A non-transitory computer program product for updating a cache in a clustered environment, tangibly embodied in a computer-readable medium, the computer program product including instructions operable to cause a data processing apparatus to:
-
receive a request to write data to a block of a first cache associated with a first server in the clustered server environment, wherein a plurality of servers in the clustered environment have an associated cache; identify a second cache storing a copy of the block, wherein the second cache is associated with a second server in the clustered environment; transmit a request to update the second cache with the received write data, whereby future requests are able to process the received write data from the second cache; and upon receiving a subsequent request to write subsequent data, identify a third cache for invalidating based at least in part on access patterns of the blocks, wherein the third cache is associated with a third server in the clustered environment. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification