[tahoe-lafs-trac-stream] [tahoe-lafs] #393: mutable: implement MDMF

tahoe-lafs trac at tahoe-lafs.org
Mon Feb 21 14:03:34 PST 2011


#393: mutable: implement MDMF
------------------------------+---------------------------------------------
     Reporter:  warner        |       Owner:  kevan                                                                                                                 
         Type:  enhancement   |      Status:  assigned                                                                                                              
     Priority:  major         |   Milestone:  1.9.0                                                                                                                 
    Component:  code-mutable  |     Version:  1.0.0                                                                                                                 
   Resolution:                |    Keywords:  newcaps performance random-access privacy gsoc mdmf mutable backward-compatibility forward-compatibility review-needed
Launchpad Bug:                |  
------------------------------+---------------------------------------------

Comment (by warner):

 Another issue: in {{{MutableFileVersion._modify_once}}}, the old code
 repeated the servermap update step at the beginning of each loop, whereas
 the new code appears to rely upon a mapupdate being done earlier (and
 doesn't repeat it). The original reason for re-updating was to handle the
 UCWE-triggered retry case: if we're racing with somebody else to modify
 the file, and detected contention, then we need to update our servermap to
 properly update on top of what somebody else finished writing. If we don't
 update our servermap, we'll be using a stale one, and we'll probably keep
 hitting UCWE forever (or until the retry counter hits the limit).

 There might be some other way your code deals with this that I'm not
 seeing, though.. for example, in some sense, if we observe UCWE, then we
 should really create a new {{{MutableFileVersion}}} instance for the new
 state of the file, and then delegate to {{{.modify}}} on it. Except we
 need to impose the retry limit (maybe add a {{{retries_permitted=}}}
 argument to {{{.modify}}}, and when we delegate, we pass in a value that's
 one lower than the one we were given? limited recursion?).

-- 
Ticket URL: <http://tahoe-lafs.org/trac/tahoe-lafs/ticket/393#comment:71>
tahoe-lafs <http://tahoe-lafs.org>
secure decentralized storage


More information about the tahoe-lafs-trac-stream mailing list