Disclosed is a method in distributed data-storage systems that associate timestamps 3000 with each data block in each data-storage-component. The timestamps are used for deciding whether or not a data block has been written. A sparse database of the timestamps is maintained, each timestamp having a field that contains one of an indication of a time or sequence 3004 and a sentinel value indicating that the timestamp is garbage collected. When a timestamp is not found associated with a data block in a timestamp database, the data block is associated with a garbage-collected-timestamp state. Data structures may be maintained that store status information indicating whether or not any of a number of data blocks in each of a number of data-block-allocation units have been written. During replication, migration, or reconfiguration of a current segment of data blocks to a new segment, a block is determined to be written or not, by determining, from the data structures, whether or not a block-allocation unit containing the block is written or unwritten.
展开▼