[tahoe-dev] [tahoe-lafs] #993: refactor download interfaces to treat immutable files and mutable versions more uniformly

tahoe-lafs trac at allmydata.org
Fri Mar 12 05:59:45 UTC 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