Data deduplication cache comprising solid state drive storage and the like
Abstract
Methods and systems for retrieving deduplicated data by a system having a first storage device and a second storage device to store deduplicated data are described, wherein data is retrievable from the first storage faster than data is retrievable from the second storage, in including receiving a request from a client machine for deduplicated data and determining a location the requested deduplicated data. If the data is in the second storage device, the method further includes retrieving the data, providing the data to the client machine, and moving the retrieved data to the first storage device. If the first storage is full, data may be moved to the second storage to make room for data to be stored in the first storage. One or more factors may be used to determine which data to move out of the first storage, if necessary. The first storage may be an SSD device.
Claims
exact text as granted — not AI-modifiedI claim:
1 . A method for retrieving deduplicated data from a deduplication system comprising a first storage device and a second storage device for storing deduplicated data, wherein data is retrievable from the first storage device faster than data is retrievable from the second storage device, the method comprising:
receiving a request from a client machine for deduplicated data; determining a location of the requested deduplicated data; and if the data is in the second storage device:
retrieving the data;
providing the retrieved data to the client machine; and
moving the retrieved data to the first storage device.
2 . The method of claim 1 , wherein the request for deduplicated data includes a message digest of the deduplicated data, the method further comprising;
determining the location of the requested deduplicated data based, at least in part, on the digest.
3 . The method of claim 2 , comprising determining the location of the requested deduplicated data by checking a table correlating message digests with locations of data corresponding to the message digest on the first and second storage devices.
4 . The method of claim 1 , further comprising, prior to moving the retrieved data to the first storage device:
determining whether the first storage device is full; and if the first storage device is full, moving a data block from the first storage device to the second storage device prior to moving the retrieved data to the first storage device.
5 . The method of claim 4 , comprising selecting a data block to move to the second storage device based, at least in part, on:
how long a data block has been in the first storage device; how long a data block has been in the first storage device without being requested; a number of past requests for each data block; a probability that a respective data block will be requested; types of requests for respective data blocks; a number of times respective data block have been received for deduplication from more than one client machine; a location of respective data blocks on a client machine providing the data of the data block for deduplication; a number of locations of the same data block on the client machine providing the data of the data block for deduplication; and an identity of the client machine providing the data of the data block for deduplication.
6 . The method of claim 5 , comprising selecting the data block by applying an algorithm including respective weightings for the one or more of the factors.
7 . The method of claim 1 , wherein:
the first storage device comprises a non-spinning storage device; and the second storage device comprises a spinning storage device.
8 . The method of claim 7 , wherein the non-spinning storage device comprises a solid state drive storage device.
9 . The method of claim 1 , wherein the deduplicated data was previously received from the client machine, by the deduplication system the method further comprising:
deduplicating the data; determining whether to store the received data in the first storage device or the second storage device; and storing the data in the determined first storage device or second storage device.
10 . A deduplication system comprising:
a first storage device; a second storage device, wherein data is retrievable from the first storage device faster than data is retrievable from the second storage device: at least one processing device configured to: receive a request from a client machine for deduplicated data; determine a location of the requested deduplicated data; and if the data is in the second storage device:
retrieve the data;
provide the retrieved data to the client machine; and
move the retrieved data to the first storage device.
11 . The system of claim 10 , wherein:
the first storage device comprises a non-spinning storage device; and the second storage device comprises a spinning storage device.
12 . The system of claim 11 , wherein the first storage device comprises a solid state storage device.
13 . The system of claim 11 , wherein the request for deduplicated data comprises a message digest of the deduplicated data and the at least one processing device is configured to determine the location by:
checking a table correlating message digests with locations of data with the first and second storage devices.
14 . The system of claim 11 , wherein the at least one processing device is further configured to:
determine whether the first storage device is full; and if the first storage device is full, move a second data block from the first storage device to the second storage device prior to moving the retrieved data block to the first storage device.
15 . The system method of claim 14 , wherein the at least one processing device is further configured to select the data block to move to the second storage device based, at least in part, on two or more of the following factors:
how long a data block has been in the first storage device; how long a data block has been in the first storage device without being requested; a number of past requests for each data block; a probability that a respective data block will be requested; a number of times respective data blocks have been received for deduplication; types of requests for respective data blocks in a predetermined time period; a location of respective data blocks in the client machine providing the data block for deduplication; a number of locations of the data on the client machine; and/or an identity of the client machine providing the data of the data block for deduplication.
16 . The system of claim 15 , wherein the at least one processing device is configured to select the data block by applying an algorithm including respective weightings for the one or more of the factors.
17 . The system of claim 11 , wherein the data was previously received by the at least one processing device for deduplication, the at least one processing device being further configured to:
deduplicate the data; determine whether to store the data in the first storage device or the second storage device; and store the data in the determined first storage device or second storage device.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.