From: "Joshua M. Clulow" <josh@sysmgr.org>
To: illumos-discuss <discuss@lists.illumos.org>
Subject: Re: [discuss] Illumos future and compatibility with Open-ZFS
Date: Sat, 7 Sep 2024 09:38:42 -0700 [thread overview]
Message-ID: <CAEwA5nK3qrJ+QuHdwrRmUJXCBWWfG9157+psyVgXLmAi75ZNAg@mail.gmail.com> (raw)
In-Reply-To: <71c95212-1882-4739-a00f-a6d8baf1624f@napp-it.org>
On Sat, 7 Sept 2024 at 04:12, Gea <gea@napp-it.org> wrote:
> Illumos ZFS has not seen as many problems up to dataloss in 10 years as
> one or the other Linux ZFS distribution in the last year.
Right, and this is the most critical metric for us. Any increase in
data loss is unacceptable.
> is how to take over code from a stable branch ex 2.2.6 or better a
> former with a better stability like 2.2.3 or what TrueNAS is using as
> stable branch.
It's worrying to me that you're able to characterise 2.2.3 as having
"better stability" than 2.2.6! Why is that? Surely each micro
release should work better than the previous one in a particular
train.
> The real question from a user view is how to preserve compatibility with
> a ZFS pool from a current BSD, Debian, Ubuntu or TrueNAS and when to get
> important Open-ZFS features like ZSTD, Draid, Raid-Z exansion, Fast
> Dedup, direct io or higher limits ex on recsize and much more to come
> while value stability as item2. Stability and compatibility are not
> either or. Find a way to get newer Open-ZFS features including bugfix
> commits with the best achievable stability. Not to have newer ZFS
> features is not an option. Have your cake and eat it.
To crib from Wikipedia:
| The proverb literally means "you cannot simultaneously
| retain possession of a cake and eat it, too". Once the
| cake is eaten, it is gone. It can be used to say that
| one cannot have two incompatible things, or that one
| should not try to have more than is reasonable.
https://en.wikipedia.org/wiki/You_can%27t_have_your_cake_and_eat_it
I am very much in favour of having new features and bug fixes imported
from OpenZFS, and we do import them over time. It's important for a
project to have a strong sense of what it values, which often means
prioritising those values when making decisions. For us, the
hierarchy has to be something like this:
1. not shipping regressions, not creating data loss
2. importing bug fixes
3. importing new features and performance improvements
It's something of an aphorism in software engineering at this point,
but we're essentially trading between constraints. If we assume that
we can't magically produce extra contributors willing to work on this
(i.e., cost/staffing is fixed) then we're trading off between:
- scope of features (e.g., compatibility with OpenZFS 2.2.6)
- quality of implementation (e.g., no regressions or data loss!)
- when the work is likely to be completed
We are unwilling to sacrifice quality, which means we can only pick
one other constraint in this triangle. If the goal is more features,
then it will, as you're noticing, take longer to get done.
> Maybe a staging model can be one solution like an older more stable
> Open-ZFS branch > Illumos testing > Illumos stable (similar to what
> current Illumos is), just like we see it in Open-ZFS or the OmniOS
> approach or in the Open-ZFS world with Open-ZFS forks on OSX or Windows.
> This would allow newest Open-ZFS features to appear with a delay but to
> appear for sure. Maybe newer long awaited bits like the recent NFS and
> SMB improvements have also a chance to appear in a Illumos testing
> branch for wider testings.
There are several challenges with a testing/unstable branch approach
in general; e.g.,
- Who is going to maintain the testing/unstable branch?
- What are the rules around integration of changes into the
testing branch? Obviously there must be fewer rules and
lower standards, otherwise you'd just go straight to the
master branch.
- Who will be running the testing/unstable day-to-day on
their computers instead of master?
- What is the process for promoting changes from the
testing/unstable branch to master? Ultimately this
question is: who is going to do the work (that is already
not being done today) to get those changes into the master
branch?
If you're saying that you're stepping up and are going to work on
porting a current OpenZFS release branch back to illumos, that's
certainly exciting news! I think it would be worth drafting an IPD
with your plans to get started, which we can review and help with!
Cheers.
--
Joshua M. Clulow
http://blog.sysmgr.org
next prev parent reply other threads:[~2024-09-07 16:38 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-05 20:50 shutdown hang with zpools on ISCSI devices Carsten Grzemba
2024-08-05 21:46 ` [discuss] " Joshua M. Clulow
2024-08-06 5:17 ` Carsten Grzemba
2024-08-06 5:29 ` Carsten Grzemba
2024-08-06 5:46 ` Joshua M. Clulow
2024-08-06 6:36 ` Carsten Grzemba
2024-08-06 6:46 ` Joshua M. Clulow
2024-08-06 14:27 ` Carsten Grzemba
2024-08-06 15:16 ` Carsten Grzemba
2024-08-06 19:04 ` Joshua M. Clulow
2024-09-06 11:53 ` Illumos future and compatibility with Open-ZFS gea
2024-09-07 8:30 ` [discuss] " Joshua M. Clulow
2024-09-07 11:12 ` Gea
2024-09-07 16:38 ` Joshua M. Clulow [this message]
2024-09-07 21:37 ` Gea
2024-09-08 8:50 ` Jorge Schrauwen
2024-09-08 9:55 ` d
2024-09-09 10:41 ` Gea
2024-09-09 11:32 ` Toomas Soome
2024-09-09 9:29 ` Volker A. Brandt
2024-09-09 9:49 ` bronkoo
2024-09-09 11:13 ` Jorgen Lundman
2024-09-09 12:27 ` Gea
2024-09-09 14:47 ` gea
2024-09-09 19:29 ` Joshua M. Clulow
2024-12-11 8:47 ` zt958bjm via illumos-discuss
2024-12-11 8:56 ` zt958bjm via illumos-discuss
2024-12-11 9:01 ` zt958bjm via illumos-discuss
2024-12-11 10:09 ` Jorgen Lundman
2024-12-11 12:17 ` zt958bjm via illumos-discuss
2024-09-07 14:32 ` Miles Nordin
2024-08-05 22:45 ` [discuss] shutdown hang with zpools on ISCSI devices John D Groenveld
2024-08-05 22:55 ` Joshua M. Clulow
2024-08-06 15:56 ` Gordon Ross
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAEwA5nK3qrJ+QuHdwrRmUJXCBWWfG9157+psyVgXLmAi75ZNAg@mail.gmail.com \
--to=josh@sysmgr.org \
--cc=discuss@lists.illumos.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).