Methods and apparatuses for providing a data storage system having
snapshot restore capabilities are provided. In particular, snapshots may
be taken to represent a state of a storage volume at different times. The
state of the storage volume may be returned to the state represented by
any snapshot even while the storage volume continues to accept read and
write operations. Furthermore, these features are provided in the context
of a sparse snapshot structure, according to which multiple copies of
individual data chunks are not maintained by the data storage system.