[tahoe-dev] write coordination

zooko zooko at zooko.com
Wed Mar 12 21:15:38 UTC 2008


In a IRC-then-telephone conversation just now, Brian and I figured  
out that there is a serious problem with the current plan.

I just opened another ticket in the "v0.9.0" Milestone [1]: #345  
(write coordination) to track this issue.

Basically, we were wrong to think that the "update" API that we  
discussed on tahoe-dev today [2] would be safe from the "Newly  
Discovered Problem #2" that I posted [3].

Instead, we figured out that Newly Discovered Problem #2 is actually  
a lot more likely than we had previously believed.  Any time two  
different writers write to the same directory, such that their  
"update" processes overlap in time, then there is a 50% probability  
that the changes of one of them will silently disappear.  "update"  
processes take anywhere from 4 seconds to 40 seconds, depending on  
the number of entries in the directory and the speed of your up link,  
so this is a likely problem.

This revelation underscores the fact that we don't really understand  
how Tahoe v0.9.0 handles uncoordinated writes.  This makes my opinion  
return to what it was five hours ago -- that it is unwise to try to  
use Tahoe v0.9.0 with uncoordinated writes, and that for near-term  
use we should instead use Tahoe with a separate write-coordination  
mechanism (e.g. a lock server).  Another possibility is to have a  
long-running "double-checking" process, which with randomized  
exponential backoff redownloads old directories, re-applies deltas if  
it discovers that those deltas have disappeared, and then re-uploads  

The next release of Tahoe, in about a month or so, will probably  
offer a well-thought out, well-implemented new feature of supporting  
uncoordinated writes safely.



tickets mentioned in this message:

http://allmydata.org/trac/tahoe/ticket/345 # (write coordination)

[1] http://allmydata.org/trac/tahoe/roadmap
[2] http://allmydata.org/pipermail/tahoe-dev/2008-March/000438.html
[3] http://allmydata.org/pipermail/tahoe-dev/2008-March/000433.html

More information about the tahoe-dev mailing list