[tahoe-dev] write coordination
zooko
zooko at zooko.com
Wed Mar 12 14:15:38 PDT 2008
Folks:
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
them.
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.
Regards,
Zooko
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