Re: [ANNOUNCE] new reiser4 snapshot released.

From: Nikita Danilov
Date: Fri Mar 26 2004 - 13:15:17 EST

Jonathan Briggs writes:
> On Fri, 2004-03-26 at 09:45, Nikita Danilov wrote:
> > Hello,
> >
> > new reiser4 snapshot against 2.6.5-rc2 is available at
> >
> >
> >
> > It is mainly bug-fixing release. See READ.ME for the list of fixes and
> > caveats.
> A definition of fibration:

Reiser4 plugin was named this was due to some (arguably vague)
similarity with mathematical fibrations.

> I'm going to have to study math for about a year before I understand all
> that, I think.
> It's a good thing we won't have to understand "fiber bundles",
> "paracompact topological space" and the "homotopy lifting property" to
> USE Reiser4.
> *grin*

Why, of course one has to understand it. Reiser4 refuses to mount unless
supplied with the homotopy group of the tangent bundle of hard drive,
for sure.

> If I missed the discussion or a web page, I am sorry. But could someone
> post a quick explanation or pointer to one about this fibration plugin?
> What does it do and what effects will it have?

Fibration plugin affects how disk blocks are allocated for the files
within the same directory. Basically, in reiser4 all file system data
and meta-data (except for allocator bitmaps) are stored in a single
balanced tree. Every piece of information in the file system (byte of
file data, on-disk inode, directory entry containing file name, etc.)
has a key that allows to locate this information in the tree. This
imposes natural order on all file system data (because keys are just
large integers, and can be compared).

Block allocator tries to allocate blocks in a parent-first tree
order. This means, that things with close keys have chances to be close
to each other on a disk. This leads to the main high-level mechanism
that reiser4 uses to control disk layout: through key assignment.

In particular fibration plugin is called when new name is inserted into
a directory, and, based on a name, selects some (otherwise unused) 7 bits
in a key of directory entry. This allows to "slice" directory content
into "fibers", hence the name.

For example, one possible implementation is to place .o files in one
fiber and all others in another. This significantly speeds compilations
up, because .o files are created close to each other and don't interfere
with sources. Fibrations, and well as other plugins, can be set
per-object, see for details.

> --
> Jonathan Briggs
> jbriggs@xxxxxxxxx

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at