On 29.04.2016 13:29, Johannes Löthberg wrote:
Hey,
On 29/04, Lukas Fleischer wrote:
1. The list is outdated. Right now, it is updated every two hours. I do not think there is a good reason for those long intervals. Reducing it to, say, ten minutes should be totally fine. Or maybe even trigger list generation whenever a package is created or deleted (which is clearly a lot more work, though). Thoughts?
Generating it more often sounds good to me, and triggering it on create/delete does sound like a good thing to implement eventually, but would probably want to have a task queue thing set up for that, and have workers do the actual generation.
2. Transferring the whole package name list is inefficient. Even if we use gzip compression here, the whole list is several hundreds of kilobytes large. We need to retransfer the full list, even if only a single package is added. Maybe we can do better than pacman here. My idea is to add zsync support to the lists such that only relevant parts are downloaded (for those who do not know: zsync is like rsync but it works via HTTP as well and does not require any special software on the server side). I did not experiment with how much bandwidth we can actually save using this yet. Maybe the block size needs to be adjusted. Are there any opinions or other suggestions on this topic?
Did some testing locally with zsync, and curling the file locally took between 0.005 and 0.010 seconds. A first zsync download takes between 0.011 and 0.016 seconds. A zsync with no changes takes between 0.004 and 0.012 seconds.
It's a bit tricky to reliably test a zsync with a changed packages file since I don't have multiple different ones saved down, and modifying them myself will give different results from what the AUR creates, so it'd be hard to get representative results.
When I get a few versions of the file generated by the AUR I'll try doing it from my server, and with multiple zsyncs, but I'm not sure if it'll really matter much, since it takes just ~0.4 seconds to download the file from the AUR in the first place.
As a note, differences between downloading a complete version of the package archive, and just the differences, should be mainly noticeable on poor internet connections (dial-up, 3G, etc.)