[zypp-devel] Proposal for libzypp4

While updating to the latest factory packages last night, it dawned on me on how inefficient the download -> install package cycle goes, specially since my downstream bandwidth (3.0 Mbps) seemed to take little hit during the process (with 2 machines doing the updates actually!). Wouldn't it be more efficient to "split up" the process so to speak:
From a remote repository, once installation has started, there are 2 basic things going on:
A. Downloading of packages from remote repository to local cache. B. Installation of packages from the local cache. The way I see it, B is dependent on A, but A is totally independent of anything else once the final package list is acquired. My proposal is as follows: 1. For any repo that copies files to a local cache before installation (I think its just remote repos, but they might be more?), downloading will happen in the background, downloading a configurable amount of packages simultaneously (2 would be a good default). If the remote repository is HTTP, it can use HTTP Keep-Alive to keep the download connection going. 2. The installation happens in the foreground. Once a package has been acquired, it can install the package. There might be a small delay while it waits on the package to be downloaded, but it'll be a smaller download if it has to wait for the full package to be downloaded, since the download started, in a worse case scenario, at the beginning of the installation of the previous package. This is better than current, since right now, downloading packages does not start until the previous package has finished downloading. Comments/Suggestions? -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org

Dňa Tuesday 25 September 2007 16:53:42 Justin Haygood ste napísal:
While updating to the latest factory packages last night, it dawned on me on how inefficient the download -> install package cycle goes, specially since my downstream bandwidth (3.0 Mbps) seemed to take little hit during the process (with 2 machines doing the updates actually!).
Wouldn't it be more efficient to "split up" the process so to speak:
From a remote repository, once installation has started, there are 2
basic things going on:
A. Downloading of packages from remote repository to local cache. B. Installation of packages from the local cache.
The way I see it, B is dependent on A, but A is totally independent of anything else once the final package list is acquired.
My proposal is as follows:
1. For any repo that copies files to a local cache before installation (I think its just remote repos, but they might be more?), downloading will happen in the background, downloading a configurable amount of packages simultaneously (2 would be a good default). If the remote repository is HTTP, it can use HTTP Keep-Alive to keep the download connection going.
2. The installation happens in the foreground. Once a package has been acquired, it can install the package. There might be a small delay while it waits on the package to be downloaded, but it'll be a smaller download if it has to wait for the full package to be downloaded, since the download started, in a worse case scenario, at the beginning of the installation of the previous package. This is better than current, since right now, downloading packages does not start until the previous package has finished downloading.
Comments/Suggestions?
This is on our radar as a possible improvement for the future. The reason for the current behavior is the 1st stage installation, where the space is really tight. I agree this is a bit non-optimal for a running system. Stano -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org
participants (2)
-
Justin Haygood
-
Stanislav Visnovsky