Comment 10 for bug 214612

Revision history for this message
Colin Watson (cjwatson) wrote :

The "hash sum mismatch" problems that Clint mentioned were fixed differently (see https://www.chiark.greenend.org.uk/~cjwatson/blog/no-more-hash-sum-mismatch-errors.html).

I sympathise with the slow-link issues; at home I get 2.5Mbps down at the best of times. However, the Debian archive (where pdiffs were designed) cycles once every six hours, whereas the Ubuntu archive cycles much more frequently, potentially as often as once every five minutes if there are changes to be published. IIRC this is throttled for mirroring purposes so in practice most users don't see it cycling that frequently even in development releases, but from the point of view of publishing this means that we might well have to publish a very large number of small pdiffs; and this in turn means that apt would end up making lots of small requests to catch up, which could itself end up being pretty slow. A naïve implementation could well make things worse for a lot of people.

So, I think this project would likely involve working out how to merge some patches to produce a good trade-off between download size and number of requests; perhaps we can get away with just publishing merged diffs to the current version from every version since some time threshold ago (although we'd need to work out how to compute that efficiently), or perhaps we can have some coarser-grained patches as well and work out how to get apt to follow the resulting shorter patch path. It's not going to be just a matter of lifting and shifting the Debian implementation, although it should be possible to use the same on-disk format. https://wiki.debian.org/DebianRepository/Format#indices_difference_files_.28diffs.29 will probably be helpful to anyone working on this.