Welcome ===== This is the source code for RevDedup described in our paper presented in APSys 2013. The system is tested on Ubuntu 12.04. - July 2013 Setup ===== The program can be compiled using Linux make. There are four required libraries that users need to download separately. Brackets denote the package names in Debian and Ubuntu platforms. Users can use apt-get to install the required libraries. openssl (libssl-dev) gnutls (libgnutls-dev) curl (libcurl4-openssl-dev) MongoDB (mongodb) We provide two implementations: RevDedup (in folders client/ and server/) and Conventional deduplication (in folders convclient/ and convserver). The latter includes only global deduplication and has reverse deduplication disabled. How to run ===== (I) BACKUP Open two terminals. In the first terminal start the server rdserver in directory server. In the second terminal run the client rdclient in directory client by providing the location of the image and the instance name. For example, ./rdclient backups/image.raw instance1 All the data will be stored in directory data/ under the server directory. Run the script "prepare.sh" in the server directory before starting the server. If you want to use another partition to store the data, mount the partition on data/ before running the script. By default Revdedup runs in localhost (127.0.0.1) with port 5749. You can change the values by editing server/rdserver.h and client/rdclient.h (#define HOST and #define PORT). (II) RESTORE To restore the latest image version, run the following command: wget http://:/image/ To restore an earlier image version, run the following command: wget http://:/imageversion// with 0 the first version number. (III) CONVENTIONAL DEDUP To test the throughput of conventional deduplication, compile and run the program under directory convclient/ and convserver/, with the above procedures. Contact ===== Patrick P. C. Lee (http://www.cse.cuhk.edu.hk/~pclee)