Patent ID: 9525737
Filing Date: 2016-12-20
CPC Classification: G06F,H04L

Claim Text:
1. A method for data storage, comprising: in a system that comprises at least a storage controller, multiple servers and multiple multi-queue storage devices that communicate over a network, maintaining in a memory of the storage controller a data structure, which is shared among the servers and modified by the servers using remote direct memory access to the memory of the storage controller, and which specifies storage addresses of data blocks accessed by the servers; sending a plurality of the data blocks from a server to a Non-Volatile Random-Access Memory (NVRAM) cache using remote direct memory access, so as to accumulate one or more stripes of the data blocks in the NVRAM cache; transferring the stripes from the NVRAM cache to respective server-specific queues on the storage devices; and preventing other servers from causing inconsistency in the data blocks during accumulation of the data blocks in the NVRAM cache or during transferal of the stripes from the NVRAM cache to the storage devices, by querying the data structure over the network using the remote direct memory access and verifying that, in accordance with the data structure, the storage addresses of the data blocks were not modified by another server during the accumulation of the data blocks or during the transferal of the stripes.