On Wed, 2009-09-23 at 09:40 -0400, Hyrum K. Wright wrote:
> On Sep 23, 2009, at 9:35 AM, Julian Foad wrote:
> > On Wed, 2009-09-23 at 09:30 -0400, Hyrum K. Wright wrote:
> >> 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.
> > Obliterate is intended for more than one thing. Space saving is one of
> > them. Hiding sensitive data is another.
> 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.
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.
Received on 2009-09-23 16:04:23 CEST