| CPC G06F 3/0641 (2013.01) [G06F 3/0619 (2013.01); G06F 3/065 (2013.01); G06F 3/0673 (2013.01)] | 11 Claims | 

| 
               1. A method for data deduplication, comprising: 
            receiving, at a source data storage system, a request to write a first set of data blocks to the source data storage system; 
                in response to the request to write the first set of data blocks: 
                deduplicating the data blocks in the first set, each deduplicated data block having a corresponding number of duplications in data blocks originally written to the source data storage system; and 
                  compressing the deduplicated data blocks to obtain a second set of data blocks, each data block in the second set having a corresponding compression ratio; 
                receiving, at the source data storage system, a request for data back up; 
                in response to the request for data back up: 
              reconstructing the first set of data blocks from the second set of data blocks; 
                  marking the reconstructed data blocks with deduplication flags to obtain a third set of data blocks, each deduplication flag indicating whether a deduplication operation needs to be performed on a respective data block from among the data blocks in the third set; and 
                  transmitting the third set of data blocks to a destination storage system. 
                 |