Replication techniques with content addressable storage
First Claim
1. A CAS data storage system comprising:
- at least one source CAS data storage spaceat least one destination CAS data storage space, anda communication line connecting said source storage space and said destination storage space, and wherein input data for storage in said system arrives at said source storage space for storage at said source storage space and to be replicated to said destination storage space, the source storage space further comprising an active buffer of incoming data for replication to said destination storage space, said active buffer configured to hold for each of a plurality of data items of said incoming data, a hash result of the respective data item and an address, the system being configured to detect whenever there is more than one data item in said active buffer sharing a same address and upon such detection to transfer a respective hash result of only a last of said data items sharing said same address, to said destination storage space;
wherein data items at said destination storage space are stored as data content alongside hash keys identifying said data content, wherein upon deletion request said data items being deleted by de-referencing said data items said system being configured to reuse said de-referenced data items by comparing deleted hash keys to hash keys of incoming data items;
wherein upon receipt of an incoming hash key that corresponds to a first hash key of the deleted hash keys, wherein the first hash key is associated with a first de-referenced data item, the system is enabled to associate the incoming hash key with the first de-referenced data item converting the first de-referenced data item to a referenced data item;
wherein the CAS data storage system is enabled to send a Read I/O request from said source storage space to said destination storage space, wherein the read I/O request relates to an address on said destination storage space, wherein said destination storage space responds by sending a hash key associated with the address on said destination storage space to enable said source storage space to determine whether data associated with the address is already present on said source storage space;
wherein the CAS data storage system is enabled to determine whether a requested data block is expected and pending, wherein the CAS data storage system is enabled to postpone a Write I/O based on the determination.
10 Assignments
0 Petitions
Accused Products
Abstract
A CAS data storage system with one or more source CAS data storage spaces and one or more destination CAS data storage spaces, and a communication line therebetween, receives input data at the source storage space for local storage and for replication to the destination CAS storage space. CAS metadata is used in the replication procedure between the two separate CAS storage spaces. Thus, data at the source storage space is used to form an active buffer for transfer to the destination storage space, the active buffer holding a hash result of the respective data item and a storage address. The system detects whenever there is more than one data item in said active buffer sharing a same storage address and upon such detection transfers a respective hash result of only the last of the data items.
36 Citations
22 Claims
-
1. A CAS data storage system comprising:
-
at least one source CAS data storage space at least one destination CAS data storage space, and a communication line connecting said source storage space and said destination storage space, and wherein input data for storage in said system arrives at said source storage space for storage at said source storage space and to be replicated to said destination storage space, the source storage space further comprising an active buffer of incoming data for replication to said destination storage space, said active buffer configured to hold for each of a plurality of data items of said incoming data, a hash result of the respective data item and an address, the system being configured to detect whenever there is more than one data item in said active buffer sharing a same address and upon such detection to transfer a respective hash result of only a last of said data items sharing said same address, to said destination storage space; wherein data items at said destination storage space are stored as data content alongside hash keys identifying said data content, wherein upon deletion request said data items being deleted by de-referencing said data items said system being configured to reuse said de-referenced data items by comparing deleted hash keys to hash keys of incoming data items; wherein upon receipt of an incoming hash key that corresponds to a first hash key of the deleted hash keys, wherein the first hash key is associated with a first de-referenced data item, the system is enabled to associate the incoming hash key with the first de-referenced data item converting the first de-referenced data item to a referenced data item; wherein the CAS data storage system is enabled to send a Read I/O request from said source storage space to said destination storage space, wherein the read I/O request relates to an address on said destination storage space, wherein said destination storage space responds by sending a hash key associated with the address on said destination storage space to enable said source storage space to determine whether data associated with the address is already present on said source storage space; wherein the CAS data storage system is enabled to determine whether a requested data block is expected and pending, wherein the CAS data storage system is enabled to postpone a Write I/O based on the determination. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A CAS data storage system comprising at least one source CAS data storage space and a destination CAS data storage space, and a communication line connecting said source storage space and said destination storage space, and wherein input data for storage in said system arrives at said source storage space for storage in said source storage space and replication in said destination storage space, and wherein a hash key of a data item is transferred to said destination storage space, the hash key enabling the destination storage space to determine whether said data corresponding to the data item is already present at said destination storage device and does not require data transfer, said destination storage space being configured to send a signal indicating whether data transfer is required;
-
wherein data item at said destination storage space are stored as data content alongside hash keys identifying said data content, wherein upon deletion request said data items being deleted by de-referencing said data items, said system being configured to reuse said de-referenced data item by comparing deleted hash keys to hash keys of incoming data items; wherein upon receipt of an incoming hash key that corresponds to a first hash key of the deleted hash keys, wherein the first hash key is associated with a first de-referenced data item, the system is enabled to associate the incoming hash key with the first de-referenced data item converting the first de-referenced data item to a referenced data item; wherein the CAS data storage system is enabled to send a Read I/O request from said source storage space to said destination storage space, wherein the read I/O request relates to an address on said destination storage space, wherein said destination storage space responds by sending a hash key associated with the address on said destination storage space to enable said source storage space to determine whether data associated with the address is already present on said source storage space; wherein the CAS data storage system is enabled to determine whether a requested data block is expected and pending, wherein the CAS data storage system is enabled to postpone a Write I/O based on the determination. - View Dependent Claims (8, 9, 10)
-
-
11. A system comprising two CAS data storage spaces with synchronous replication therebetween, one of said storage spaces being a source CAS data storage space and another of said storage spaces being a destination CAS data storage space, the system further comprising a communication line connecting said source storage space and said destination storage space and having a latency, communication over said communication line comprising sending data and acknowledgements in a synchronous cycle, wherein input data for storage in said system arrives at said source storage space for storage in said source storage space and replication to said destination storage space, and wherein a hash key of a data item is transferred to said destination storage space followed within said cycle by starting to transfer corresponding data without awaiting a corresponding acknowledgement, the hash key enabling the destination storage space to determine whether said corresponding data is already present at said destination storage device and does not require data transfer, and to send an acknowledgement in said respective synchronous cycle indicating whether said data transfer is required, said acknowledgement usable at said source storage space to carry out one member of the group comprising discontinuing said started transfer of said corresponding data and acknowledging to a sending application;
-
wherein data item at said destination storage space are stored as data content alongside hash keys identifying said data content, wherein upon deletion request said data items being deleted by de-referencing said data items, said system being configured to reuse said de-referenced data items by comparing deleted hash keys to hash keys of incoming data items; wherein upon receipt of an incoming hash key that corresponds to a first hash key of the deleted hash keys, wherein the first hash key is associated with a first de-referenced data item, the system is enabled to associate the incoming hash key with the first de-referenced data item converting the first de-referenced data item to a referenced data item; wherein the CAS data storage system is enabled to send a Read I/O request from said source storage space to said destination storage space, wherein the read I/O request relates to an address on said destination storage space, wherein said destination storage space responds by sending a hash key associated with the address on said destination storage space to enable said source storage space to determine whether data associated with the address is already present on said source storage space; wherein the destination CAS data storage space is enabled to determine whether a requested data block is expected and pending, wherein the destination CAS data storage system is enabled to postpone a Write I/O based on the determination.
-
-
12. A CAS data storage method wherein input data arrives at a source CAS data storage space for storage at said source storage space and replication to a destination CAS data storage space over a communication line, the method comprising filling an active buffer, at said source storage space, with incoming data for transfer to said destination storage space, said active buffer holding for each of a plurality of data items of said incoming data, a hash result of the respective data item and a storage address, the method further comprising detecting whenever there is more than one data item in said active buffer sharing a same storage address and upon such detection transferring to said replication storage space a respective hash result of only a last of said data items sharing said same storage address;
-
wherein data items at said destination storage space are stored as data content alongside hash keys identifying said data content, wherein upon deletion request said data items being deleted by de-referencing said data items, the method comprising reusing said de-referenced data items by comparing deleted hash keys to hash keys of incoming data items; wherein upon receipt of an incoming hash key that corresponds to a first hash key of the deleted hash keys, wherein the first hash key is associated with a first de-referenced data item, the system is enabled to associate the incoming hash key with the first de-referenced data item converting the first de-referenced data item to a referenced data item; wherein the CAS data storage system is enabled to send a Read I/O request from said source storage space to said destination storage space, wherein the read I/O request relates to an address on said destination storage space, wherein said destination storage space responds by sending a hash key associated with the address on said destination storage space to enable said source storage space to determine whether data associated with the address is already present on said source storage space; wherein the CAS data storage system is enabled to determine whether a requested data block is expected and pending, wherein the CAS data storage system is enabled to postpone a Write I/O based on the determination. - View Dependent Claims (13, 14, 15, 16)
-
-
17. A CAS data storage method for at least one source CAS data storage space and a destination CAS data storage space, and a communication line connecting said source storage space and said destination storage space, and wherein input data for storage in said system arrives at said source storage space for storage in said destination storage space, the method comprising:
-
transferring a hash key of a data item to said destination storage space, the hash key enabling the destination storage space to determine whether data corresponding to the data item is already present at said destination storage device and thus does not require data transfer; wherein the destination storage is enabled to compare the hash key with stored hash keys corresponding to de-referenced data items on said destination storage, said destination storage being configured to reuse said de-referenced data, wherein when the hash key corresponds to a first hash key of the stored hash keys, the destination storage is enabled to associate the hash key with the first hash key thereby converting the first de-referenced data item to a referenced data item; and sending a signal indicating whether said destination storage space requires data transfer; wherein the CAS data storage system is enabled to send a Read I/O request from said source storage space to said destination storage space, wherein the read I/O request relates to an address on said destination storage space, wherein said destination storage space responds by sending a hash key associated with the address on said destination storage space to enable said source storage space to determine whether data associated with the address is already present on said source storage space; wherein said destination storage space is enabled to determine whether a requested data block is expected and pending, wherein the said destination storage space is enabled to postpone a Write I/O based on the determination. - View Dependent Claims (18, 19)
-
-
20. A synchronized CAS data storage method for at least one source CAS data storage space and a destination CAS data storage space, and a communication line connecting said source storage space and said destination storage space and having a latency, communication over said communication line comprising sending data and acknowledgements in synchronous cycles, the method comprising:
-
receiving input data at said source storage space for storage in said destination storage space;
transferring a hash key of a data item of said input data to said destination storage space in one of said synchronous cycles;within said one synchronous cycle starting to transfer corresponding data without awaiting a corresponding acknowledgement, the hash key enabling the destination storage space to determine whether it already has said corresponding data and does not require data transfer; wherein the destination storage is enabled to compare the hash key with stored hash keys corresponding to de-referenced data items on said destination storage, said destination storage being configured to reuse said de-referenced data; wherein when the hash key corresponds to a first hash key of the stored hash keys, the destination storage is enabled to associate the hash key with the first hash key thereby converting the first de-referenced data item to a referenced data item; sending an acknowledgement in said respective synchronous cycle indicating whether said data transfer is required, and one member of the group consisting of;
discontinuing said started transfer of said corresponding data if said data transfer is not required, and sending an external acknowledgement to a source application;wherein the synchronized CAS data storage is enabled to send a Read I/O request from said source storage space to said destination storage space, wherein the read I/O request relates to an address on said destination storage space, wherein said destination storage space responds by sending a hash key associated with the address on said destination storage space to enable said source storage space to determine whether data associated with the address is already present on said source storage space; wherein said destination storage space is enabled to determine whether a requested data block is expected and pending, wherein the said destination storage space is enabled to postpone a Write I/O based on the determination.
-
-
21. A system comprising:
- a first CAS storage space configured to generate and use CAS metadata for storing data items internally therein, and a second CAS storage space configured to generate and use CAS metadata for storing data items internally therein, the first CAS storage space being connected via a communication line to said second CAS storage space and configured to communicate metadata of said first CAS storage space to said second CAS storage space over said communication link in a replication procedure to replicate said first CAS storage space at said second CAS storage space, said CAS metadata comprising a hash key of a data item, the hash key corresponding to a data item to be transferred and enabling the destination storage space to determine whether data corresponding to the data item is already present at said destination storage device and thereby not requiring data transfer, said destination storage space being configured to send a signal indicating whether data transfer is required for said replication;
wherein data items at said destination storage space are stored as data content alongside hash keys identifying said data content, wherein upon deletion request said data items being deleted by de-referencing said data items, the method comprising reusing said de-referenced data items by comparing deleted hash keys to hash keys of incoming data items; wherein upon receipt of an incoming hash key that corresponds to a first hash key of the deleted hash keys, wherein the first hash key is associated with a first de-referenced data item, the system is enabled to associate the incoming hash key with the first de-referenced data item converting the first de-referenced data item to a referenced data item; wherein the system is enabled to send a Read I/O request from the first CAS storage to the second CAS storage, wherein the read I/O request relates to an address on the second CAS storage, wherein the second CAS storage responds by sending a hash key associated with the address on the second CAS storage to enable the first CAS storage to determine whether data associated with the address is already present on the first CAS storage; wherein the system is enabled to determine whether a requested data block is expected and pending, wherein the system is enabled to postpone a Write I/O based on the determination.
- a first CAS storage space configured to generate and use CAS metadata for storing data items internally therein, and a second CAS storage space configured to generate and use CAS metadata for storing data items internally therein, the first CAS storage space being connected via a communication line to said second CAS storage space and configured to communicate metadata of said first CAS storage space to said second CAS storage space over said communication link in a replication procedure to replicate said first CAS storage space at said second CAS storage space, said CAS metadata comprising a hash key of a data item, the hash key corresponding to a data item to be transferred and enabling the destination storage space to determine whether data corresponding to the data item is already present at said destination storage device and thereby not requiring data transfer, said destination storage space being configured to send a signal indicating whether data transfer is required for said replication;
-
22. A computer-executable method for managing a CAS system, the CAS system including a source CAS data storage space and a destination CAS data storage space, the computer-executable method comprising:
-
receiving a first hash key at the destination CAS data storage space, wherein the hash key is associated with a data item; determining whether the first hash key corresponds to a second hash key from a list of hash keys on the destination CAS data storage space, wherein the list of hash keys includes hash keys of un-referenced data items stored on the destination CAS data storage space, wherein the second hash key is associated with a second data item; and upon a positive determination, associating the first hash key with the second data item; wherein the CAS system is enabled to send a Read I/O request from the source CAS data storage space to the destination CAS data storage space, wherein the read I/O request relates to an address on the destination CAS data storage space, wherein the destination CAS data storage space responds by sending a hash key associated with the address on the destination CAS data storage space to enable the source CAS data storage space to determine whether data associated with the address is already present on the source CAS data storage space; wherein the CAS system is enabled to determine whether a requested data block is expected and pending, wherein the CAS system is enabled to postpone a Write I/O based on the determination.
-
Specification