Systems and methods for maintaining cache coherency
First Claim
1. A computer-implemented method for maintaining cache coherency, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:
- receiving, by an owner node of a plurality of nodes of a clustered storage system, an indication of a revocation of a grant to the owner node of a shared lock for a data object owned by the owner node;
invalidating, by the owner node in response to the indication of the revocation of the grant to the owner node of the shared lock, a copy of the data object in a local cache of the owner node;
receiving, by the owner node while a first requesting node of the plurality of nodes holds a grant of an exclusive lock, a request from the first requesting node to update the data object in the local cache and a first validation cookie for the request from the first requesting node;
receiving, by the owner node while a second requesting node of the plurality of nodes holds a grant of the exclusive lock, a request from the second requesting node to update the data object in the local cache and a second validation cookie for the request from the second requesting node;
transmitting, by the owner node in response to one of the requests to update the data object, a non-preferred request for a shared lock for the data object;
receiving, by the owner node, an indication of a grant of the shared lock to the owner node and a third validation cookie, wherein the grant of the shared lock occurs after grants of preceding requests for a lock for the data object;
determining, by the owner node, whether the third validation cookie matches the first validation cookie or the second validation cookie; and
updating, by the owner node in response to the grant of the shared lock, the data object in the local cache based on determining whether the third validation cookie matches the first validation cookie or the second validation cookie.
7 Assignments
0 Petitions
Accused Products
Abstract
The disclosed computer-implemented method for maintaining cache coherency may include (1) receiving an indication of a revocation of a grant to an owner node of a shared lock for a data object owned by the owner node; (2) invalidating, in response to the indication of the revocation, a copy of the object in a local cache of the owner node; (3) receiving, while the requesting node holds a grant of an exclusive lock, a request from the requesting node to update the object in the local cache; (4) transmitting, in response to the request to update the object, a request for a shared lock for the object; (5) receiving an indication of a grant of the shared lock; and (6) updating, in response to the grant of the shared lock, the object in the local cache. Various other methods, systems, and computer-readable media are also disclosed.
-
Citations
20 Claims
-
1. A computer-implemented method for maintaining cache coherency, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:
-
receiving, by an owner node of a plurality of nodes of a clustered storage system, an indication of a revocation of a grant to the owner node of a shared lock for a data object owned by the owner node; invalidating, by the owner node in response to the indication of the revocation of the grant to the owner node of the shared lock, a copy of the data object in a local cache of the owner node; receiving, by the owner node while a first requesting node of the plurality of nodes holds a grant of an exclusive lock, a request from the first requesting node to update the data object in the local cache and a first validation cookie for the request from the first requesting node; receiving, by the owner node while a second requesting node of the plurality of nodes holds a grant of the exclusive lock, a request from the second requesting node to update the data object in the local cache and a second validation cookie for the request from the second requesting node; transmitting, by the owner node in response to one of the requests to update the data object, a non-preferred request for a shared lock for the data object; receiving, by the owner node, an indication of a grant of the shared lock to the owner node and a third validation cookie, wherein the grant of the shared lock occurs after grants of preceding requests for a lock for the data object; determining, by the owner node, whether the third validation cookie matches the first validation cookie or the second validation cookie; and updating, by the owner node in response to the grant of the shared lock, the data object in the local cache based on determining whether the third validation cookie matches the first validation cookie or the second validation cookie. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A system for maintaining cache coherency, the system comprising:
-
a lock communication module, stored in memory, that receives an indication of a revocation of a grant to an owner node of a plurality of nodes of a clustered storage system of a shared lock for a data object owned by the owner node; a local cache control module, stored in memory, that invalidates, in response to the indication of the revocation of the grant to the owner node of the shared lock, a copy of the data object in a local cache of the owner node; and a node communication module, stored in memory, that; receives, while a first requesting node of the plurality of nodes holds a grant of an exclusive lock, a request from the first requesting node to update the data object in the local cache and a first validation cookie for the request from the first requesting node; and receiving, while a second requesting node of the plurality of nodes holds a grant of the exclusive lock, a request from the second requesting node to update the data object in the local cache and a second validation cookie for the request from the second requesting node; wherein the lock communication module transmits, in response to one of the requests to update the data object, a non-preferred request for a shared lock for the data object; wherein the lock communication module receives an indication of a grant of the shared lock to the owner node and a third validation cookie, wherein the grant of the shared lock occurs after grants of preceding requests for a lock for the data object; and wherein the local cache control module; determines whether the third validation cookie matches the first validation cookie or the second validation cookie; and updates, in response to the grant of the shared lock, the data object in the local cache based on determining whether the third validation cookies matches the first validation cookie or the second validation cookie; and at least one physical processor that executes the lock communication module, the local cache control module, and the node communication module. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A non-transitory computer-readable medium comprising one or more computer-executable instructions that, when executed by at least one processor of a computing device, cause the computing device to:
-
receive an indication of a revocation of a grant to an owner node of a plurality of nodes of a clustered storage system of a shared lock for a data object owned by the owner node; invalidate, in response to the indication of the revocation of the grant to the owner node of the shared lock, a copy of the data object in a local cache of the owner node; receive, while a first requesting node of the plurality of nodes holds a grant of an exclusive lock, a request from the first requesting node to update the data object in the local cache and a first validation cookie for the request from the first requesting node; receive, while a second requesting node of the plurality of nodes holds a grant of the exclusive lock, a request from the second requesting node to update the data object in the local cache and a second validation cookie for the request from the second requesting node; transmit, in response to one of the requests to update the data object, a non-preferred request for a shared lock for the data object; receive an indication of a grant of the shared lock to the owner node and a third validation cookie, wherein the grant of the shared lock occurs after grants of preceding requests for a lock for the data object; determine whether the third validation cookie matches the first validation cookie or the second validation cookie; and update, in response to the grant of the shared lock, the data object in the local cache based on determining whether the third validation cookie matches the first validation cookie or the second validation cookie. - View Dependent Claims (17, 18, 19, 20)
-
Specification