Gentoo Archives: gentoo-scm

From: "Robin H. Johnson" <robbat2@g.o>
To: gentoo-scm@l.g.o
Subject: Re: [gentoo-scm] Re: [gentoo-dev] Progress on cvs->git migration
Date: Wed, 24 Aug 2011 10:09:00
Message-Id: robbat2-20110824T092242-590982857Z@orbis-terrarum.net
In Reply to: Re: [gentoo-scm] Re: [gentoo-dev] Progress on cvs->git migration by Eray Aslan
1 On Wed, Aug 24, 2011 at 11:48:05AM +0300, Eray Aslan wrote:
2 > On Wed, Aug 24, 2011 at 07:30:11AM +0000, Robin H. Johnson wrote:
3 > > Bandwidth: Along the same lines, rsync will always be able to use less
4 > > bandwidth than Git, because none of the intermediate commits need to be
5 > > transfered. This will be esp. evident as a user tree gets older (the
6 > > amount of mtime/checksum metadata scales linearly with the size of the
7 > > tree, not the age of the tree.
8 > Yes, rsync protocol scales with the project size.
9 > > The actual file content transfered scales linearly with the age of the tree).
10 > (assuming you are talking about git here)
11 > Uhm no? git protocol scales with chageset size. You don't retransfer
12 > already transferred content. So you will be tranferring only content
13 > from the last git pull.
14 No, I'm talking about rsync, not Git.
15
16 Rsync bandwidth usage comprises two parts:
17 1. Bandwidth used by the up-to-date-checks.
18 Scales with the size of the tree.
19 2. Bandwidth used by sending newest versions of files.
20 Scales with the number of changed files.
21
22 Let's call this B(checked) + B(changed)
23
24 However, most importantly, it's that rsync only sends the NEWEST version
25 of the files, not the complete history.
26
27 Git bandwidth usage comprises one thing, the set of commits since the
28 last time you did a fetch.
29
30 Let's call this B(commits)
31
32 If you run rsync very frequently, B(changed) tends towards zero,
33 while B(checked) becomes constant.
34
35 If you run git very frequently, B(commits) tends towards zero.
36
37 Now, the important thing happens when you run them seldom.
38 The sum of B(changed)+B(checked) will become smaller than B(commits)
39 when there are many commits that have been superseded by newer commits.
40
41 Yes, there are cases where EITHER side can win, but for the rate of
42 change of the tree and how often rsync should be used (not more than
43 every 12 hours), I believe that the rsync bandwidth usage will be less
44 than that of Git.
45
46 --
47 Robin Hugh Johnson
48 Gentoo Linux: Developer, Trustee & Infrastructure Lead
49 E-Mail : robbat2@g.o
50 GnuPG FP : 11AC BA4F 4778 E3F6 E4ED F38E B27B 944E 3488 4E85