An embodiment of the invention provides a method for creating a snapshot
of a data store. A command to create a snapshot of an original data
store, stored to a parent virtual logical unit (VLU), is received. A
deferred propagation data structure (DPDS) is associated with the parent
VLU. The DPDS is capable of containing data propagation records and
separators, each data propagation record contains a previous version of
one or more data blocks of the parent VLU, each separator contains a
pointer to a particular child VLU storing a snapshot of the original data
store and separating the data propagation records pertaining to the
particular child VLU. A child VLU to store the copy of the original data
store is created. A new separator containing a pointer to the child VLU
is created in the DPDS. A search pointer pointing to the DPDS is
implemented in the child VLU.