On Sep 22, 2009, at 3:02 PM, Daniel Shahaf wrote:
> Philipp Marek wrote on Tue, 22 Sep 2009 at 15:15 +0200:
>> Should be "easy" to do for BDB (for some values of "easy" ;-); in
>> FSFS you
>> might have to rewrite the revs/ file, but with a hole where deleted
>> contents
>> have been, so that the file positions stay the same.
>>
>> (AFAIK addressing of content across revisions is done via byte
>> positions,
>> isn't it?)
>
> I don't know how addressing inside a rev file works. But addressing
> a rev
> file inside a pack file *is* done via byte offsets (i.e., we store
> in the
> manifest file the offset of the rev file within the pack file; the
> pack
> file is a straight concatenation of rev files).
Intra-revision references are stored using byte offsets, so you'd
either have to rewrite all existing references (hard) or fill the
deleted hole with empty space (easy). Ignoring various operating
system tricks for storing zero-filled sectors, the second option
doesn't provide any of the space savings that obliterate is intended
for.
-Hyrum
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2398882
Received on 2009-09-23 15:30:51 CEST