Patent ID: 7580959

Claim:
An apparatus for efficient creation of point-in-time versions of data using differencing in a read-before-write environment, the apparatus comprising: a receive module of a secondary data storage system, the receive module being configured to receive a data block sent from a primary data storage system via a communication path; a read module of the secondary data storage system, the read module being configured to read a data block from a secondary data storage device of the secondary data storage system into a random access memory of the secondary data storage system, the data block corresponding to the data block sent from the primary data storage system and the secondary storage device comprising a backup copy of data on a primary data storage device in the primary storage system, the primary data storage device comprising a copy of the received data block; a comparison module of the secondary data storage system, the comparison module configured to compare the data block sent from the primary data storage system with the data block from the secondary data storage device and to create a differencing data file comprising data to restore the received data block to a previous state corresponding to the data block from the secondary storage device; a compression module of the secondary data storage system, the compression module configured to compress the differencing data file and to create a compressed differencing data file; a differencing storage module of the secondary data storage system, the differencing storage module being configured to store the compressed differencing data file in a differencing storage device; and a block storage module of the secondary data storage system, the block storage module being configured to store the data block sent from the primary data storage system in the location of the data block from the secondary data storage device and to delete from the random access memory the data block from the secondary data storage device in response to one of creating the differencing data file and storing the compressed differencing data file.