Using a local storage device to read desired data stored on a remote
storage device that receives chunks of data from the local storage device
includes, if the desired data is entirely in a cache of the local storage
device, the local storage device returning the data from the cache and,
if the desired data is not entirely in a cache of the local storage
device, reading data from the remote storage device to the local storage
device and the local storage device merging the data from the remote
storage device with data from the local storage device at the local
storage device. Using a local storage device to read desired data stored
on a remote storage device that receives chunks of data from the local
storage device may also include, prior to reading data from the remote
storage device to the local storage device, creating a temporary storage
area at the local storage device if there is data from the local storage
device that is to be read. The temporary storage area may be a scratch
slot.