On Wed, Jan 11, 2012 at 6:52 PM, Allan McRae <allan@archlinux.org> wrote:
On 12/01/12 07:42, Dan McGee wrote:
Rework the frontend and backend to allow passing a ratio value in for UseDelta rather than having a hardcoded #define-d 0.7 value always used. This is useful for those with fast connections, who would likely benefit from tuning this ratio to lower values; it is also useful for general testing purposes.
The libalpm API changes for this, but we do support the old config file format with a no-value 'UseDelta' option; in this case we simply use the old default of 0.7.
We clamp the ratio values to a sane range between 0.0 and 2.0, allowing ratios above 1.0 for testing purposes.
Signed-off-by: Dan McGee <dan@archlinux.org>
Ack-by: Allan
Looks good from some basic testing here.
My only thought (which is possibly full of bikeshed, so feel free to ignore...) was do we really want to stick with a ratio or move to an absolute size difference? 0.9 of a 100MB package is much more useful than 0.9 of a 1KB package.
$ pacman -Si | grep 'Download Size' | sort -k4 -n > /tmp/sizes.txt 4278 of 5490 packages available for me on x86_64 right now (77.9%) are under 1MiB in the sync repos right now; 5342 are less than 20MiB (97.3%). My guess is it isn't worth doing deltas at all for packages in the <1MiB group as the time to reconstitute the package will take longer than the download itself. With that said, what would your bikeshed idea look like? I can imagine something like `UseDelta = 5MiB` that would use deltas if the download size saved for that particular package was > 5MiB or something; the syntax seems a tad cryptic and not self-explanatory though. -Dan