← Back to Patent Explorer
US6434681B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Snapshot copy facility for a data storage system permitting continued host read/write access

Assignee: EMC Corp
•
Filing: 1999-12-02
•
Granted: 2002-08-13
•
Expires: 2019-12-02
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A snapshot copy of a production data set is maintained while a host may continue write access to the production data set. The data storage system responds to a host request to write to a storage location of the production data set by checking whether or not the storage-location has been modified since the time when the snapshot copy was created, and upon finding that the storage location of the production data set has not been modified, copying data from the storage location of the production data set to an allocated storage location of the snapshot copy, and after copying data from the storage location of the production data set to the allocated storage location of the snapshot copy, performing the write operation upon the storage location of the production data set. In the preferred implementation, the data storage system allocates to the snapshot copy a bit map to indicate storage locations in the production data set that have been modified, and a list of pointers to allocated storage locations for the snapshot copy. The snapshot copy facility is useful so that a host write operation upon a storage location being backed up need not be delayed until original data in the storage location is written to secondary storage. The snapshot copy facility is also useful for other applications such as transaction processing and debugging.

Inventors

  • 👤 Philippe Armangau

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-05 21:14
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/07; G06F11/14; G06F11/1446; G06F11/1458; G06F11/1466; G06F2201/00; G06F2201/84

Claims Analysis

Total Claims: 23
Claim 1
Independent Claim 396 words
In a data storage system including data storage, a method of maintaining in the data storage a snapshot copy of a production data set including a multiplicity of storage locations in the data storage, the production data set being accessible to a host processor for read/write access during maintenance of the snapshot copy, the snapshot copy including data existing in the production data set at a time when the snapshot copy is created, said method including: the data storage system responding to a request from the host processor for a write operation upon a storage location of the production data set by checking whether or not the storage location of the production data set has been modified since the time when the snapshot copy was created, and upon finding that the storage location of the production data set has not been modified since the time when the snapshot copy was created, copying data from the storage location of the production data set to an allocated storage location of the snapshot copy, and after copying data from the storage location of the production data set to the allocated storage location of the snapshot copy, performing the write operation upon the storage location of the production data set, wherein the production data set includes at least a first production volume of tracks and a second production volume of tracks, the allocated storage location of the snapshot copy is in a snapshot volume of tracks, and the method further includes maintaining a first list of pointers to free tracks in the snapshot volume of tracks, maintaining a second list of pointers to tracks in the snapshot volume storing snapshot copies of tracks from the first production volume, and maintaining a third list of pointers to tracks in the snapshot volume storing snapshot copies of tracks from the second production volume, wherein the data storage system allocates a track in the snapshot copy volume in response to the request from the host processor for a write operation to a track in a respective one of the production volumes by removing a pointer from the first list of pointers to free tracks in the snapshot volume and inserting the pointer on a respective one of the second and third lists of pointers to tracks in the snapshot volume storing snapshot copies of tracks from the respective one of the production volumes.
Claim 2
Dependent Claim 396 words
In a data storage system including data storage, a method of maintaining in the data storage a snapshot copy of a production data set including a multiplicity of storage locations in the data storage, the production data set being accessible to a host processor for read/write access during maintenance of the snapshot copy, the snapshot copy including data existing in the production data set at a time when the snapshot copy is created, said method including: the data storage system responding to a request from the host processor for a write operation upon a storage location of the production data set by checking whether or not the storage location of the production data set has been modified since the time when the snapshot copy was created, and upon finding that the storage location of the production data set has not been modified since the time when the snapshot copy was created, copying data from the storage location of the production data set to an allocated storage location of the snapshot copy, and after copying data from the storage location of the production data set to the allocated storage location of the snapshot copy, performing the write operation upon the storage location of the production data set, wherein the production data set includes at least a first production volume of tracks and a second production volume of tracks, the allocated storage location of the snapshot copy is in a snapshot volume of tracks, and the method further includes maintaining a first list of pointers to free tracks in the snapshot volume of tracks, maintaining a second list of pointers to tracks in the snapshot volume storing snapshot copies of tracks from the first production volume, and maintaining a third list of pointers to tracks in the snapshot volume storing snapshot copies of tracks from the second production volume, wherein the data storage system allocates a track in the snapshot copy volume in response to the request from the host processor for a write operation to a track in a respective one of the production volumes by removing a pointer from the first list of pointers to free tracks in the snapshot volume and inserting the pointer on a respective one of the second and third lists of pointers to tracks in the snapshot volume storing snapshot copies of tracks from the respective one of the production volumes.
Claim 3
Dependent Claim 406 words
A data storage system comprising data storage and at least one data processor responsive to requests from a host processor for read/write access to a production data set including multiple storage locations in the data storage, the data processor being programmed to maintain in the data storage a snapshot copy of the production data set, the snapshot copy including data existing in the production data set at a time when the snapshot copy is created, wherein the data processor is programmed to respond to a request from the host processor for a write operation upon a storage location of the production data set by checking whether or not the storage location of the production data set has been modified since the time when the snapshot copy was created, and upon finding that the storage location of the production data set has not been modified since the time when the snapshot copy was created, copying data from the storage location of the production data set to an allocated storage location of the snapshot copy, and after copying data from the storage location of the production data set to the allocated storage location of the snapshot copy, performing the write operation upon the storage location of the production data set, wherein the production data set includes at least a first production volume of tracks and a second production volume of tracks, the allocated storage location of the snapshot copy is in a snapshot volume of tracks, and wherein the data processor is programmed to maintain a first list of pointers to free tracks in the snapshot volume of tracks, to maintain a second list of pointers to tracks in the snapshot volume storing snapshot copies of tracks from the first production volume, and to maintain a third list of pointers to tracks in the snapshot volume storing snapshot copies of tracks from the second production volume, and wherein the data processor is programmed to allocate a track in the snapshot copy volume in response to the request from the host processor for a write operation to a track in a respective one of the production volumes by removing a pointer from the first list of pointers to free tracks in the snapshot volume and inserting the pointer on a respective one of the second and third lists of pointers to tracks in the snapshot volume storing snapshot copies of tracks from the respective one of the production volumes.
Claim 4
Dependent Claim 406 words
A data storage system comprising data storage and at least one data processor responsive to requests from a host processor for read/write access to a production data set including multiple storage locations in the data storage, the data processor being programmed to maintain in the data storage a snapshot copy of the production data set, the snapshot copy including data existing in the production data set at a time when the snapshot copy is created, wherein the data processor is programmed to respond to a request from the host processor for a write operation upon a storage location of the production data set by checking whether or not the storage location of the production data set has been modified since the time when the snapshot copy was created, and upon finding that the storage location of the production data set has not been modified since the time when the snapshot copy was created, copying data from the storage location of the production data set to an allocated storage location of the snapshot copy, and after copying data from the storage location of the production data set to the allocated storage location of the snapshot copy, performing the write operation upon the storage location of the production data set, wherein the production data set includes at least a first production volume of tracks and a second production volume of tracks, the allocated storage location of the snapshot copy is in a snapshot volume of tracks, and wherein the data processor is programmed to maintain a first list of pointers to free tracks in the snapshot volume of tracks, to maintain a second list of pointers to tracks in the snapshot volume storing snapshot copies of tracks from the first production volume, and to maintain a third list of pointers to tracks in the snapshot volume storing snapshot copies of tracks from the second production volume, and wherein the data processor is programmed to allocate a track in the snapshot copy volume in response to the request from the host processor for a write operation to a track in a respective one of the production volumes by removing a pointer from the first list of pointers to free tracks in the snapshot volume and inserting the pointer on a respective one of the second and third lists of pointers to tracks in the snapshot volume storing snapshot copies of tracks from the respective one of the production volumes.
Claim 5
Dependent Claim 426 words
A program storage device containing a program for a data processor in a data storage system including data storage, the data processor being responsive to requests from a host processor for read/write access to a production data set including multiple storage locations in the data storage, the program being executable by the data processor for maintaining in the data storage a snapshot copy of the production data set, the production data set includes at least a first production volume of tracks and a second production volume of tracks, the snapshot copy including data existing in the production data set at a time when the snapshot copy is created, wherein the program is executable by the data processor for responding to a request from the host processor for a write operation upon a storage location of the production data set by checking whether or not the storage location of the production data set has been modified since the time when the snapshot copy was created, and upon finding that the storage location of the production data set has not been modified since the time when the snapshot copy was created, copying data from the storage location of the production data set to an allocated storage location of the snapshot copy, the allocated storage location of the snapshot copy being a track in a snapshot volume of tracks, and after copying data from the storage location of the production data set to the allocated storage location of the snapshot copy, performing the write operation upon the storage location of the production data set, wherein the program is executable by the data processor for maintaining a first list of pointers to free tracks in the snapshot volume of tracks, maintaining a second list of pointers to tracks in the snapshot volume storing snapshot copies of tracks from the first production volume, and maintaining a third list of pointers to tracks in the snapshot volume storing snapshot copies of tracks from the second production volume, and wherein the program is executable by the data processor for allocating a track in the snapshot copy volume in response to the request from the host processor for a write operation to a track in a respective one of the production volumes by removing a pointer from the first list of pointers to free tracks in the snapshot volume and inserting the pointer on a respective one of the second and third lists of pointers to tracks in the snapshot volume storing snapshot copies of tracks from the respective one of the production volumes.
Claim 6
Dependent Claim 426 words
A program storage device containing a program for a data processor in a data storage system including data storage, the data processor being responsive to requests from a host processor for read/write access to a production data set including multiple storage locations in the data storage, the program being executable by the data processor for maintaining in the data storage a snapshot copy of the production data set, the production data set includes at least a first production volume of tracks and a second production volume of tracks, the snapshot copy including data existing in the production data set at a time when the snapshot copy is created, wherein the program is executable by the data processor for responding to a request from the host processor for a write operation upon a storage location of the production data set by checking whether or not the storage location of the production data set has been modified since the time when the snapshot copy was created, and upon finding that the storage location of the production data set has not been modified since the time when the snapshot copy was created, copying data from the storage location of the production data set to an allocated storage location of the snapshot copy, the allocated storage location of the snapshot copy being a track in a snapshot volume of tracks, and after copying data from the storage location of the production data set to the allocated storage location of the snapshot copy, performing the write operation upon the storage location of the production data set, wherein the program is executable by the data processor for maintaining a first list of pointers to free tracks in the snapshot volume of tracks, maintaining a second list of pointers to tracks in the snapshot volume storing snapshot copies of tracks from the first production volume, and maintaining a third list of pointers to tracks in the snapshot volume storing snapshot copies of tracks from the second production volume, and wherein the program is executable by the data processor for allocating a track in the snapshot copy volume in response to the request from the host processor for a write operation to a track in a respective one of the production volumes by removing a pointer from the first list of pointers to free tracks in the snapshot volume and inserting the pointer on a respective one of the second and third lists of pointers to tracks in the snapshot volume storing snapshot copies of tracks from the respective one of the production volumes.
Claim 7
Dependent Claim 341 words
In a data storage system including data storage, a method of maintaining in the data storage a snapshot copy of a production data set including a multiplicity of storage locations in the data storage, the production data set being accessible to a host processor for read/write access during maintenance of the snapshot copy, the snapshot copy including data existing in the production data set at a time when the snapshot copy is created, said method including: the data storage system responding to a request from the host processor for a write operation upon a storage location of the production data set by checking whether or not the storage location of the production data set has been modified since the time when the snapshot copy was created, and upon finding that the storage location of the production data set has not been modified since the time when the snapshot copy was created, copying data from the storage location of the production data set to an allocated storage location of the snapshot copy, and after copying data from the storage location of the production data set to the allocated storage location of the snapshot copy, performing the write operation upon the storage location of the production data set, wherein the checking whether or not the storage location of the production data set has been modified since the time when the snapshot copy was created includes testing a bit for the storage location of the production data set, the bit being a bit of a bit map for the snapshot copy, and which includes migrating the snapshot copy from the data storage system to secondary storage by scanning the bit map, and for each bit in the bit map that indicates a storage location that has not been modified in the production data set, copying to the secondary storage data from the storage location that has not been modified in the production data set, and after scanning the bit map, transmitting data to the secondary storage from storage locations allocated to the snapshot copy.
Claim 8
Dependent Claim 341 words
In a data storage system including data storage, a method of maintaining in the data storage a snapshot copy of a production data set including a multiplicity of storage locations in the data storage, the production data set being accessible to a host processor for read/write access during maintenance of the snapshot copy, the snapshot copy including data existing in the production data set at a time when the snapshot copy is created, said method including: the data storage system responding to a request from the host processor for a write operation upon a storage location of the production data set by checking whether or not the storage location of the production data set has been modified since the time when the snapshot copy was created, and upon finding that the storage location of the production data set has not been modified since the time when the snapshot copy was created, copying data from the storage location of the production data set to an allocated storage location of the snapshot copy, and after copying data from the storage location of the production data set to the allocated storage location of the snapshot copy, performing the write operation upon the storage location of the production data set, wherein the checking whether or not the storage location of the production data set has been modified since the time when the snapshot copy was created includes testing a bit for the storage location of the production data set, the bit being a bit of a bit map for the snapshot copy, and which includes migrating the snapshot copy from the data storage system to secondary storage by scanning the bit map, and for each bit in the bit map that indicates a storage location that has not been modified in the production data set, copying to the secondary storage data from the storage location that has not been modified in the production data set, and after scanning the bit map, transmitting data to the secondary storage from storage locations allocated to the snapshot copy.
Claim 9
Dependent Claim 41 words
The method as claimed in claim 4 , which includes changing said each bit upon obtaining confirmation that the data from the storage location that has not been modified in the production data set has been copied to the secondary storage.
Claim 10
Dependent Claim 347 words
A data storage system comprising data storage and at least one data processor responsive to requests from a host processor for read/write access to a production data set including multiple storage locations in the data storage, the data processor being programmed to maintain in the data storage a snapshot copy of the production data set, the snapshot copy including data existing in the production data set at a time when the snapshot copy is created, wherein the data processor is programmed to respond to a request from the host processor for a write operation upon a storage location of the production data set by checking whether or not the storage location of the production data set has been modified since the time when the snapshot copy was created, and upon finding that the storage location of the production data set has not been modified since the time when the snapshot copy was created, copying data from the storage location of the production data set to an allocated storage location of the snapshot copy, and after copying data from the storage location of the production data set to the allocated storage location of the snapshot copy, performing the write operation upon the storage location of the production data set, wherein the checking whether or not the storage location of the production data set has been modified since the time when the snapshot copy was created includes testing a bit for the storage location of the production data set, the bit being a bit of a bit map for the snapshot copy, and wherein the data processor is programmed to migrate the snapshot copy from the data storage system to secondary storage by scanning the bit map, and for each bit in the bit map that indicates a storage location that has not been modified in the production data set, copying to secondary storage data from the storage location that has not been modified in the production data set, and after scanning the bit map, transmitting data to the secondary storage from storage locations allocated to the snapshot copy.
Claim 11
Dependent Claim 347 words
A data storage system comprising data storage and at least one data processor responsive to requests from a host processor for read/write access to a production data set including multiple storage locations in the data storage, the data processor being programmed to maintain in the data storage a snapshot copy of the production data set, the snapshot copy including data existing in the production data set at a time when the snapshot copy is created, wherein the data processor is programmed to respond to a request from the host processor for a write operation upon a storage location of the production data set by checking whether or not the storage location of the production data set has been modified since the time when the snapshot copy was created, and upon finding that the storage location of the production data set has not been modified since the time when the snapshot copy was created, copying data from the storage location of the production data set to an allocated storage location of the snapshot copy, and after copying data from the storage location of the production data set to the allocated storage location of the snapshot copy, performing the write operation upon the storage location of the production data set, wherein the checking whether or not the storage location of the production data set has been modified since the time when the snapshot copy was created includes testing a bit for the storage location of the production data set, the bit being a bit of a bit map for the snapshot copy, and wherein the data processor is programmed to migrate the snapshot copy from the data storage system to secondary storage by scanning the bit map, and for each bit in the bit map that indicates a storage location that has not been modified in the production data set, copying to secondary storage data from the storage location that has not been modified in the production data set, and after scanning the bit map, transmitting data to the secondary storage from storage locations allocated to the snapshot copy.
Claim 12
Dependent Claim 48 words
The data storage system as claimed in claim 6 , wherein the data processor is programmed to change said each bit upon obtaining confirmation that the data from the storage location that has not been modified in the production data set has been copied to the secondary storage.
Claim 13
Dependent Claim 373 words
A program storage device containing a program for a data processor in a data storage system including data storage, the data processor being responsive to requests from a host processor for read/write access to a production data set including multiple storage locations in the data storage, the program being executable by the data processor for maintaining in the data storage a snapshot copy of the production data set, the snapshot copy including data existing in the production data set at a time when the snapshot copy is created, wherein the program is executable by the data processor for responding to a request from the host processor for a write operation upon a storage location of the production data set by checking whether or not the storage location of the production data set has been modified since the time when the snapshot copy was created, and upon finding that the storage location of the production data set has not been modified since the time when the snapshot copy was created, copying data from the storage location of the production data set to an allocated storage location of the snapshot copy, and after copying data from the storage location of the production data set to the allocated storage location of the snapshot copy, performing the write operation upon the storage location of the production data set, wherein the program is executable by the data processor for checking whether or not the storage location of the production data set has been modified since the time when the snapshot copy was created by testing a bit for the storage location of the production data set, the bit being a bit of a bit map for the snapshot copy, wherein the program is executable by the data processor for migrating the snapshot copy from the data storage system to secondary storage by scanning the bit map, and for each bit in the bit map that indicates a storage location that has not been modified in the production data set, copying to secondary storage data from the storage location that has not been modified in the production data set, and after scanning the bit map, transmitting data to the secondary storage from storage locations allocated to the snapshot copy.
Claim 14
Dependent Claim 373 words
A program storage device containing a program for a data processor in a data storage system including data storage, the data processor being responsive to requests from a host processor for read/write access to a production data set including multiple storage locations in the data storage, the program being executable by the data processor for maintaining in the data storage a snapshot copy of the production data set, the snapshot copy including data existing in the production data set at a time when the snapshot copy is created, wherein the program is executable by the data processor for responding to a request from the host processor for a write operation upon a storage location of the production data set by checking whether or not the storage location of the production data set has been modified since the time when the snapshot copy was created, and upon finding that the storage location of the production data set has not been modified since the time when the snapshot copy was created, copying data from the storage location of the production data set to an allocated storage location of the snapshot copy, and after copying data from the storage location of the production data set to the allocated storage location of the snapshot copy, performing the write operation upon the storage location of the production data set, wherein the program is executable by the data processor for checking whether or not the storage location of the production data set has been modified since the time when the snapshot copy was created by testing a bit for the storage location of the production data set, the bit being a bit of a bit map for the snapshot copy, wherein the program is executable by the data processor for migrating the snapshot copy from the data storage system to secondary storage by scanning the bit map, and for each bit in the bit map that indicates a storage location that has not been modified in the production data set, copying to secondary storage data from the storage location that has not been modified in the production data set, and after scanning the bit map, transmitting data to the secondary storage from storage locations allocated to the snapshot copy.
Claim 15
Dependent Claim 51 words
The program storage device as claimed in claim 8 , wherein the program is executable by the data processor for changing said each bit upon obtaining confirmation that the data from the storage location that has not been modified in the production data set has been copied to the secondary storage.
Claim 16
Dependent Claim 431 words
In a data storage system including data storage, a method of maintaining in the data storage a snapshot copy of a production data set, the production data set including a multiplicity of storage locations in the data storage, the production data set being accessible to a host processor for read/write access during maintenance of the snapshot copy, the snapshot copy including data existing in the production data set at a time when the snapshot copy is created, said method including: the data storage system allocating to the snapshot copy a bit map for the data set and a list of pointers, the bit map including a bit for each storage location of the production data set to indicate whether or not said each storage location has been modified since the time when the snapshot copy is created, and the data storage system responding to a request from the host processor for a write operation upon a storage location of the production data set by checking the bit in the bit map for the storage location of the production data set to determine whether or not the storage location of the production data set has been modified since the time when the snapshot copy was created, and upon finding that the storage location of the production data set has not been modified since the time when the snapshot copy was created, allocating a storage location to the snapshot copy, copying data from the storage location of the production data set to the allocated storage location of the snapshot copy, placing a pointer to the allocated storage location of the snapshot copy on the list of pointers allocated to the snapshot copy, changing the bit in the bit map for the storage location of the production data set, and after copying data from the storage location of the production data set to the allocated storage location of the snapshot copy, performing the write operation upon the storage location of the production data set, which includes migrating the snapshot copy from the data storage system to secondary storage by scanning the bit map, and for each bit in the bit map that indicates a storage location of the production data set that has not been modified since the time when the snapshot copy was created, copying to the secondary storage data from the storage location of the production data set that has not been modified since the time when the snapshot copy was created, and after scanning the bit map, transmitting data to the secondary storage from storage locations allocated to the snapshot copy.
Claim 17
Dependent Claim 431 words
In a data storage system including data storage, a method of maintaining in the data storage a snapshot copy of a production data set, the production data set including a multiplicity of storage locations in the data storage, the production data set being accessible to a host processor for read/write access during maintenance of the snapshot copy, the snapshot copy including data existing in the production data set at a time when the snapshot copy is created, said method including: the data storage system allocating to the snapshot copy a bit map for the data set and a list of pointers, the bit map including a bit for each storage location of the production data set to indicate whether or not said each storage location has been modified since the time when the snapshot copy is created, and the data storage system responding to a request from the host processor for a write operation upon a storage location of the production data set by checking the bit in the bit map for the storage location of the production data set to determine whether or not the storage location of the production data set has been modified since the time when the snapshot copy was created, and upon finding that the storage location of the production data set has not been modified since the time when the snapshot copy was created, allocating a storage location to the snapshot copy, copying data from the storage location of the production data set to the allocated storage location of the snapshot copy, placing a pointer to the allocated storage location of the snapshot copy on the list of pointers allocated to the snapshot copy, changing the bit in the bit map for the storage location of the production data set, and after copying data from the storage location of the production data set to the allocated storage location of the snapshot copy, performing the write operation upon the storage location of the production data set, which includes migrating the snapshot copy from the data storage system to secondary storage by scanning the bit map, and for each bit in the bit map that indicates a storage location of the production data set that has not been modified since the time when the snapshot copy was created, copying to the secondary storage data from the storage location of the production data set that has not been modified since the time when the snapshot copy was created, and after scanning the bit map, transmitting data to the secondary storage from storage locations allocated to the snapshot copy.
Claim 18
Dependent Claim 437 words
A data storage system comprising data storage and at least one data processor responsive to requests from a host processor for read/write access to a production data set including multiple storage locations in the data storage, the data processor being programmed to maintain in the data storage a snapshot copy of the production data set, the snapshot copy including data existing in the production data set at a time when the snapshot copy is created, wherein the data processor is programmed to allocate to the snapshot copy a bit map for the data set and a list of pointers, the bit map including a bit for each storage location of the production data set to indicate whether or not said each storage location has been modified since the time when the snapshot copy is created, and wherein the data processor is programmed to respond to a request from the host processor for a write operation upon a storage location of the production data set by checking the bit in the bit map for the storage location of the production data set to determine whether or not the storage location of the production data set has been modified since the time when the snapshot copy was created, and upon finding that the storage location of the production data set has not been modified since the time when the snapshot copy was created, allocating a storage location to the snapshot copy, copying data from the storage location of the production data set to the allocated storage location of the snapshot copy, placing a pointer to the allocated storage location of the snapshot copy on the list of pointers allocated to the snapshot copy, changing the bit in the bit map for the storage location of the production data set, and after copying data from the storage location of the production data set to the allocated storage location of the snapshot copy, performing the write operation upon the storage location of the production data set, wherein the data processor is programmed to migrate the snapshot copy from the data storage system to secondary storage by scanning the bit map, and for each bit in the bit map that indicates a storage location of the production data set that has not been modified since the time when the snapshot copy was created, copying to the secondary storage data from the storage location of the production data set that has not been modified since the time when the snapshot copy was created, and after scanning the bit map, transmitting data to the secondary storage from storage locations allocated to the snapshot copy.
Claim 19
Dependent Claim 437 words
A data storage system comprising data storage and at least one data processor responsive to requests from a host processor for read/write access to a production data set including multiple storage locations in the data storage, the data processor being programmed to maintain in the data storage a snapshot copy of the production data set, the snapshot copy including data existing in the production data set at a time when the snapshot copy is created, wherein the data processor is programmed to allocate to the snapshot copy a bit map for the data set and a list of pointers, the bit map including a bit for each storage location of the production data set to indicate whether or not said each storage location has been modified since the time when the snapshot copy is created, and wherein the data processor is programmed to respond to a request from the host processor for a write operation upon a storage location of the production data set by checking the bit in the bit map for the storage location of the production data set to determine whether or not the storage location of the production data set has been modified since the time when the snapshot copy was created, and upon finding that the storage location of the production data set has not been modified since the time when the snapshot copy was created, allocating a storage location to the snapshot copy, copying data from the storage location of the production data set to the allocated storage location of the snapshot copy, placing a pointer to the allocated storage location of the snapshot copy on the list of pointers allocated to the snapshot copy, changing the bit in the bit map for the storage location of the production data set, and after copying data from the storage location of the production data set to the allocated storage location of the snapshot copy, performing the write operation upon the storage location of the production data set, wherein the data processor is programmed to migrate the snapshot copy from the data storage system to secondary storage by scanning the bit map, and for each bit in the bit map that indicates a storage location of the production data set that has not been modified since the time when the snapshot copy was created, copying to the secondary storage data from the storage location of the production data set that has not been modified since the time when the snapshot copy was created, and after scanning the bit map, transmitting data to the secondary storage from storage locations allocated to the snapshot copy.
Claim 20
Dependent Claim 47 words
The data processor as claimed in claim 11 , wherein the data processor is programmed to change said each bit upon obtaining confirmation that the data from the storage location that has not been modified in the production data set has been copied to the secondary storage.
Claim 21
Dependent Claim 459 words
A program storage device containing a program for a data processor in a data storage system including data storage, the data processor being responsive to requests from a host processor for read/write access to a production data set including multiple storage locations in the data storage, the program being executable by the data processor for maintaining in the data storage a snapshot copy of the production data set, the snapshot copy including data existing in the production data set at a time when the snapshot copy is created, wherein the program is executable by the data processor for allocating to the snapshot copy a bit map for the data set and a list of pointers, the bit map including a bit for each storage location of the production data set to indicate whether or not said each storage location has been modified since the time when the snapshot copy is created, and wherein the program is executable by the data processor for responding to a request from the host processor for a write operation upon a storage location of the production data set by checking the bit in the bit map for the storage location of the production data set to determine whether or not the storage location of the production data set has been modified since the time when the snapshot copy was created, and upon finding that the storage location of the production data set has not been modified since the time when the snapshot copy was created, allocating a storage location to the snapshot copy, copying data from the storage location of the production data set to the allocated storage location of the snapshot copy, placing a pointer to the allocated storage location of the snapshot copy on the list of pointers allocated to the snapshot copy, changing the bit in the bit map for the storage location of the production data set, and after copying data from the storage location of the production data set to the allocated storage location of the snapshot copy, performing the write operation upon the storage location of the production data set, wherein the program is executable by the data processor for migrating the snapshot copy from the data storage system to secondary storage by scanning the bit map, and for each bit in the bit map that indicates a storage location of the production data set that has not been modified since the time when the snapshot copy was created, copying to the secondary storage data from the storage location of the production data set that has not been modified since the time when the snapshot copy was created, and after scanning the bit map, transmitting data to the secondary storage from storage locations allocated to the snapshot copy.
Claim 22
Dependent Claim 459 words
A program storage device containing a program for a data processor in a data storage system including data storage, the data processor being responsive to requests from a host processor for read/write access to a production data set including multiple storage locations in the data storage, the program being executable by the data processor for maintaining in the data storage a snapshot copy of the production data set, the snapshot copy including data existing in the production data set at a time when the snapshot copy is created, wherein the program is executable by the data processor for allocating to the snapshot copy a bit map for the data set and a list of pointers, the bit map including a bit for each storage location of the production data set to indicate whether or not said each storage location has been modified since the time when the snapshot copy is created, and wherein the program is executable by the data processor for responding to a request from the host processor for a write operation upon a storage location of the production data set by checking the bit in the bit map for the storage location of the production data set to determine whether or not the storage location of the production data set has been modified since the time when the snapshot copy was created, and upon finding that the storage location of the production data set has not been modified since the time when the snapshot copy was created, allocating a storage location to the snapshot copy, copying data from the storage location of the production data set to the allocated storage location of the snapshot copy, placing a pointer to the allocated storage location of the snapshot copy on the list of pointers allocated to the snapshot copy, changing the bit in the bit map for the storage location of the production data set, and after copying data from the storage location of the production data set to the allocated storage location of the snapshot copy, performing the write operation upon the storage location of the production data set, wherein the program is executable by the data processor for migrating the snapshot copy from the data storage system to secondary storage by scanning the bit map, and for each bit in the bit map that indicates a storage location of the production data set that has not been modified since the time when the snapshot copy was created, copying to the secondary storage data from the storage location of the production data set that has not been modified since the time when the snapshot copy was created, and after scanning the bit map, transmitting data to the secondary storage from storage locations allocated to the snapshot copy.
Claim 23
Dependent Claim 51 words
The program storage device as claimed in claim 13 , wherein the program is executable by the data processor for changing said each bit upon obtaining confirmation that the data from the storage location that has not been modified in the production data set has been copied to the secondary storage.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2005-08-12 2006-02-11 2006-08-13 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2009-08-12 2010-02-11 2010-08-13 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2013-08-12 2014-02-11 2014-08-13 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag