The open-source rsync utility reduces the time and bandwidth required to update a file across a network. Rsync uses an interactive protocol that detects changes in a file and sends only the changed data [18,19]. We have modified rsync so that it operates on space constrained devices. Files on the target host are updated in the same storage the current version of the file occupies. Space-constrained devices cannot use traditional rsync because it requires memory or storage for both the old and new version of the file. Examples include synchronizing files on cellular phones and handheld PCs, which have small memories. The in-place rsync algorithm encodes the compressed representation of a file in a graph, which is then topologically sorted to achieve the in-place property. We compare the performance of in-place rsync to rsync and conclude that in-place rsync degrades performance minimally.
David Rasch, Randal C. Burns