Reading virtual ordered writes at local storage device
First Claim
1. A method of using a local storage device to read desired data while the data is being transferred from the local storage device to a remote storage device, the method comprising:
- if the desired data is entirely in a cache of the local storage device, the local storage device returning the data from the cache, wherein the cache of the local storage device contains data written to the local storage device begun after a first time and before a second time that is associated with a first chunk of data and contains data written to the local storage device begun after the second time that is associated with a second chunk of data different from the first chunk of data and wherein after completion of all writes associated with the first chunk of data, the local storage device initiates transfer of writes associated with the first chunk of data to the remote storage device, an order of the transfer from the local storage device to the remote storage device of data from the first chunk being independent of an order in which data writes of the first chunk are provided to the local storage device; and
if the desired data is not entirely in the 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 cache of the local storage device at the local storage;
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 used;
prior to creating a temporary storage area, locking slots of the local storage device that correspond to data from the local storage device that is to be used;
after merging the data, unlocking the slots of the local storage device that correspond to data from the local storage device that is to be used.
9 Assignments
0 Petitions
Accused Products
Abstract
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.
46 Citations
12 Claims
-
1. A method of using a local storage device to read desired data while the data is being transferred from the local storage device to a remote storage device, the method comprising:
-
if the desired data is entirely in a cache of the local storage device, the local storage device returning the data from the cache, wherein the cache of the local storage device contains data written to the local storage device begun after a first time and before a second time that is associated with a first chunk of data and contains data written to the local storage device begun after the second time that is associated with a second chunk of data different from the first chunk of data and wherein after completion of all writes associated with the first chunk of data, the local storage device initiates transfer of writes associated with the first chunk of data to the remote storage device, an order of the transfer from the local storage device to the remote storage device of data from the first chunk being independent of an order in which data writes of the first chunk are provided to the local storage device; and if the desired data is not entirely in the 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 cache of the local storage device at the local storage; 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 used; prior to creating a temporary storage area, locking slots of the local storage device that correspond to data from the local storage device that is to be used; after merging the data, unlocking the slots of the local storage device that correspond to data from the local storage device that is to be used. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. Computer software, stored in a computer-readable medium, that reads desired data while the data is being transferred from the local storage device to a remote storage device, comprising:
-
executable code that returns the data from the cache if the desired data is entirely in a cache of the local storage device, wherein the cache of the local storage device contains data written to the local storage device begun after a first time and before a second time that is associated with a first chunk of data and contains data written to the local storage device begun after the second time that is associated with a second chunk of data different from the first chunk of data and wherein after completion of all writes associated with the first chunk of data, the local storage device initiates transfer of writes associated with the first chunk of data to the remote storage device, an order of the transfer from the local storage device to the remote storage device of data from the first chunk being independent of an order in which data writes of the first chunk are provided to the local storage device; and executable code that reads data from the remote storage device to the local storage device and merges the data from the remote storage device with data from the cache of the local storage device at the local storage device if the desired data is not entirely in the cache of the local storage device; executable code that creates a temporary storage area at the local storage device if there is data from the local storage device that is to be used prior to reading data from the remote storage device to the local storage device; executable code that locks slots of the local storage device that correspond to data from the local storage device that is to be used prior to creating a temporary storage area; executable code that unlocks the slots of the local storage device that correspond to data from the local storage device that is to be used after merging the data. - View Dependent Claims (8, 9, 10, 11, 12)
-
Specification