lkml.org 
[lkml]   [2000]   [Mar]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: cow-links
Date
Bjorn Wesen <bjorn@sparta.lu.se> writes:

> On Sat, 4 Mar 2000, Ville Herva wrote:
> > Of course, to get the most out of the redundancy in, say, document or
> > source tree, the cow-scheme would have to be on block level rather than
> > inode level (as it is page level in vm). I suppose that just wouldn't even
> > theoretically be affortable, since it would propably take per-block
> > reference counting.
>
> Maybe we can get Stephen Tweedie and the other FS "sharks" to comment on
> this ?

FWIW I have been working on the design for such a filesystem (or
`filesystem block-allocation indirection layer') for a few months now.

Designing an efficient coalescer is harder than it seems. There are
numerous tradeoffs that change dynamically and which can be hard to fix.

e.g., you do not just want to hash each inode and then diff the hashes
to tell if two blocks should be coalesced, because an inode is a rather
coarse unit; the smaller the hashed unit, the smaller the units that can
be coalesced. Unfortunately, the smaller the hashed unit, the more
system time is consumed computing the hashes[1], and the more space is
consumed with the tree of hashes for a given inode. The `sweet spots'
for CPU consumption and space consumption vary, and the two may not be
the same at all... more benchmarking is needed, definitely.

(FWIW the eventual goal for this fs includes lots more than merely block
coalescence. We hope to be able to collapse blocks describable by an
algorithm and dataset smaller than the block into that algorithm, so
that if you took one of these fsen and left it for ages you'd end up
with information packed onto that disk as optimally as information
theory permits... of course on an fs that is being used it would never
get near this ;)

Think of this as `Kolgomorov's Revenge'... ;) )


[1] I do it in the background; the embryonic research OS this filesystem
is being developed for has a *lot* of threads churning away in the
background, doing dynamic optimizations of all kinds. Researching
these dynamic optimizations is the whole raison d'etre of this OS...

-
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/

\
 
 \ /
  Last update: 2005-03-22 13:56    [W:0.058 / U:0.700 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site