A snapshot tree structure includes a base volume storing a current user
data, a first snapshot descending from the base volume, and a second
snapshot descending from the first snapshot, wherein the second snapshot
was created prior to the first snapshot. The first snapshot includes a
first table corresponding to first portions of block addresses, a second
table corresponding to second portions of the block addresses, and a
third table to third portions of the block addresses. The first table
includes an entry with a pointer to the second table. The second table
includes an entry with a pointer to the third table. The third table
includes an entry with a pointer to a data of the base volume before the
data is modified in the base volume.