The present invention provides a method for providing snapshots of data at
different times and for performing rollbacks to a selected snapshot that
does not result in any subsequent snapshots being rendered unusable. The
method includes a mapping mechanism wherein when a map entry for a block
being written to for the first time during a session exists, then another
map entry is created and all later sessions are applied to it. When a map
entry for the block does not exist, a new map entry is provided and all
prior sessions are applied to it.