Patent ID: 7136969

Claim:
A method for maintaining cache coherency in a data storage system between endpoints, the method comprising: determining, by a first endpoint, whether a portion of cacheable global memory is to be written by said first endpoint, each of said endpoints having a local cache, said data storage system including a global memory comprising said portion; if said portion is to be written by said first endpoint, performing: writing, by said first endpoint, said portion to said global memory; transmitting, by said first endpoint, an invalidate command to other endpoints in said data storage system to invalidate cache lines of said portion of global memory in local caches of said other endpoints, each cache-line of each endpoint's local cache is in one of an invalid state and a shared state, said shared state indicating that said cache line is currently in use and the data mapped by said cache line is consistent with a copy in said global memory, and an invalid state indicates otherwise; receiving, by said first endpoint, a verification from each of said other endpoints that each of said other endpoints has received said invalidate command; and writing, by said first endpoint, to a cache line in said local cache of said first endpoint said portion of global memory, wherein said writing said portion to said global memory, said transmitting said receiving, and said writing to a cache line are performed as an atomic operation.