[tahoe-dev] [tahoe-lafs] #393: mutable: implement MDMF
tahoe-lafs
trac at tahoe-lafs.org
Tue Jul 27 00:01:51 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):
No patch today, but I've been working out how a partial file update will
work.
The mutable filenode code, if we use a (data, offset) change
representation like the one I suggest above, will be responsible for
mapping the new data into segments, and then replacing those segments. For
segments which can be replaced in whole, this isn't difficult -- we just
upload new segments in place of old segments, and then update the
integrity checks to match the new data. But it is likely that the new data
will not start or end on precise segment boundaries. In these cases, we
will have to fetch two segments of data in order to do an update, so we
can pad the existing data appropriately. In addition, we'll need parts of
the block hash trees for the shares that we're updating, so that they can
be regenerated to reflect the new content. At the moment, I'm thinking
about fetching this information (boundary segments + block hash tree
information) during the server map update step, then presenting it to the
uploader. This yields a nice separation between parts of the code that
upload files and parts of the code that download files. I haven't quite
worked out all the details yet, but I plan to start working on it tomorrow
and see what more ideas come from that.
I'm hoping to have the low level update functionality done by the end of
this week, along with the restoration of the single-write uploads that we
have with SDMF. After that, I can work out how we tie all of that into the
WebAPI so client code can use it.
--
Ticket URL: <http://tahoe-lafs.org/trac/tahoe-lafs/ticket/393#comment:46>
tahoe-lafs <http://tahoe-lafs.org>
secure decentralized storage
More information about the tahoe-dev
mailing list