yum differential updates

n0dalus n0dalus+redhat at gmail.com
Mon Apr 10 13:21:24 UTC 2006


On 4/10/06, Jesse Keating <jkeating at redhat.com> wrote:
>
> SuSE can do something like this as I do believe they run all the
> mirrors.  Since Fedora is open and we allow redistribution, we have no
> control over the majority of the mirrors that carry our bits.  This
> means that mirrors could be Unix, could be Windows, could be Linux,
> could be OSX, could be anything.  Delta RPMS require the server to have
> some infrastructure in place to produce them on the fly, OR they have to
> carry deltas from every possible entry point.  This could easily
> increase the amount of data a mirror would have to carry by an order of
> magnitude.  Not very cool when we're already at multiple gigabites just
> for each Core release.

Whether or not an rpm is provided in delta format could be decided
automatically so as not to exceed a certain percentage of the size of
packages. This would mean that, for example, the size needed by a
mirror would not increase by more than 10%. The reduction in bandwidth
requirements could be much more than that.

They shouldn't need to be generated on the fly. Maybe SuSE generate
theirs server-side, but I don't see why a delta rpm would need this to
work.

> I have yet to see a proposal for doing Delta rpm like actions that
> wouldn't cause extreme pain to the mirroring system, which we are very
> dependent on.

Would the following cause pain for the mirroring system?:
- If changes to a package are less than x% of the size of the original
package, a diff rpm is made (and distributed through the mirror
system.)
- If the changes from one upgrade are much less than x% of the
original package, diff rpms could be provided for more than one
version upgrade (ie, for version 5 to 6, and from 6 to 7).
- More common packages could be weighted to have a higher % diff
allowance than less common packages.
- Metadata containing a list of diff packages provided along with
lists of files replaced or modified is distributed through the
mirrors.
- The package updater checks to see that local files match the
currently installed version, and if files other than provided by the
diff package have been modified, the full rpm is downloaded instead.
- The diff rpms contain a combination of binary diffs, text diffs and
file replacements or new files, along with the usual metadata and
post/pre/etc scripts. The rest of the information that would be found
in the full rpm is already verified to exist locally. The package is
compressed and signed as usual. If for some reason the upgrade fails,
the full rpm can be downloaded and tried.

n0dalus.




More information about the fedora-test-list mailing list