On Tue, 2011-02-01 at 10:29 -0500, C. Michael Pilato wrote:
> I can only really speak for the BDB side of things, but... "what he said".
I'll elaborate a little bit. API issues aside, we're used to putting
artifacts from different versions in different places. More so in FSFS,
where it was baked into the initial architecture, but also in BDB for
the most part.
The most efficient storage for large directories which frequently change
by small deltas would be some kind of multi-rooted B-tree. To do that
efficiently (that is, without scattering each tiny change into a
separate disk block, requiring lots and lots of opens/seeks/reads),
you'd want to put artifacts from different versions of a directory all
in the same place. You might be able to arrange it so that modifying a
directory is an append-only operation, avoiding the need for a lot of
copying, but you'd still want a place to append to for each directory,
which isn't how FSFS or BDB works.
So, I'm not sure we can ever have efficient handling of this use case
without designing a completely new back end--which wouldn't be a
terrible idea if someone's up to it.
Received on 2011-02-01 17:54:56 CET