On Tue, Oct 13, 2015 at 02:11:40PM +0200, Pjotr Prins wrote: > I just checked the substitute cache in /var/guix/substitute/cache and > these files are small (3K only!). So, all that pain to fetch a 3K file > :). I thought it was network related, but it is generating this cache > file that is expensive.
Well, there is one file per package. Assuming that one would limit the cache to only one architecture, that would still end up with 2500*3KB=7,5MB, a somewhat larger file. Still, my impression (also from using substitutes) is that _access_ to hydra is slow; once the download starts, even larger files arrive quite quickly (since nginx caching is enabled). So it may be much more efficient to download one bigger file once every three hours, than a small file for more or less each transaction. But this may be complicated to realise; what should the file be? Of course I am mainly thinking of one branch and its current list of packages - but which one? And nothing prevents people from remaining on some old git commit, and hydra will happily serve any package that is still available in its store. So the implementation would need to change from a reply to a simple request if some packages are available, to some logic on the hydra side guessing the list of packages a client might be interested in. So maybe just switching to a more powerful and reactive hydra machine would be the better way to solve this problem! Andreas PS: And we should stop "updating list of substitutes from 'http://hydra.gnu.org'" upon the command "guix package -r upower". Which list is requested during this call?