Another Way

Jamie Lokier (lkd@tantalophile.demon.co.uk)
Mon, 5 Jul 1999 21:49:29 +0200


Greg Lindahl wrote:
> you could re-invent a simple filesystem in a flat file. The minus is
> that you have to re-invent some code which is almost the right stuff
> in the kernel. The plus is that it's easy to pass around, and you
> didn't change the kernel.

It's portable too. Everyone likes this really.

The usual complaint (pretty much the only one) is one of efficiency.

I'm sure you've noticed people complain that Word's "Fast Save"
generates enormous files -- mostly unused data.

And there's fragmentation, if you try to keep the file roughly as large
as the data (no holes) without rewriting it each time.

Another Way
-----------

Which brings us to a new idea.

Imagine a user space library for components in a file. It's a bit like
a filesystem or database. I bet Bonobo & OpenParts have one already.

We want it cross-platform, quick to read, quick to update, and very
little wasted space even after many updates. The last constraint makes
this difficult, and different from a simple filesystem.

The idea: what help could kernel provide to keep these files packed
efficiently? The library would use a cross-platform format, and use
these facilities when available to edit it efficiently.

A few ideas tossed into the air:

fedit (insert/delete/swap byte ranges, appropriate fall backs
e.g. limited to multiples of block size, fail on some filesystems),

fadvise (tell kernel about independent byte ranges that are likely to
grow & shrink, this is advice only for disk layout).

FIBMAP -- can the library make good use of this?

-- Jamie

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/