Reading desired data from a remote storage device that receives chunks of
data from an other storage device includes determining if the desired data is part
of a chunk of data committed by the other storage device, if the desired data is
not part of a chunk of data committed by the other storage device, reading the
desired data from a corresponding standard logical device, and if the desired data
is part of a chunk of data committed by the other storage device, transferring
the desired data to the standard logical device and obtaining the desired data
from one of: the standard logical device after transferring the desired data thereto
and the chunk of data committed by the other storage device. Reading desired data
from a remote storage device may also include, if the desired data is part of a
chunk of data committed by the other storage device, locking a corresponding slot
of a cache only virtual device that points to the desired data. Reading desired
data from a remote storage device may also include, locking a corresponding slot
of the standard logical device, merging corresponding cache slots, and causing
the corresponding slot of the cache only virtual device to point to the standard
logical device.