DynamicMirrorDecisions

Differences between revisions 5 and 6
Revision 5 as of 2006-11-07 00:14:25
Size: 5333
Editor: 207
Comment:
Revision 6 as of 2006-11-08 20:33:26
Size: 5340
Editor: 207
Comment:
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
 * '''Packages affected''': `update-manager`  * '''Packages affected''': `update-manager`, `apt`

Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another knowledgeable person before making changes.

Summary

We would like Ubuntu to be able to ask for mirror recommendations and make efficient decisions as to which mirror to use - and to be able to do this after installation, as the mirror network expands and changes over time. Launchpad will hold the server-side data needed to inform any given desktop / server about it's recommended mirrors, and systems will in turn be able to tell Launchpad what they experience when interacting with those mirrors. The goal is to make the whole mirror infrastructure more dynamic.

Rationale

In order to keep an Ubuntu system up to date it is necessary to periodically download updates from the Ubuntu archive. Currently, users are only presented with the option to use a limited number of the mirrors of the Ubuntu archive that are available on the Internet. Typically, the longest part of an update is downloading new packages from the archive. The mirrors that are currently presented to a user may not be the fastest mirror available. Providing users with a tool to find mirrors and determine their speed based on a user's network access might allow for faster package downloads.

Use cases

  • Bob wants to speed up package downloads for his computer with Ubuntu installed. Using a tool on his computer he retrieves a list of mirrors from Launchpad which is displayed to him sorted by the physical location of the mirror server. Bob picks several mirrors and the software conducts tests on the mirror to determine the approximate speed of file transfers from a mirror to Bob's computer. After testing mirrors Bob picks the fastest mirror and his sources.list file is automatically updated to use his choice.
  • James wants to know which mirror to recommend for users coming from a particular network address. The update manager client tells Launchpad what it knows about the mirrors that have been recommended to it so far, and that information is aggregated from many users to improve recommendations based on autonomous zones.

Scope

This specification requires adding additional functionality to Software Properties and also ensuring that format of the mirror information in Launchpad is standardized.

Design

The user will need an application to retrieve the Ubuntu mirror list, test the speed of different mirrors, and update sources.list with the mirror that the user chooses.

Launchpad will have to ensure that mirror data is presented to clients in a standard way. Currently Launchpad only offers mirror information as a web page. It would be more efficient if the list of registered mirrors was offered as an RSS feed or some other format that is easily parseable.

Implementation

An implementation of the spec has already been started by a member of the community. The following items are still needed, at least, before a first cut could be used in an Ubuntu release:

  • Add code to Software Properties to download the mirror list from Launchpad
  • Create a new GUI for users to browse the mirror list and choose mirrors to test
  • Create a test to determine the approximate download speed for a particular mirror
    • The tool apt-spy on debian downloads the file ls-lR.gz to measure the speed

  • Figure out how to tell Launchpad about the effectiveness of different mirrors from a particular autonomous zone
    • Traceroute information to the mirrors, with ping times and packet loss
    • Throughput indicators
    • Dealing sanely with the fact that no single data point can be trusted (dial-up, network changes etc)
    • Excluding sensitive information from any uplink
  • Figure out how Launchpad should interpret that information

Code

An implementation is currently in development in the [https://launchpad.net/people/bmontgom/+branch/update-manager/mirrors mirrors] branch of Update Manager.

Unresolved issues

BoF agenda and discussion

Comments

  • BenjaminMontgomery: the code in the mirrors branch has a start of an implementation of this spec. Features that work are: downloading the list of mirrors from LP (currently parses the HTML of the mirror page), displaying a list of mirrors sorted by country to the user, testing the speed of the mirror by downloading a file, and selecting a mirror to pass back to the main part of Software Properties. For some reason the selected mirror gets passed back, but the GUI isn't updated correctly, sources.list gets updated so I'm assuming this is something I haven't done correctly with pygtk. Finally, I hate the GUI that I made. I would really like some feedback/help on how to make it more intuitive.

  • GuilhermeSalgado: Launchpad will soon provide an RSS feed for archive mirrors similar to the one for release mirrors (https://launchpad.net/distros/ubuntu/+cdmirrors-rss). The feed for archive mirrors will be accessible at https://launchpad.net/distros/ubuntu/+archivemirrors-rss.


CategorySpec

DynamicMirrorDecisions (last edited 2008-08-06 16:30:32 by localhost)