Patent ID: 8566689

Claim:
A computer-implemented method, comprising: calculating a first integrity unit from a first data unit, the calculating being done outside of an application; requesting a first storage device to store the first data unit; receiving a second integrity unit from the application; requesting a second storage device to store metadata in nonvolatile memory in the second storage device, the metadata comprising the first integrity unit and the second integrity unit, and the second storage device being separate from the first storage device; receiving a second data unit from the first storage device in response to a request for the first data unit; calculating a third integrity unit from the second data unit; receiving the first integrity unit from the second storage device in response to requesting the first integrity unit from the second storage device; determining whether the third integrity unit matches the first integrity unit; receiving the second integrity unit from the second storage device; and passing the second integrity unit and the second data unit to the application.