[tahoe-dev] Is it useful to truncate mutable files?
Brian Warner
warner-tahoe at allmydata.com
Wed Jun 17 02:12:52 PDT 2009
On Wed, 17 Jun 2009 01:34:51 -0600
Shawn Willden <shawn-tahoe at willden.org> wrote:
> Very interesting... is there a way to set share size to 0 via the
> webapi? It appears there is not.
Nope. It's an internal protocol message. Basically the webapi call to set the
contents of a mutable file gets data A, then encryption/encoding produces a
bunch of shares B, which get wrapped in a header with hashes and an encrypted
private key into a data structure C, then the internal protocol (specifically
RIStorageServer.slot_testv_and_readv_and_writev) sends C to a storage server,
which wraps it with a header that contains size and lease information to
produce D. D is stored on the storage server's disk.
The slot_testv_and_readv_and_writev() call includes a parameter that defines
the new size of C. If that is zero, the sharefile is deleted. But there's
nothing you can do to A that will cause len(C)==0.
It's mostly a future-extension sort of thing: even though clients aren't
using it now, some day the mutable-publish/repair process will notice
superfluous shares and use this mechanism to get rid of them. By having it in
place early, we won't require server upgrades to take advantage of it in the
future.
cheers,
-Brian
More information about the tahoe-dev
mailing list