On Sep 23, 2009, at 10:04 AM, Julian Foad wrote:
> On Wed, 2009-09-23 at 09:40 -0400, Hyrum K. Wright wrote:
>>
>>
>> Sure. I didn't mean to imply that obliterate is only intended for
>> space saving, simply that our FSFS reference mechanism might make
>> achieving that particular goal a bit tricky. Sorry for any
>> confusion.
>
> No problem.
>
> Obviously I want to get the space-saving side done too, but the hiding
> bit pretty much has to come first.
>
> I hope the APIs don't make it too hard to do this. I haven't looked
> yet,
> but if there are APIs like "get me data from rev R at byte-offset N",
> then I could insert an offset-mapping look-up table in order to
> preserve
> old offsets from the caller's point of view. Just thinking off the top
> of my head.
I don't recall exactly how we did it for packing, but it was about
like that. "Give me N bytes in revision R starting at offset T." For
both sharding and packing, we plug a shim in the middle which looks
for the data in a new location, if the sharding or packing conditions
are met.
(Big caveat: this is from memory, and there's been a lot of code under
the bridge since then. :)
-Hyrum
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2398896
Received on 2009-09-23 16:07:55 CEST