Write signature command
First Claim
Patent Images
1. A method, comprising:
- generating a write signature command, the write signature command having parameters used in execution comprising an offset, a number of blocks of data and a signature, the write signature command configured to;
write the signature to the offset in a storage array without the data, the signature being a hash value generated using a hash function on the data; and
enable the storage array to write the data with the same signature to a volume if the data is available at the storage array;
executing the write signature command to synchronize data between a second site and a first site, executing the write signature command comprising;
reading a first hash value having a first offset at the first site associated with a block of data at the first site;
sending the first hash value to the second site;
using the write signature command with the first hash value received from the first site to determine if there is a block of data stored at the second site associated with the first hash value, wherein the write signature command uses the first hash value to copy a block of data, from a location at the second site indicated in a hash table associated with the first hash value, to a second offset at the second site if the first hash value is found in the hash table;
determining if the write signature command was successful by determining there is the block of data stored at the second site associated with the first hash value; and
if the write command is not successful;
reading the block of data from the first site associated with the first hash value; and
writing the block of data from the first site associated with the first hash value to the second offset at the second site, the second offset being equal to the first offset.
10 Assignments
0 Petitions
Accused Products
Abstract
In one aspect, a method includes generating a write signature command. The write signature command is configured to write a signature to an offset in a storage array without data and to enable the storage array to write the data with the same signature to a volume if the data is available at the storage array.
187 Citations
17 Claims
-
1. A method, comprising:
-
generating a write signature command, the write signature command having parameters used in execution comprising an offset, a number of blocks of data and a signature, the write signature command configured to; write the signature to the offset in a storage array without the data, the signature being a hash value generated using a hash function on the data; and enable the storage array to write the data with the same signature to a volume if the data is available at the storage array; executing the write signature command to synchronize data between a second site and a first site, executing the write signature command comprising; reading a first hash value having a first offset at the first site associated with a block of data at the first site; sending the first hash value to the second site; using the write signature command with the first hash value received from the first site to determine if there is a block of data stored at the second site associated with the first hash value, wherein the write signature command uses the first hash value to copy a block of data, from a location at the second site indicated in a hash table associated with the first hash value, to a second offset at the second site if the first hash value is found in the hash table; determining if the write signature command was successful by determining there is the block of data stored at the second site associated with the first hash value; and if the write command is not successful; reading the block of data from the first site associated with the first hash value; and writing the block of data from the first site associated with the first hash value to the second offset at the second site, the second offset being equal to the first offset. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. An article comprising:
a non-transitory machine-readable medium that stores executable instructions, the instructions causing a machine to; generate a write signature command, the write signature command having parameters used in execution comprising an offset, a number of blocks of data and a signature, the write signature command configured to; write the signature to the offset in a storage array without the data, the signature being a hash value generated using a hash function on the data; and enable the storage array to write the data with the same signature to a volume if the data is available at the storage array; execute the write signature command to synchronize data between a second site and a first site, the instructions causing a machine to execute the write signature command comprising instructions causing a machine to; read a first hash value having a first offset at the first site associated with a block of data at the first site; send the first hash value to the second site; use the write signature command with the first hash value received from the first site to determine if there is a block of data stored at the second site associated with the first hash value, wherein the write signature command uses the first hash value to copy a block of data, from a location at the second site indicated in a hash table associated with the first hash value, to a second offset at the second site if the first hash value is found in the hash table; determine if the write signature command was successful by determining there is the block of data stored at the second site associated with the first hash value; and if the write command is not successful; read the block of data from the first site associated with the first hash value; and write the block of data from the first site associated with the first hash value to the second offset at the second site, the second offset being equal to the first offset. - View Dependent Claims (12, 13)
-
14. An apparatus, comprising:
hardware circuitry to generate a write signature command, the write signature command configured to; generate a write signature command, the write signature command having parameters used in execution comprising an offset, a number of blocks of data and a signature, the write signature command configured to; write the signature to the offset in a storage array without the data, the signature being a hash value generated using a hash function on the data; and enable the storage array to write the data with the same signature to a volume if the data is available at the storage array; execute the write signature command to synchronize data between a second site and a first site, the circuitry configured to execute the write signature command comprising circuitry configured to; read a first hash value having a first offset at the first site associated with a block of data at the first site; send the first hash value to the second site; use the write signature command with the first hash value received from the first site to determine if there is a block of data stored at the second site associated with the first hash value, wherein the write signature command uses the first hash value to copy a block of data, from a location at the second site indicated in a hash table associated with the first hash value, to a second offset at the second site if the first hash value is found in the hash table; determine if the write signature command was successful by determining there is the block of data stored at the second site associated with the first hash value; and if the write command is not successful; read the block of data from the first site associated with the first hash value; and write the block of data from the first site associated with the first hash value to the second offset at the second site, the second offset being equal to the first offset. - View Dependent Claims (15, 16, 17)
Specification