Re: [Ext2-devel] [RFC 0/13] extents and 48bit ext3

From: Mike Snitzer
Date: Fri Jun 09 2006 - 12:20:34 EST


On 6/9/06, Jeff Garzik <jeff@xxxxxxxxxx> wrote:
Alex Tomas wrote:
> PS. in the end this is just ext3 with one more feature ...

Incorrect. You have to look at ext3 development over time. This is a
PATTERN with ext3 development: mutating the metadata over time in a
progressively incompatible manner.

You have this thing called "ext3", which fools an admin into thinking
they can use their filesystem with any kernel that has "ext3" support.
That's somewhat true today, but with extents it will become false.
Having a mutating definition of "ext3" is a convenience for developers,
and for users WHO ONLY MOVE FORWARD in kernel versions.

A 48bit ext3 filesystem with extents is completely unusable in 2.4.30's
"ext3" or 2.6.10's "ext3". Users are forced to hunt down the specific
kernel version when an incompatible feature was added to ext3. How can
that possibly be described as "user friendly"?

"Which ext3 am I talking to, today?"
"And which kernels am I locked into, in order to talk to my filesystem?"

Not all users are big production houses that plan their filesystem
metadata migration months in advance! I _guarantee_ some users will
boot into ext3-with-extents, use it for a while, and then try to
downgrade for whatever reason... only to find they have been LOCKED
OUT. That is a very real world situation, guys.

Jeff,

I think all of us do understand what you're saying and on some level
are willing to accept that ext3-with-extents is in fact worthy of
branching to ext4, hence the url that has hosted the development of
extents (mballoc, delalloc, 48bit etc):
http://www.bullopensource.org/ext4/

But it _seems_ you're trying to paint ALL the ext3-developers as a
narrow minded lot. If and when users decide to enable ext3 extents on
their filesystems they will presumably understand that doing so
precludes their ability to boot older kernels (steps can be taken to
make them well aware of this). The "real world situation" you refer
to, while hypothetically valid, isn't something informed
ext3-with-extents users will _ever_ elect to do.

Once a compelling feature is introduced Linux users embrace it and
never look back (provided it is stable!). The real risk is the
(in)stability of all these ext3 improvements. Stability is obviously
a requirement for merging these changes but I for one find it
refreshing that the current desire is to merge extents with ext3
(implicitly speaks to its stability when you couple that desire with
the fact that so many ext3 stakeholders are onboard!).

And as an aside, merging extents with ext3 forces ext3-developers to
be somewhat conservative about what bells and whistles they'd be
introducing moving forward. The worst thing would be for these ext3
improvements to get merged into a new ext4 that becomes wildly known
as "the experimental ext3++". I suppose developer discipline would
prevent such an unfortunate distinction but a new ext4 sandbox _could_
open the flood gates.

Developers never _want_ to branch (maintenance-hell), the question
becomes: do the risks associated with ext3-with-extents' backword
incompatibility _really_ justify the branch?

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