On Sat, Oct 03, 2009 at 11:34:40AM +0530, Piyush P Kurur wrote: > Hi, > > I am part of a group of people who run a mirror for some GNU/Linux > distros. I have a question regarding how rsync works. The question is > prompted by the frequent overloading of rsync mirrors. > > > If I am not mistaken the overall idea behind rsync is the following (I > am assuming that dest wants to update form src) > > (1) dest computes a signature of the current snapshot of its file > system sends to src. > > (2) src goes over the its current snapshot and calculates a delta > (changes) from the signature that dest sends. > > (3) src then sends the delta to dest and dest updates. > > > Although this seems fine for a single source single destination > system, doesint it lead to overloading of src when there are multiple > dest, like in the case of mirroring, src has to compute the delta > which is a time consuming process. > > Alternatively if the src can do the delta computation once and for all > then it will improve the efficiency a lot. One can imagine that a > destination mirror can keep track of a snapshot time when it last > synced and send the src just this. src keeps track of all the deltas, > somewhat like rdiff-backup and then sends the dest all the deltas that > will get it uptodate. > > Regards > > ppk I never used rsync before but If I understand correctly : rsync hashsums the files in src and dest and checks for file lists . It removes and adds files according to the file lists and compares the hashsums of existing files . If the hashsum is different , It replaces the files in dest with the ones in src . Rsync is not a binary delta implementation .