From Fedora Project Wiki
(move to new category naming)
No edit summary
 
(18 intermediate revisions by 8 users not shown)
Line 1: Line 1:
= DeltaRPM Support (Presto) =
= DeltaRPM Support (Presto) =


== Summary ==
== Summary ==


The presto plugin for yum adds support for downloading deltarpms and using them to generate new packages.  If we ship and enable this plugin by default, we can make a substantial dent in the amount of data having to be downloaded by our users for updates.
The presto plugin for yum adds support for downloading deltarpms and using them to generate new packages.  If user enables this plugin, it will make a substantial dent in the amount of data having to be downloaded for updates.


== Owner ==
== Owners ==
* Name: JeremyKatz, WarrenTogami
* Name: LukeMacken, SethVidal


== Current status ==
== Current status ==
* Targeted release:  [[Releases/10|  Fedora 10]]
* Targeted release:  [[Releases/11|  Fedora 11]]
* Last modified: 2008-04-03
* Last modified: 2009-03-02
* Percentage of completion: 82%
* Percentage of completion: 100%
* [https://fedorahosted.org/bodhi/ticket/160 bodhi ticket #160] for more details.
* need to figure out where we want to put the deltarpm files and get our compose/push tools to add the options for it.


=== Details ===
=== Details ===
Line 19: Line 19:
* Well over 100 users (closer to 200) have been using the plugin in conjunction with unofficial presto-enabled repositories with no fatal (i.e. yum breaks) errors since August.
* Well over 100 users (closer to 200) have been using the plugin in conjunction with unofficial presto-enabled repositories with no fatal (i.e. yum breaks) errors since August.
* XML format is cleaned up and has a schema for validity checking
* XML format is cleaned up and has a schema for validity checking
* Plans for integrating into the build system are at [[Infrastructure/PrestoBuildsysIntegration]]
* createrepo has code to generate deltarpms and presto xml metadata.
* code is all ready to go - plan is to have a test for f11alpha->f11beta upgrades


== Usage cases/rationale ==
== Usage cases/rationale ==
Line 29: Line 30:
== Scope ==
== Scope ==


Requires that the yum-presto plugin be included by default.  Also requires some infrastructure work on the buildsystem and compose tools so that we can ensure that deltas are included in the -updates repositories.
Requires that the yum-presto metadata be created/available by default.  Also requires infrastructure work on the buildsystem and compose tools so that we can ensure that deltas are included in the -updates repositories.
 
We will NOT be enabling yum-presto by default. Users can install this plugin if they wish and take advantage of the repositories having the presto/delta metadata.


== Test Plan ==
== How To Test ==


* Ensure that updates work using deltas rather than downloading full packages.
* Ensure that updates work using deltas rather than downloading full packages.
Line 58: Line 61:
== Release Notes ==
== Release Notes ==


Normally when you update a package in Fedora, you download an entire replacement package.  Most of the time (especially for the larger packages), most of the actual data in the updated package is the same as the original package, but you still end up downloading the full package.  Presto allows you to download the difference (called the ''delta'') between the package you have installed and the one you want to update to.  This can reduce the download size of updates by 60% - 80%.
Normally when you update a package in Fedora, you download an entire replacement package.  Most of the time (especially for the larger packages), most of the actual data in the updated package is the same as the original package, but you still end up downloading the full package.  Presto allows you to download the difference (called the ''delta'') between the package you have installed and the one you want to update to.  This can reduce the download size of updates by 60% - 80%. It is not enabled by default for this release. To make use of this feature you must install the yum-presto plugin: yum install yum-presto.


----


[[Category:FeaturePageIncomplete]]
[[Category:FeatureAcceptedF11]]

Latest revision as of 10:39, 1 May 2009

DeltaRPM Support (Presto)

Summary

The presto plugin for yum adds support for downloading deltarpms and using them to generate new packages. If user enables this plugin, it will make a substantial dent in the amount of data having to be downloaded for updates.

Owners

  • Name: LukeMacken, SethVidal

Current status

  • Targeted release: Fedora 11
  • Last modified: 2009-03-02
  • Percentage of completion: 100%
  • bodhi ticket #160 for more details.
  • need to figure out where we want to put the deltarpm files and get our compose/push tools to add the options for it.

Details

  • Plugin and tools exist in the repository
  • Well over 100 users (closer to 200) have been using the plugin in conjunction with unofficial presto-enabled repositories with no fatal (i.e. yum breaks) errors since August.
  • XML format is cleaned up and has a schema for validity checking
  • createrepo has code to generate deltarpms and presto xml metadata.
  • code is all ready to go - plan is to have a test for f11alpha->f11beta upgrades

Usage cases/rationale

Justin only has a dial-up connection available for his computer. Currently he has very little chance to actually keep up with the update churn of Fedora due to the amount of data being transferred. Adding presto support will reduce the amount of data he has to transfer and thus make it so that he can keep his Fedora system updated.

Barry pays for his network connection based on usage. Adding presto support will reduce the amount of data he has to transfer and thus reduce the cost for his network connection.

Scope

Requires that the yum-presto metadata be created/available by default. Also requires infrastructure work on the buildsystem and compose tools so that we can ensure that deltas are included in the -updates repositories.

We will NOT be enabling yum-presto by default. Users can install this plugin if they wish and take advantage of the repositories having the presto/delta metadata.

How To Test

  • Ensure that updates work using deltas rather than downloading full packages.
  • Ensure that changing files from a package lead to downloading the full package rather than the delta.
  • Ensure that changing a %config file from a package does not lead to downloading the full package.
  • Ensure that yum doesn't break when yum-presto runs into problems. (i.e. always fall back to downloading the full package if nothing else works)

Dependencies

The binary diff algorithm used in deltarpm is a version of bsdiff modified for speed.

Details

Contingency Plan

If things aren't working, then we just don't install and enable the plugin by default.

Documentation

See README for the documentation

Release Notes

Normally when you update a package in Fedora, you download an entire replacement package. Most of the time (especially for the larger packages), most of the actual data in the updated package is the same as the original package, but you still end up downloading the full package. Presto allows you to download the difference (called the delta) between the package you have installed and the one you want to update to. This can reduce the download size of updates by 60% - 80%. It is not enabled by default for this release. To make use of this feature you must install the yum-presto plugin: yum install yum-presto.