Patent ID: 7702670

Claim:
In a data storage environment having a server, a first and second data storage system, and data being stored on the first data storage system, and a copy of the data being stored on the second data storage system, a method of handling requests to change data being stored on the first data storage system when this data is being copied to the second data storage system, the method comprising the steps of: responsive to a request to perform an incremental copy of data stored on the first data storage system in order to incrementally update the copy of the data being stored on the second data storage system, marking the state of the data on the first data storage system to be copied associated with the request to perform an incremental copy in a data structure, the data structure including a tracking data structure and a transfer data structure; wherein the tracking data structure is used to track write requests and wherein the transfer data structure is used to track what data is to be transferred in the incremental copy; selectively transferring a copy of the data on the first storage system that has changed since a last update in accordance with the marked state of the transfer data structure of the data structure while tracking write requests in the tracking data structure, and indicating said transfer of said data copy is completed by dynamically unmarking the state of the transferred data in the transfer data structure of the data structure corresponding to the data transferred, wherein on completion of unmarking the state of all the data to be transferred in the tracking data structure switching the tracking data structure to be the transfer data structure and the transfer data structure to become the tracking data structure; and responsive to the request to change of data, determining, by reviewing the marking of the state of the data in the transfer data structure of the data structure, whether the request to change data, if executed, would modify the data copy before it has been transferred, and when the request to change the data would modify the data before it has been transferred copying the data to the second data storage system before the request to perform an incremental copy of data is allowed to proceed.