Patent ID: 7206961

Claim:
A method of performing non-destructive rollback comprising: taking a first snapshot of a set of source logical unit blocks at a first time; taking a second snapshot of the set of source logical unit blocks at a second time later than the first time, taking the first snapshot or taking the second snapshot comprises: starting a session; and performing a Copy on First Write (COFW) operation on data being written to for the first time during the session, performing the COFW operation comprises: providing a map entry for a logical unit block being written to; storing data contained in the logical unit block to a snapshot storage area; and providing a pointer from the map entry to the data in the snapshot storage area; performing a rollback to the first snapshot; and preserving the second snapshot, the second snapshot may be used for a subsequent rollback; wherein providing the map entry comprises determining if the map entry for the block being written to already exists and if the map entry does exist, producing another map entry configured to associate all later sessions to the another map entry.