A method for de-duplicating data in a data storage system comprising a file system server, wherein the file system server is configured to store different versions of the file system representing different checkpoints of the file system, including a current version of the file system and one or more checkpoint versions being snapshot copies of the file system, and comprises: a computer system including a processor configured to execute an operating system and further software components executed on the operating system, the software components including a de-duplication management component, and a programmable logic device interfacing with the computer system and including a file system management unit configured to manage the file system; the method comprising: - identifying, among plural data units of data relating to the file system, a candidate data unit for de-duplication by the computer system based on a predetermined checkpoint range of the one or more checkpoint versions of the file system; - requesting, by the computer system, the programmable logic device to transmit a hash value for the identified candidate data unit; - returning, by the programmable logic device, the requested hash value for the identified candidate data unit to the computer system; and - requesting, by the computer system, the programmable logic device to de-duplicate the identified candidate data unit when the identified candidate data unit is determined to be a duplicate of a previously indexed data unit on the basis of the received hash value. a computer system including a processor configured to execute an operating system and further software components executed on the operating system, the software components including a de-duplication management component, and a programmable logic device interfacing with the computer system and including a file system management unit configured to manage the file system; the method comprising: - identifying, among plural data units of data relating to the file system, a candidate data unit for de-duplication by the computer system based on a predetermined checkpoint range of the one or more checkpoint versions of the file system; - requesting, by the computer system, the programmable logic device to transmit a hash value for the identified candidate data unit; - returning, by the programmable logic device, the requested hash value for the identified candidate data unit to the computer system; and - requesting, by the computer system, the programmable logic device to de-duplicate the identified candidate data unit when the identified candidate data unit is determined to be a duplicate of a previously indexed data unit on the basis of the received hash value. - identifying, among plural data units of data relating to the file system, a candidate data unit for de-duplication by the computer system based on a predetermined checkpoint range of the one or more checkpoint versions of the file system; - requesting, by the computer system, the programmable logic device to transmit a hash value for the identified candidate data unit; - returning, by the programmable logic device, the requested hash value for the identified candidate data unit to the computer system; and - requesting, by the computer system, the programmable logic device to de-duplicate the identified candidate data unit when the identified candidate data unit is determined to be a duplicate of a previously indexed data unit on the basis of the received hash value.