A method for storing point-in-time data, comprising: establishing a block size; providing source data storage space comprising blocks; providing target data storage space comprising blocks, wherein is less than; configuring source storage segments and target storage segments, wherein each source storage segment comprises [ /] blocks, and wherein each target storage segment comprises [ /] blocks; receiving updated point-in-time data for original point-in-time data written to an (i)th source storage segment; setting (j) equal to (i); determining if a (j)th target storage segment comprises available storage capacity to store said original point-in-time data; responsive to said (j)th target storage segment comprising available storage capacity to store said original point-in-time data, writing said original point-in-time data to said (j)th target storage segment; responsive to said (j)th target storage segment not comprising available storage capacity to store said updated point-in-time data: determining if (j) equals; and responsive to (j) not equalling, incrementing (j) by 1; and determining if a (j)th target storage segment comprises available storage capacity to store said original point-in-time data; responsive to (j) equalling setting (j) equal to (i-1); determining if said (j)th target storage segment comprises available storage capacity to store said updated point-in-time data; responsive to said (j)th target storage segment comprising available storage capacity to store said updated point-in-time data, writing said original point-in-time data to said (j)th target storage segment; wherein,,, (i) and (j) are numerals. establishing a block size; providing source data storage space comprising blocks; providing target data storage space comprising blocks, wherein is less than; configuring source storage segments and target storage segments, wherein each source storage segment comprises [ /] blocks, and wherein each target storage segment comprises [ /] blocks; receiving updated point-in-time data for original point-in-time data written to an (i)th source storage segment; setting (j) equal to (i); determining if a (j)th target storage segment comprises available storage capacity to store said original point-in-time data; responsive to said (j)th target storage segment comprising available storage capacity to store said original point-in-time data, writing said original point-in-time data to said (j)th target storage segment; responsive to said (j)th target storage segment not comprising available storage capacity to store said updated point-in-time data: determining if (j) equals; and responsive to (j) not equalling, incrementing (j) by 1; and determining if a (j)th target storage segment comprises available storage capacity to store said original point-in-time data; responsive to (j) equalling setting (j) equal to (i-1); determining if said (j)th target storage segment comprises available storage capacity to store said updated point-in-time data; responsive to said (j)th target storage segment comprising available storage capacity to store said updated point-in-time data, writing said original point-in-time data to said (j)th target storage segment; wherein,,, (i) and (j) are numerals. determining if (j) equals; and responsive to (j) not equalling, incrementing (j) by 1; and determining if a (j)th target storage segment comprises available storage capacity to store said original point-in-time data; responsive to (j) equalling setting (j) equal to (i-1); determining if said (j)th target storage segment comprises available storage capacity to store said updated point-in-time data; responsive to said (j)th target storage segment comprising available storage capacity to store said updated point-in-time data, writing said original point-in-time data to said (j)th target storage segment; wherein,,, (i) and (j) are numerals.