Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 232191 - 'esource' to overcome FTP/HTTP connections that are not pooled
Summary: 'esource' to overcome FTP/HTTP connections that are not pooled
Status: RESOLVED LATER
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Conceptual/Abstract Ideas (show other bugs)
Hardware: All Linux
: High enhancement (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-07-18 12:00 UTC by Daniele C.
Modified: 2008-07-18 23:32 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Daniele C. 2008-07-18 12:00:35 UTC
emerge can use wget to retrieve the packages, via FTP or HTTP.
When retrieving many packages we usually see wget connecting to a mirror server, retrieve the package (via FTP or HTTP) and then disconnect, and then again, using the same server. I think it would be more efficient to have 'pooled' connections at least for during the run of emerge.

This is the idea (I am sure somebody else must already have thought about this):

1) the first call to the package retriever spawns an 'esource' process which then stays listening
2) emerge asks to esource to retrieve a certain package
3) esource will eventually take it from a local cdrom, a local directory, a network path or an TP/HTTP/... server
4) esource keeps connections open
5) emerge tells esource that we're done asking packages and esource closes all connections

This would be very efficient if using 'emerge -f', that probably should become mandatory. esource could use libcurl to accomplish to wget tasks.

I just hope such feature would not add too much complexity.
Comment 1 Marius Mauch (RETIRED) gentoo-dev 2008-07-18 23:32:21 UTC
Well, you can change the FETCHCOMMAND variable to implement this. If you want to create such a program yourself we can include it, but I don't see us implementing it (I honestly don't see much benefit in it). What we might do eventually is to handle the fetching internally in python, but that's going to require other changes first.