[tahoe-dev] [tahoe-lafs] #393: mutable: implement MDMF
tahoe-lafs
trac at tahoe-lafs.org
Thu Aug 5 00:17:38 UTC 2010
#393: mutable: implement MDMF
------------------------------+---------------------------------------------
Reporter: warner | Owner: kevan
Type: enhancement | Status: assigned
Priority: major | Milestone: 1.8β
Component: code-mutable | Version: 1.0.0
Resolution: | Keywords: newcaps performance random-access privacy gsoc mdmf mutable
Launchpad Bug: |
------------------------------+---------------------------------------------
Comment (by kevan):
attachment:393status26.dpatch fixes more bugs in the update behavior; all
of the tests I wrote on Monday now pass, though I'm going to write more
tests tomorrow to see if some edge cases that have been bothering me are
going to be problematic. After that, it'll be time to figure out a way to
integrate update into the rest of Tahoe-LAFS; into the WebAPI, at least.
It also occurs to me that we could get rid of the re-encoding update case
(where we need to re-encode and upload the file because the block hash
tree grows, shifting everything else forward into where the block and salt
data was before the update) by juggling the layout of MDMF files. If we
put the block and salt data after the offsets and signature but before the
integrity data, then we no longer have to re-upload the file when the
block hash tree grows larger than it was originally, since there wouldn't
be any share data to be upset beyond the block hash tree. The disadvantage
of this approach is that reading the first 1000 or so bytes of an MDMF
file will have a smaller chance of fetching the encrypted private key and
verification key, which would make the servermap update step use more
roundtrips, but this could be addressed by putting those (and whatever
else the servermap update step is likely to want) before the blocks and
salts. We'd probably be just fine if we stuck only the block and share
hash trees after the block and salt data, since that gets re-written on an
update anyway. Then we'd have O(change_size) updates in general without
any real regression with what is there now.
If testing goes well tomorrow, I'll start working on that.
--
Ticket URL: <http://tahoe-lafs.org/trac/tahoe-lafs/ticket/393#comment:52>
tahoe-lafs <http://tahoe-lafs.org>
secure decentralized storage
More information about the tahoe-dev
mailing list