Patent ID: 8473690

Claim:
A method comprising: assigning a logical block address to each of a plurality of data blocks stored in a storage system; assigning a generation number to each said logical block address, each generation number indicative of a number of times that data at the corresponding logical block address has been modified; receiving at a server a write signal from a caching device, the write signal indicating a write performed to a first data block at the caching device, the write signal including write data, a first logical block address and a first generation number corresponding to the first logical block address; in response to the write signal, determining at the server whether the first generation number is the latest generation number for the first logical block address; and if the generation number is the latest generation number for the first logical block address, then updating the first data block at the server according to the write data, the first logical block address and the first generation number, but if the generation number is not the latest generation number for the first logical block address, then sending an error message to the caching device in response to the write signal, to cause the caching device to increment the first generation number at the caching device, and send to the server a second write signal from the caching device, the second write signal including second write data for the first data block and further including the first logical block address and the incremented first generation number.