[tahoe-dev] [tahoe-lafs] #993: refactor download interfaces to treat immutable files and mutable versions more uniformly
tahoe-lafs
trac at allmydata.org
Thu Mar 11 21:59:45 PST 2010
#993: refactor download interfaces to treat immutable files and mutable versions
more uniformly
--------------------------------------+-------------------------------------
Reporter: davidsarah | Owner:
Type: enhancement | Status: new
Priority: major | Milestone: 1.7.0
Component: code-mutable | Version: 1.6.0
Keywords: cleanup download mutable | Launchpad_bug:
--------------------------------------+-------------------------------------
Currently, downloading a mutable file is quite complicated unless the
download_best_version() method of IMutableFileNode is used. This has
several disadvantages:
* client code has to fork depending on whether it is downloading a
mutable or immutable file.
* download_best_version() returns a Deferred for the whole contents, it
does not allow directing the download to a consumer.
* there is the potential for race conditions when the client wants to get
several pieces of information about the same version.
The attachment gives some proposed interface changes worked out with Brian
on IRC. Among other improvements these would allow calling
{{{get_best_readable_version()}}} on any filenode, and then using
{{{read}}} to download to a consumer. For the time being mutable files
would still be downloaded in a single lump, but clients using these new
interfaces would not have to change when we fix that.
('diff' got confused and started interleaving changes to unrelated
methods, so compare the attachment with
[source:src/allmydata/interfaces.py].)
--
Ticket URL: <http://allmydata.org/trac/tahoe/ticket/993>
tahoe-lafs <http://allmydata.org>
secure decentralized file storage grid
More information about the tahoe-dev
mailing list