A method, device and computer program product for managing data versions.
The method includes: (i) receiving a first request to generate a first
version of a source volume; (ii) selectively updating a first control
data structure that is indicative of changes of blocks of data associated
with different versions of the source volume, in response to the first
request, to reflect at least one latest modified block of data that was
modified between a first point in time associated with the first version
and between second point in time associated with a second version of the
first source volume; wherein information representative of different
versions of the source volume are stored in a target storage unit; and
wherein blocks of data that remain unchanged between multiple versions of
the source volume are shared between these multiple versions; wherein the
first point in time follows the second point in time and wherein the at
least one block data belongs to the volume; and (iii) selectively copying
blocks of data from the source volume to the target volume in response to
the content of the first control data structure.