Subject: [bug#33600] CDN performance

From: Meiyo Peng <[email-masked]>
Date: Tue, 11 Dec 2018 13:17:05 +0800

Hi,

I have changed my mind. I don't care about the domain name of the
default substitute server any more. I am more worried about the network
speed within China. While I am writing this email, my computer is
downloading substitutes from ci.guix.info at an average speed of about
50kB/s.

After careful thought, I realized the new CDN won't benefit China
residents as planned. Any popular CDN outside China is significantly
throttled by ISP/GFW and the situation is worse every year. A CDN will
be a great improvement for western countries but not for many asia
countries.

I have been running a nginx caching mirror at home since the first time
I met guix. My first attempt to install guix took me one afternoon and
one night. Most of the time was wasted on downloading substitutes. After
that, I searched online and found the nginx mirror configuration in
guix/maintenance.git. Then I set up my own caching mirror. It would be
extremely painful for me to play with guix during these months without
this caching mirror. Debian was my favorite GNU/Linux distro before I
discovered Guix. It usually costs me only 30 minutes to install Debian
from scratch. Other GNU/Linux distros are about the same. If guix takes
more than 5 hours to install, most new users will be scared away.

Although now there are only a few Chinese guix users, I still prefer to
set up a caching mirror within China. The user experience improvement
will be significant. Like Hartmut Goebel described, I need information
about "expected storage demand, expected transfer traffic from upstream,
how often updates are published, how long to hold copies" so I can write
a proposal to maintainers of mirrors.ustc.edu.cn to add a new mirror for
guix. I tried the `guix weather` command, but it failed with an error:

#+BEGIN_EXAMPLE
  computing 8,821 package derivations for x86_64-linux...
  guix weather: error: lstat: No such file or directory: "/src/config/packages/patches/libjxr-add-cmakelists-file.patch"
#+END_EXAMPLE

Can anyone provide the numbers for me? The numbers of
mirror.hydra.gnu.org would be a good reference.

In addition, I think we should put up a page on guix's website providing
information about available substitute servers including address,
backend build farm, geolocation, maintainer, so users (many asia
residents) can pick the best substitute server for themselves. This will
be necessary until alternative solutions like IPFS or GNUnet are
implemented.

This email only describes the situation in China. I don't intend to
discourage you on the CDN plan. There is no conflicts between my
proposal to set up a caching mirror in China and our plan to set up a
new CDN.

--
Meiyo Peng