|
|
Subscribe / Log in / New account

Merging bcachefs

By Jake Edge
June 16, 2023

LSFMM+BPF

The bcachefs filesystem, and the process for getting it upstream, were the topics of a session led remotely by Kent Overstreet, creator of bcachefs, at the 2023 Linux Storage, Filesystem, Memory-Management and BPF Summit. He has also discussed bcachefs in previous editions of the summit, first in 2018 and at last year's event; in both of those cases, the question of getting bcachefs merged into the mainline kernel came up, but that merge has not happened yet. This time around, though, Overstreet seemed closer than ever to being ready to actually start that process.

He began his talk by noting that he had been saying bcachefs is almost ready for merging for some time now; "now I'm saying, let's finally do it". He wanted to report on the status of the filesystem and on why it is ready now for upstreaming, but he wanted to use the bulk of the session to discuss the process of doing so. "It's a massive, 90,000-lines-of-code beast" that needs to get reviewed, so there is a need to figure out the process to do that review.

His goal with bcachefs is to have the "performance, reliability, scalability, and robustness of XFS with modern features". That's a high bar, and one that bcachefs has not yet reached, but "I think we're pretty far along". People are running bcachefs on 100TB filesystems "without any issues or complaints"; he is waiting for the first 1PB filesystem. "Snapshots scale beautifully", which is not true for Btrfs, based on user complaints, he said.

Status

In the last year, there has been a lot of scalability work done, much of which required deep rewrites, including for the allocator, which dates back to bcache. There is a new "no copy-on-write" (nocow) mode and snapshots have been implemented. People are using the snapshots to do backups of MySQL databases, he said, which is a test of the robustness of the feature.

[Kent Overstreet]

Erasure coding is the last really big feature that he would like to get into bcachefs before upstreaming it. But he thinks "it's time to draw a line in the sand", so that can wait for a bit. There is still a lot of work to do, but "the big feature work is lessening"; he will be able to work on being a maintainer without having to disappear for a month to work on something, as he did for snapshots, for example.

The bcachefs team is growing; Brian Foster at Red Hat has been doing a lot of great work on bug fixes, Overstreet said. Eric Sandeen has helped in attracting interest in bcachefs at Red Hat as well. There is a bi-weekly call on bcachefs development. There is automated testing infrastructure that has been added and it is "making my life much easier", Overstreet said. The test system runs in about half an hour and includes multiple runs of fstests as well as the "huge test suite" for bcachefs.

Rust is something that he has been evangelizing about to "anyone who will listen"; he thinks "writing code in C, when we finally have a better option available, is madness". He loves to write code, but not to debug it; writing in Rust "just means a lot less time debugging". He intends to slowly rewrite bcachefs in Rust, which will be a ten-plus-year project, but the use of Rust in bcachefs has already started. Some of the user-space tools have been rewritten in Rust and someone is looking at moving some of that work into the kernel.

Upstreaming

That morning he had posted 32 preliminary patches adding infrastructure that bcachefs will need; those patches were already being reviewed, he said. The rest is 90,000 lines of code in 2,500 patches that he did not post; he did include a link to his Git repository, where those patches live in a bcachefs-for-upstream branch. He then opened up the floor to discuss how those patches would be reviewed and, eventually, merged.

Josef Bacik said that he thinks the response will be much the same as last year; filesystem developers are "really excited" to see bcachefs get merged. He does not plan to review the implementation of the filesystem itself and suspects that is generally true. The people who are working on it will review it; "trust yourselves for that part". The "generic stuff is what we need to review", once that is done, the rest of the filesystem code can be merged as far as he is concerned. That is, of course, up to Linus Torvalds.

Overstreet said that one of his questions is: "what do we take to Linus?" He has spent the last year on process and infrastructure, getting a team together, working with Red Hat, putting together an automated test suite, and so on. Mike Snitzer remotely pointed out that a patch set that had recently been rejected contained two enormous patches that were essentially impossible to review; he contrasted that with the 2,500 fine-grained patches that make up bcachefs, which is much easier to digest.

While Snitzer is not sure that having everyone go through them one-by-one in review is the right approach, the obvious effort that went into that patch series makes it easier to trust the code and the process that went into developing it. "You've done the heavy lifting by doing all of that work to split up patches." Overstreet said that it was a lot of work to rebase nearly the entire history, but that it came in handy around six months ago when Red Hat noticed some big performance regressions. He was able to use that history to do automated bisection and got almost all of the performance back.

Bacik said that Torvalds is the "maintainer" responsible for merging a new filesystem, so it will be up to him to decide if he is willing to pull the full history into the mainline. It would be Bacik's preference to do so, because the history is "super useful", but that is not something that the people in the room can decide. He suggested that the pull request be more of a question about whether the full history was acceptable and, if not, what would be.

One concern is that once bcachefs gets merged, it will be difficult for anyone besides Overstreet to deal with the bug reports, Amir Goldstein said. It is important that it be explained in the pull request; "I want to merge this and I have a team that can support this". Getting more help was one of the criteria before upstreaming, Overstreet said. He knew that if it was a one-man show and he got deluged with bug reports, he would "go insane and run away to South America"; Foster has been "a huge help", which is one of the things that makes him feel comfortable about merging at this point.

Paradoxically, the recent push to remove some filesystems (e.g. ReiserFS) from the kernel is actually going to make it easier to add new ones, Ted Ts'o said. He can remember Hans Reiser being enthusiastic about his new filesystem, with a team to support it, but that all fell into disrepair over the years. The kernel project now has a path for removing filesystems after a deprecation cycle. The idea that "accepting a filesystem isn't forever, makes it a whole lot easier" to merge new ones.

He also suggested breaking up the patch series into smaller, more reviewable chunks that collect up a small number of related patches. That would make it easier for people to review, say, all of the lockdep patches in one chunk. It would mean relaxing the general guideline about not merging infrastructure until its first caller is merged, which he is in favor of; he would amend that guideline to allow merging when it includes a pointer to the Git tree of the first caller.

Overstreet thinks that the preliminaries that he posted earlier that day will not be too controversial and other than perhaps one or two "will just sail through". He noted that Christoph Hellwig had objected to the vmalloc_exec() patch, though that functionality is needed for bcachefs, Overstreet said. Since the talk, Mike Rapoport has proposed the JIT allocator, which would solve the underlying problem.

A remote participant said that Foster's experience had shown that the code base is approachable; once bcachefs is available, interested developers will be able to come up to speed and start working on it with few difficulties. Christian Brauner asked that there be a clear delineation for who else could step in and merge patches if Overstreet is unavailable. Brauner noted that the NTFS/NTFS3 maintainer disappeared and, even though there were people who were contributing to the filesystem, it was not clear "who could route patches upstream". Overstreet said that he would trust Foster in that role if "he is willing to step up to that".

Brauner said that he thinks bcachefs is in "excellent shape to be upstreamed", but he is concerned with the number of filesystems in the kernel; he is glad to see that there are efforts to remove some of them. Changes that impact all of the filesystems in the tree "get painful very very fast" and, in some cases, there is no one available to review the changes. He would like the acceptance process to be more conservative; accepting NTFS/NTFS3 was "a huge mistake", for example. Brauner said that none of that was directed at bcachefs, but was a more general concern; filesystem acceptance and deprecation was taken up in a lightning talk (YouTube video) later that day.

Darrick Wong said that he had already started doing what Ts'o suggested in his patches for XFS online repair. He has a collection of infrastructure patches that refer to callers that are coming soon; he has convinced Dave Chinner that there is value in reviewing the infrastructure pieces while also looking at the bigger picture of where it is all leading. That helps him because he can stop "rebasing things repeatedly and having to play code golf, like moving small helper functions up and down in the patch set". Putting all of that stuff in a separate set of infrastructure patches helped him, though it did cause some complaints from reviewers, but there is now some precedent for that approach, he said.

Overstreet said that he is not particularly concerned about the 30 or so "relatively uncomplicated" infrastructure patches that he needs to land. He is going to wait for the Acked-by and Reviewed-by tags to come in, but if they do not, then he will use the suggested approach "as a Plan B". With that, the session came to a close.


Index entries for this article
KernelFilesystems/bcachefs
ConferenceStorage, Filesystem, Memory-Management and BPF Summit/2023


to post comments

Merging bcachefs

Posted Jun 16, 2023 21:23 UTC (Fri) by zdzichu (subscriber, #17118) [Link] (2 responses)

Bcachefs came from bcache, which is solely focused on speeding up HDDs by using NVMe or SATA SSD as a cache layer. Is this functionality still relevant? Solid state drives are affordable in multi-TB range now.

Merging bcachefs

Posted Jun 17, 2023 0:41 UTC (Sat) by flussence (guest, #85566) [Link]

It's definitely still relevant as long as storage devices on a single system can differ in latency/throughput by orders of magnitude. Whether it'll still be maintained is another question, but there's always the possibility of extending fscache+cachefilesd to support local filesystems if not.

Merging bcachefs

Posted Jun 17, 2023 7:03 UTC (Sat) by Kangie (guest, #161139) [Link]

Yes. I'm currently running an ~100TB bcachefs pool consisting of 90tb SAS spinning rust and 24tb SATA SSDs.

Any use case between 'wanting a decent CoW file system on a single disk / partition' to 'combining two disks in a desktop better than btrfs in a way that will be mainlined' and frankly anything short of true multi-tiered mass storage is where this is going to be most useful.

It's incredibly promising - better than btrfs with no CoW write hole and actually able to be mainlined unlike zfs. It's also possible to easily resize, unlike a running zfs system.

Seriously, exciting stuff all around.

Merging bcachefs

Posted Jun 17, 2023 9:45 UTC (Sat) by jengelh (guest, #33263) [Link] (7 responses)

>Rust is something that he has been evangelizing about to "anyone who will listen"

I'd wish developers would spend less on (fanatically) evangelizing the toolchains used, and rather push a project on own merit (e.g. features).

Just because you made a painting with a $10k horsehair brush and golden paint does not necessarily make it great art.

Merging bcachefs

Posted Jun 17, 2023 11:15 UTC (Sat) by tux3 (subscriber, #101245) [Link]

I'd think that sword ought to cut both ways.

If the brush does not matter, and the art is not to your liking, then criticize the art. If the brush doesn't make it good, then the brush also doesn't make it bad.

No one's saying it's good because of the new lang. Symmetrically, new lang evangelism oughtn't be a reason to dismiss it.
There's an entire new filesystem's worth of artwork to critize on its own merit here, if you please

Merging bcachefs

Posted Jun 17, 2023 14:20 UTC (Sat) by koverstreet (✭ supporter ✭, #4296) [Link] (4 responses)

You seem to be under the mistaken impression that tools are just fads, or something of no consequence.

A good craftsman cares about his tools. Listen to woodworkers who get together, they'll be talking about their tools just as much as the actual work. We're interacting with these tools every day, and the quality of the tool very much affects the quality of the work.

Merging bcachefs

Posted Jun 17, 2023 14:25 UTC (Sat) by jengelh (guest, #33263) [Link] (3 responses)

Even a pencil gets a good artist a long way, that's my point.

Merging bcachefs

Posted Jun 17, 2023 14:44 UTC (Sat) by koverstreet (✭ supporter ✭, #4296) [Link]

Conferences are for programmers to talk to other programmers. I don't think you have a point.

Merging bcachefs

Posted Jun 17, 2023 20:48 UTC (Sat) by flussence (guest, #85566) [Link]

Ooh, a tortured analogy. Let's flog it to death and put it out of its misery.

A crayon scribble may satisfy a lot of people, but the rest of us don't really accept that VFAT and NTFS written in a pre-C99 toolchain are the limit of what's possible.

Merging bcachefs

Posted Jun 18, 2023 1:42 UTC (Sun) by dvdeug (guest, #10998) [Link]

But artists don't generally do final drafts in pencil, and if you take a Star Wars, or a Toy Story, there's thousands of artists working with the best equipment that can be found to produce the final result.

And Linux is more like engineering than art. The Hyatt Regency Hotel in Kansas City had the most elegant walkways, until they collapsed and killed 114. Sometimes it matters how you do things, and handwaves at artistry isn't going to recover the lost data.

Merging bcachefs

Posted Jun 18, 2023 3:48 UTC (Sun) by rsidd (subscriber, #2582) [Link]

As the article says, bcachefs is not currently written in rust, apart from a few userspace tools. It would be a 10 year project to rewrite it in rust. He is pushing it on his merits not on the language.

Merging bcachefs

Posted Jun 18, 2023 1:43 UTC (Sun) by developer122 (guest, #152928) [Link] (38 responses)

Is there a possibility that bcachefs may get ported elsewhere, or is this implementation 100% GPL'd? (no GPL-BSD/MIT dual licencing?)

Merging bcachefs

Posted Jun 18, 2023 17:10 UTC (Sun) by ballombe (subscriber, #9523) [Link] (33 responses)

"elsewhere" meaning GPL-hostile OS ?

Merging bcachefs

Posted Jun 18, 2023 20:36 UTC (Sun) by developer122 (guest, #152928) [Link] (32 responses)

Hard to call it "GPL hostile" when any work from BSD etc can get stolen by linux but never contributed back.

If you want to be rude like that.

Merging bcachefs

Posted Jun 18, 2023 20:43 UTC (Sun) by developer122 (guest, #152928) [Link] (29 responses)

I am of course talking about FreeBSD/OpenBSD/OpenSolaris, who all share their ZFS code with linux through OpenZFS.

You could always say "just use linux" but it's a pretty useful feature for a filesystem to be portable across OSs. There are even experimental windows and macOS drivers, if you really, really need to access the data there for some reason.

Merging bcachefs

Posted Jun 18, 2023 22:18 UTC (Sun) by ballombe (subscriber, #9523) [Link]

There is nothing that prevent BSD OS to run a GPL filesystem driver, really.

Merging bcachefs

Posted Jun 18, 2023 23:35 UTC (Sun) by khim (subscriber, #9252) [Link] (27 responses)

You could always say "just use linux" but it's a pretty useful feature for a filesystem to be portable across OSs.

Yet ZFS was made non-portable on-purpose. It's an open question whether ZFS license actually makes it's impossible to merge it into Linux, but it was designed to make that impossible and Linux developers and users generally respect wishes of ZFS principal authors.

FreeBSD/OpenBSD couldn't even claim that license stops bcachefs from being merged, because it's well-known fact that GPL is fully compatible with BSD license.

And they couldn't claim that they only accept filesystems with non-copyleft licenses, because AFAIK none of ZFS versions are released under non-copyleft licenses.

It's really their own decision whether they want to use it or not.

Merging bcachefs

Posted Jun 19, 2023 1:22 UTC (Mon) by developer122 (guest, #152928) [Link] (2 responses)

>Yet ZFS was made non-portable on-purpose. It's an open question whether ZFS license actually makes it's impossible to merge it into Linux, but it was designed to make that impossible and Linux developers and users generally respect wishes of ZFS principal authors.

>And they couldn't claim that they only accept filesystems with non-copyleft licenses, because AFAIK none of ZFS versions are released under non-copyleft licenses.

>It's really their own decision whether they want to use it or not.

This again? You realise this decision was made something like 20 years ago, right?

You might was well get a shovel, because Sun Microsystems has been dead for over a decade. If you have beef with the specific format in which Sun's legal department gave away their entire operating system Free to the world, you better start digging.

The modern steward of OpenZFS isn't Sun and it isn't Oracle. They're an independent project that forked the codebase.

ZFS is in fact very portable, currently actively supported by it's principal authors on three (3) OSs, with two (2) more on the way. All facilitated by the CDDL.

The CDDL is a weak per-file Free Software Copyleft licence, as recognized by the FSF.*

It fits just fine with BSD etc because the CDDL doesn't impose any restrictions on the other files in a codebase, and neither does the BSD licence. Furthermore, the CDDL doesn't impose restrictions on the licence of the resulting binary that gets distributed. Thus, so long as you aren't trying to merge ZFS into the FreeBSD codebase there's no issue, and TBH that would kinda defeat the spirit of sharing the OpenZFS codebase and it's ongoing new feature development across 4 different operating systems. (OpenSolaris (now illumos) doesn't have any problems because of course it's CDDL too.)

Unfortunately, while the CDDL doesn't have *any* problems with the GPL (and both licences carry the same spirit), various analysts believe the reverse isn't true due to subtle incompatibilities between the terms. So ZFS is stuck as a non-GPL kernel module. Sorry.

*https://www.gnu.org/licenses/license-list.en.html#CDDL

Merging bcachefs

Posted Jun 19, 2023 8:07 UTC (Mon) by ballombe (subscriber, #9523) [Link] (1 responses)

> This again? You realise this decision was made something like 20 years ago, right?

The BSD has used gcc for compiling for 20 years. They are not as hostile to the GPL as you imply.

Merging bcachefs

Posted Jun 19, 2023 10:44 UTC (Mon) by khim (subscriber, #9252) [Link]

The BSD folks hate GPL with passion. They used GCC because it was “the only game in town” and switched to Clang when it became usable. Same thing as Apple or Google.

For some reason BSD folks like when their code is used by SONY or other companies who contribute nothing back, but hate it when their code is used in GPLed projects and demand that GPLed projects would allow them to get stuff and give it to other proprietary companies on a silver plate. But it's unclear why bcachefs developers have to facilitate that.

And as much as I don't like “freedom fighters” who try to kill proprietary software and hurt end user instead I have even less sympathy for people who try to take free software and turn it proprietary.

Proprietary companies have lots of money and lots of developers. Let them write what they want or need themselves if they don't want to play by rules.

Merging bcachefs

Posted Jun 19, 2023 9:41 UTC (Mon) by paulj (subscriber, #341) [Link] (23 responses)

Again... having worked in a team where the senior engineer on it was one of the people involved in the internal "which licence should we use?", and having heard some of his perspective on how those discussions went, and piecing that together with things I've read from authoritative sources (Sun people who were actually there, e.g. Phipps):

1. Sun management wanted GPL. Schwarz was a big fan of the GPL.

2. A *lot* of the influential Sun engineering were _BSD_ people. They hated the GPL. They wanted OpenSolaris to be _BSD_ licensed.

3. BSD was never going to work for the business/management/legal side.

4. So engineering (as represented by a cade of the most senior/influential Solaris engineers) rejected what management wanted (with threats of leaving Sun if Solaris were GPLed); and management rejected what engineering wanted.

My view, based on the above - which is the closest to the facts of the matter available to me - is that management then chose the CDDL as a sort of compromise. A copyleft licence (as management wanted), but which was "It's definitely not the GPL!" so as to get it past the BSD-influenced GPL-hatred in engineering.

Additional factors (which I don't have specific evidence for, and I could not say are facts) may be that legal corporate people tend to view the GPL as problematically worded (IMLE). And also that Sun engineering people perhaps could see the writing on the wall for Sun, and they wanted to 'extract' the Solaris code (which they truly _loved_ and believed was the best Unix) out from Sun and have it available in "open source" form post-Sun, for them to continue to work and build on - and they really wanted it BSD. Given Schwartz and others in management also wanted (at last) to open-source Solaris...

I can't say it for sure, but my own sense is that it was a faction of Sun *engineering* that basically ensured Solaris ended up with this not-GPL-compatible copyleft licence, thwarting Suns' management, for largely irrational reasons related to long-standing BSD-v-GPL tribalism and dislike of GPL. I think they shot themselves in the foot by doing so. I think OpenSolaris would have been a lot more relevant if engineering had gone "Well, we can't get management to agree to BSD; if it has to be copyleft, GPL compatible is best".

But hey.

Merging bcachefs

Posted Jun 19, 2023 9:49 UTC (Mon) by paulj (subscriber, #341) [Link]

Management then had legal /draught/ a suitable copyleft licence.. bit more than choose. There was fairly wide consultation on this internally with Solaris engineering, cause I remember Fred Zlotnick - acting Director of Solaris Engineering then - visiting and making a point of asking me my opinions about the licence Sun were writing and considering for Solaris. Clearly part of deliberate wide internal consultation, given I was just an ordinary MTS/3 then (though, was known for working on external open-source stuff) - didn't usually talk to directors. ;)

Merging bcachefs

Posted Jun 19, 2023 10:56 UTC (Mon) by khim (subscriber, #9252) [Link] (21 responses)

> I can't say it for sure, but my own sense is that it was a faction of Sun *engineering* that basically ensured Solaris ended up with this not-GPL-compatible copyleft licence, thwarting Suns' management, for largely irrational reasons related to long-standing BSD-v-GPL tribalism and dislike of GPL.

That matches what I know about BSD people. I just wanted to point out that what we are discussing here is nothing more than that same long-standing BSD-v-GPL tribalism and dislike of GPL.

Probably wasn't explicit enough.

Licensing doesn't prevent adoption of bcachefs by BSDs. And if OpenSolaris guys wanted it they could have asked for a special exception (easy to grant given how few people contributed to bcachefs so far).

Instead they demand that bcachefs developers should drop GPL and make it easily available for Apple, SONY, Microsoft or any other proprietary OS to “embrace and extinguish”. Why should they do so?

Merging bcachefs

Posted Jun 19, 2023 13:46 UTC (Mon) by Wol (subscriber, #4433) [Link] (20 responses)

> Instead they demand that bcachefs developers should drop GPL and make it easily available for Apple, SONY, Microsoft or any other proprietary OS to “embrace and extinguish”. Why should they do so?

Because they want to make money off other peoples' work?

I don't take sides in the GPL/BSD wars (my favourite system, Scarlet, the *practical* difference is bugger-all ...), but it is, as always, down to your definition of "freedom".

The BSD licence protects the SOFTWARE ENGINEER guys, the GPL protects the END USER guys.

Cheers,
Wol

Merging bcachefs

Posted Jun 19, 2023 14:55 UTC (Mon) by paulj (subscriber, #341) [Link] (13 responses)

My own view, based on my /feelings/ of having been in Sun and - as a GPL guy (was hired for my work on GPL software) - trying to understand why much of Sun engineering had a _deep_ *hatred* of the GPL, and a favourable view of the BSD licence, is that they view it as a freedom thing.

I could never get a cogent argument as to how the BSD licence protected software freedom better than the GPL. So ultimately, the only cogent argument that *I* can construct (as said GPL guy), in the context of the engineers I knew, is that they want the code they write for an employer to be BSDed so that - if they ever leave, or the company goes under or gets bought - these engineers have the 'freedom' to continue to use the code they are familiar with at their next employer, regardless of their next employers' attitude to open-sourcing their software.

My main evidence for this is that the push to open-source Solaris (which needed a) engineering approval, and b) significant engineering led due diligence, and a little bit of code cleanup) only really came about when Sun had sunk into deep trouble, and the future didn't look great.

As you say, to protect the engineers. Specifically, ability to keep using code they've written for one employer at the next.

Merging bcachefs

Posted Jun 19, 2023 16:44 UTC (Mon) by rahulsundaram (subscriber, #21946) [Link] (12 responses)

> As you say, to protect the engineers. Specifically, ability to keep using code they've written for one employer at the next.

Worth noting other projects like Samba have managed to solve this problem by having contributors negotiate an agreement to retain the copyrights as described in

https://www.samba.org/samba/devel/copyright-policy.html

Distributing the copyright like this prevents a single entity from unilaterally changing the license and contributors can carry on their work regardless of their commercial employment.

Merging bcachefs

Posted Jun 19, 2023 17:20 UTC (Mon) by khim (subscriber, #9252) [Link] (11 responses)

> Worth noting other projects like Samba have managed to solve this problem by having contributors negotiate an agreement to retain the copyrights

This haven't solved the problem at all. Samba is not in the Android phones because of GPLv3 and it's very inconvenient to transfer files from/to Android phone because of that. BSD license would have solved that problem.

And yes, it explains why people who work for some company which is just about ready to “go under” may prefer BSD. But it doesn't explain why they would go as far as to demand that someone else have to go from GPL to BSD for their sake.

It's not their code, what right have they to demand that someone else have to provide it for them even if they want to go work for someone who would close it up and do that classic “embrace, extends, extinguish” trick?

It's one thing to fight for your own code, it's entirely other to demand that someone else have to give their code for your to misappropriate.

Merging bcachefs

Posted Jun 19, 2023 19:32 UTC (Mon) by rahulsundaram (subscriber, #21946) [Link] (10 responses)

>This haven't solved the problem at all. Samba is not in the Android phones because of GPLv3 and it's very inconvenient to transfer files from/to Android phone because of that. BSD license would have solved that problem.

This is a different issue. The problem I was responding to, was specifically about engineers ability to continue working on the code regardless of their employer. Samba developers demonstrably have that in practice.

Merging bcachefs

Posted Jun 19, 2023 20:46 UTC (Mon) by khim (subscriber, #9252) [Link] (8 responses)

> Samba developers demonstrably have that in practice.

How can they do that?

> The problem I was responding to, was specifically about engineers ability to continue working on the code regardless of their employer.

Obviously they want to use it for their work, not just as a hobby. For hobby you don't need much thought about licensing. But for work… you need to clear licensing issues.

And GPL, very often, is rejected by employers thus engineers lose the ability to use their own code if it's released under GPL.

You may argue it's not rational and they should have thought about that when they wrote code for their current employer… but I can understand their reasoning: they have already sunk tons of effort into that code, they want to continue to use it with a new employer when they change workplace… GPL doesn't give that to them.

But that's for their own code. Which they wrote. And want to use in a new place.

GPL gives you the different way of using your own code: not for the new employer, but for yourself, personally — when someone else improves it.

That's also valuable ability and one which some people prefer.

That's why I say that I can understand people who release code under BSD or Apache license (heck, I did that for that exact same reason). But demanding that someone else have to give up their own wishes and put their desires ahed of their own… sorry, guys, that goes beyond what I'm ready to accept.

Merging bcachefs

Posted Jun 19, 2023 21:18 UTC (Mon) by rahulsundaram (subscriber, #21946) [Link] (7 responses)

> How can they do that?

I already explained this. They do that by retaining copyrights. Affiliations are listed in https://www.samba.org/samba/team/. All these organizations are fine with GPLv3 obviously.

Merging bcachefs

Posted Jun 20, 2023 10:01 UTC (Tue) by paulj (subscriber, #341) [Link]

They /prefer/ contributing developers to retain copyright personally. However that is simply not an option for the vast majority of salaried engineers. Hence why the Samba contribution processes you've pointed to also have a path for corporate owned contributions.

Merging bcachefs

Posted Jun 20, 2023 13:38 UTC (Tue) by khim (subscriber, #9252) [Link] (5 responses)

> All these organizations are fine with GPLv3 obviously.

Let me see. Facebook. No. Apple. Never. Amazon. Not there. Netflix. Of course not. Google. Obviously no.

Sorry, but that's failure in my book. It puts you into a stark bind: either you avoid most desirable (and most lucrative!) employers or you can use the code you wrote. Otherwise someone else would be able to use and not you.

I can see why these people would hate GPL: it's, quite literally, forces them to choose between their own code and “dream job”.

Not good, not good at all.

Now, for other people who already made that decision and are not interested in joining FAANG-style companies… for these GPL is desirable and trade-offs are fine.

Merging bcachefs

Posted Jun 20, 2023 14:17 UTC (Tue) by rahulsundaram (subscriber, #21946) [Link] (2 responses)

> Sorry, but that's failure in my book.

That's fine, do you have any evidence that it is failure in the book of Samba developers? Because that's the only part that matters to this discussion.

Merging bcachefs

Posted Jun 20, 2023 18:38 UTC (Tue) by Cyberax (✭ supporter ✭, #52523) [Link]

> That's fine, do you have any evidence that it is failure in the book of Samba developers?

There's a presentation from one of the Samba developers about how GPLv3 failed to bring better compliance and is not helping at all.

Merging bcachefs

Posted Jun 20, 2023 20:50 UTC (Tue) by khim (subscriber, #9252) [Link]

> Because that's the only part that matters to this discussion.

Wow. Just… wow. have you already forgotten that it was you who joined discussion about Sun engineers and promised some mythical solution to their worries.

And now you turn around and say that what they think is irrelevant and only ones who support FSFs jihad matter?

I'm starting to understand why people may dislike GPL. Once upon time FSF did a lot help people dealing with their practical issues: GNU software for Solaris and, later, Linux, then CygWin and many such things helped to solve many practical problems.

But with friends like these… who proclaim opinions of other people just don't matter if they refuse to join their holy jihad… who needs enemies?

And not everyone is wise enough, like Linus, and can separate GPLv2 (really superb hack on top of copyright system) from people who invented that hack (and then eventually ruined GPL with introduction of GPLv3) and who are, today, more of bane then an asset.

Merging bcachefs

Posted Jun 22, 2023 8:04 UTC (Thu) by nim-nim (subscriber, #34454) [Link] (1 responses)

> Sorry, but that's failure in my book. It puts you into a stark bind: either you avoid most desirable (and most lucrative!) employers or you can use the code you wrote.

Once upon a time listing all the companies that made and sold BSD-based appliances was a who’s who of the industry.

Once upon a time Java was the future and the whole big data stack was built on Open Source (*not* Free Software) Java bits (Hadoop, etc). Now Python (definitely not Free-Software hostile) stole the big data show.

All those ecosystems have dramatically shrunk, the companies that remain mostly release Linux and Free-Software based products.

Open Source (as opposed to Free software) is a dead end that gets repeatedly estinguished by the greed of companies that insist on it. So maybe it pays more short term. Long term it condemns its participants to the anguish of being replaced by something else whose proponents share more with one another.

The corporations themselves do not care overmuch one way or another. Change of tech, change of techies. The only ones fooling themselves OSS vs Free Software matters for business are those techies. In the end money talks (Google’s awowed distaste for the GPL won’t make it dump Linux in GCP or Android as long as it makes them money; Microsoft has seen the *lucrative* side of cancerous GPLed Linux a long time ago).

Merging bcachefs

Posted Jun 22, 2023 20:05 UTC (Thu) by Cyberax (✭ supporter ✭, #52523) [Link]

> Now Python (definitely not Free-Software hostile) stole the big data show.

Uh... Whut? Python is quite explicitly OpenSource, not Free Software. It has a permissive license, and there's nary a GPL-ed package in sight. All the recent AI work is built on permissively licensed packages.

> Open Source (as opposed to Free software) is a dead end that gets repeatedly estinguished by the greed of companies that insist on it. So maybe it pays more short term.

What you're saying is completely false. It's Open Source that wins long-term because it's a superior development model. Proprietary forks (and models like "open core") can exist for a while, but they eventually either become obsolete and die off, or get integrated into the open code.

This is doubly so when the software gets complicated. You can't really develop a meaningful proprietary fork of Kubernetes, simply because your "secret sauce" changes will likely be insignificant compared to the overall functionality. And if they are significant, you'll have to keep up with the firehose of new functionality that is released for each new official version.

And finally, Open Source allows companies to collaborate on non-core functionality. My previous company worked in the solar industry, and we as hell wouldn't release our proprietary simulation algorithms, but we contributed quite a few patches to miscellaneous projects (because why not?).

To paraphrase an old Soviet joke, the goal of FSF is to make sure that there's no proprietary software, the goal of Open Source is to make all software open sourced.

Merging bcachefs

Posted Jun 20, 2023 9:56 UTC (Tue) by paulj (subscriber, #341) [Link]

Their new employer might not want to allow GPL code in their products - or at least, strongly discourage incorporating any /further/ GPL code into their products. You can see this with Google and Android, and others.

Merging bcachefs

Posted Jun 19, 2023 17:10 UTC (Mon) by khim (subscriber, #9252) [Link] (5 responses)

> The BSD licence protects the SOFTWARE ENGINEER guys, the GPL protects the END USER guys.

Isn't it the other way around? GPL ensures that software engineer may tinker with the code, BSD doesn't have such guarantees. GPL ensures that if someone would use your code they couldn't take it and kick out the actual author using patents, BSD doesn't have such guarantees.

On the other hand GPL makes it inconvenient to use your code which means it may not be available as widely which makes it less convenient for non-developers… and non-developers wouldn't care about source code availability since end users wouldn't know what to do with it, anyway.

I can easily understand people who are using BSD or Apache license to ensure that more people would benefit from their code even if they may lose the ability to use it freely… but to demand that someone else have to do that… that goes beyond hubris.

Merging bcachefs

Posted Jun 19, 2023 17:18 UTC (Mon) by Wol (subscriber, #4433) [Link] (4 responses)

I look at it as the Software Engineer can take any BSD code, and doesn't have to worry about pretty much anything.

It is possible to be in breach of the licence, but it's rather hard ... although AT&T did manage it.

The GPL on the other hand - if I as an end user decide to use a GPL program, I am entitled to the source code and have the right to maintain it myself. I may not be able to, for all sorts of reasons, but nobody can come up to me and say "you can't do that".

So software engineers are free to do what matters to them with BSD code (modify it, sell product), end users are free to do what matters to them with GPL code (run it, fix problems).

(And if, as an END USER, you only use Open Source code, then you don't notice any practical difference between the two.)

Cheers,
Wol

Merging bcachefs

Posted Jun 19, 2023 17:31 UTC (Mon) by khim (subscriber, #9252) [Link] (3 responses)

I think we have wildly different ideas about who “end users” are.

In today's world if you can fix your program you are an engineer, not end user.

The majority of end users don't have skills needed to fix anything.

So you are talking about engineers in both cases. Just BSD protects engineer from their own management and GPL protects engineer from management of other companies.

Frankly, I'm not sure I like BSD at all after that explanation.

Sometimes engineers are forced to work for companies known by their toxic culture, but the proper solution in that case is to leave them when possible, not trick them into adopting BSD to salvage that piece of code you worked on.

And while the desire to use BSD to salvage your own code may be justified, but to demand that others would give up their code for you to misappropriate just because you dislike that GPL puts you in the conflict with managers just makes no sense at all.

It's their code, what right do you have to demand that they would surrender it to your managers (and unreasonable, FOSS-hostile managers at that) just to make your life a tiny bit easier?

Merging bcachefs

Posted Jun 19, 2023 22:08 UTC (Mon) by Wol (subscriber, #4433) [Link] (2 responses)

> In today's world if you can fix your program you are an engineer, not end user.

They're not exclusive. True, PEOPLE end users are rarely engineers, but company end users can employ engineers. And it's difficult to be an engineer without being an end user too. You personally, do you work on all the software you use? I doubt it. For MOST of the software you use, you are an END USER. How many people USE gcc? How many people HACK on gcc? If you use but don't hack, you are an END USER.

> The majority of end users don't have skills needed to fix anything.

But that's not what the GPL is about. They have the RIGHT to fix it, they have the SOURCE to fix it, and they have the TOOLS to fix it. The fact that they don't personally have a clue HOW to fix it is their problem, and it is IN THEIR POWER to solve.

Whereas the thing with BSD is that, if you spot a nifty hack in someone else's code, you can just lift and use it without worrying. Both licences have their place. They target different problems, and provide different solutions. BSD is especially good for sample code or code in standards documents.

The problem with the FSF and the GPL is that some software costs a lot of money to maintain, with legal issues etc etc. If you insist on GPL, this sort of software will never get written. That's why I have a problem with the FSF - they think I should not have the freedom to buy a commercial product!

Personally, I'd like to see a license that's a sort of half-way house along the lines of "if you use my code in your product, you have to provide your customer with your source and build system". Give customers the GPL freedoms to study the source and fix their own problems, but still protect the supplier's source code as trade secret or whatever. The freedom to share may be nice, but freedoms often conflict. And if you IMPOSE YOUR CHOICE of freedoms on me, you are making me your slave! Americans seem to have difficulty grasping the fact that other people value different freedoms than they do. Even Sun engineers prefering BSD! and refusing to allow other people to choose GPL!

Cheers,
Wol

Merging bcachefs

Posted Jun 20, 2023 22:34 UTC (Tue) by khim (subscriber, #9252) [Link] (1 responses)

> If you use but don't hack, you are an END USER.

Yes, and I'm acting like end user, too.

> You personally, do you work on all the software you use?

No, but all the software that I'm just using is a black box to me. Modern software is just too complex to try to change it.

In theory I can get source for gcc or rust compiler or rust analyzer and change something there. In practice it's just too time consuming to contemplate.

In an era where most software was simple and had lots of bugs changing something into it made sense.

But then… “Worse Is Better” won.

As Tony Hoare once wrote: There are two ways to write code: write code so simple there are obviously no bugs in it, or write code so complex that there are no obvious bugs in it.

And today's software have no obvious bugs in it and as a result it's so incredibly complex that fixing remaining non-obvious bugs quickly becomes full-time job.

> They have the RIGHT to fix it, they have the SOURCE to fix it, and they have the TOOLS to fix it.

And all that doesn't matter because they don't want to fix it. Including me, for aforementioned reasons. That's why GPL is much less valuable for me today… even if I can understand people who are using it.

> Americans seem to have difficulty grasping the fact that other people value different freedoms than they do. Even Sun engineers prefering BSD! and refusing to allow other people to choose GPL!

Yup. That's the country where congressman say, literally, the following: If China behaves as aggressively as Russia, then we will deprive them of their main trading partner in the face of the EU. Europe will impose crushing sanctions. Note that no one plans to deprive US of anything and they plan to make someone else to do the work for them.

How is that any different from Sun engineer's position?

Merging bcachefs

Posted Jun 28, 2023 6:16 UTC (Wed) by timofonic (guest, #165836) [Link]

Why so much offtopic? Sincerely. I would prefer more direct discussion about Bcachefs. Despite the nice threading, it's noisy and a wasted effort.

Merging bcachefs

Posted Jun 19, 2023 12:37 UTC (Mon) by rahulsundaram (subscriber, #21946) [Link] (1 responses)

> Hard to call it "GPL hostile" when any work from BSD etc can get stolen by linux but never contributed back.
> If you want to be rude like that.

Let's stick to facts even if one wants to be rude. Nothing has been "stolen" by anyone because no free and open source license requires anyone to contribute anything back, especially permissive BSD licenses. The strong copyleft licenses can only mandate the changes be made public under the same license.

Merging bcachefs

Posted Jun 20, 2023 14:00 UTC (Tue) by Baughn (subscriber, #124425) [Link]

The whole point of BSD / MIT licenses is, you're saying you're okay with people taking your stuff and giving nothing back. If you don't want that to happen, put it in the license! Which, um, that's what the GPL license *does*.

I simply don't understand people who license their work BSD, and then go "No, we meant for you to act as though it's GPL!"

Merging bcachefs

Posted Jun 19, 2023 1:30 UTC (Mon) by developer122 (guest, #152928) [Link] (3 responses)

I really don't think it's that unreasonable to want to be able to detach a hard drive from one computer and be able to attach it to another. Portability of filesystems, especially good ones, across different OSs is really helpful.

Yes, saying "welp, sucks to be them" is an option, but I like to believe we're adults here and can at least discuss the possibility. The GPL-supremacy and Sun/Oracle-Hate fuelled comments above are very disappointing.

Merging bcachefs

Posted Jun 19, 2023 2:22 UTC (Mon) by mjg59 (subscriber, #23239) [Link]

Oracle, the company that attempted to assert that reimplementation of APIs was copyright infringement? I think it's pretty legitimate for the free software community to have negative feelings towards Oracle.

Merging bcachefs

Posted Jun 19, 2023 13:01 UTC (Mon) by rahulsundaram (subscriber, #21946) [Link]

> Portability of filesystems, especially good ones, across different OSs is really helpful.

GPL license doesn't prevent portability and nothing is stopping any BSD based system from making it available for their OS. Many of them ship with Linux compatibility layers to aid with this.

> The GPL-supremacy and Sun/Oracle-Hate fuelled comments above are very disappointing.

Many BSD proponents won't even accept that GPL and AGPL are free and open source licenses and insist that only permissive licenses are truly free, so this goes both ways. Sun and Oracle aren't the same thing in this context. The licensing decisions for OpenSolaris were exclusively done by Sun (and several Sun people readily acknowledge that the engineers there were GPL hostile). However independent of all of this, Oracle's history towards other open source projects (Java lawsuit, silently canceling OpenSolaris, Hudson governance etc) has enough there to explain the hostility.

Merging bcachefs

Posted Jun 20, 2023 9:23 UTC (Tue) by paulj (subscriber, #341) [Link]

Not sure if there's much Sun hatred. FWIW, I loved working at Sun, it was a great great company.

Merging bcachefs

Posted Jun 18, 2023 1:45 UTC (Sun) by developer122 (guest, #152928) [Link] (4 responses)

What is bcachefs' handling of metadata corruption like? There's plenty of mention of data checksumming and erasure coding for repair, but what about online detection and repair of corruption/issues with the filesystem's datastructures and book-keeping?

Merging bcachefs

Posted Jun 18, 2023 16:09 UTC (Sun) by koverstreet (✭ supporter ✭, #4296) [Link] (3 responses)

We don't yet have online fsck like xfs is getting soon, but we'll detect issues at runtime and by default go emergency read only, like other filesystems.

Merging bcachefs

Posted Jun 18, 2023 20:37 UTC (Sun) by developer122 (guest, #152928) [Link] (1 responses)

Is the metatata protected by checksums or other integrity checks?

Merging bcachefs

Posted Jun 18, 2023 20:39 UTC (Sun) by developer122 (guest, #152928) [Link]

Side note: I think ZFS solves this problem by checksumming their metadata structures and always maintaining at least one duplicate of every table/list/node/etc structure?

Merging bcachefs

Posted Jun 28, 2023 0:31 UTC (Wed) by timofonic (guest, #165836) [Link]

Any plans for it? What's the priority for that feature? How difficult is to implement it and make it ready to use?

Encryption

Posted Jun 18, 2023 9:24 UTC (Sun) by GhePeU (subscriber, #56133) [Link] (2 responses)

I am curious about the state of filesystem encryption, the website mentions that bcachefs supports only whole filesystem encryption but suggests not relying on it because it has not been externally audited, is it still true?

From a rapid check it also seems that the design and implementation of encryption predates the introduction of snapshots and subvolumes, is there any plan to add subvolume-level encryption? That would be an useful feature.

Encryption

Posted Jun 18, 2023 16:08 UTC (Sun) by koverstreet (✭ supporter ✭, #4296) [Link] (1 responses)

It's been pretty well audited, I need to update the website.

Encryption

Posted Jun 28, 2023 0:31 UTC (Wed) by timofonic (guest, #165836) [Link]

Are there a bcachefs blog?

Maybe you need a documentation maintainer too. You must be quite busy with coding and management already.

Just my humble opinion.

Merging bcachefs

Posted Jun 29, 2023 10:15 UTC (Thu) by dxin (guest, #136611) [Link]

I hope android could someday support bcachefs. Right now there's a big performance gap between internal emmc/ufs and external micro-sd card.

Merging bcachefs

Posted Jul 1, 2023 11:38 UTC (Sat) by georgh-cat (guest, #158897) [Link]

I'm glad to see progress on this filesystem, it looks it might even get better than ZFS eventually, as it's a much modern design that learns and improves from all previous COW filesystems.

But it will take a while until the userspace is as friendly as ZFS's, and also getting feature parity.

I've been using ZFS at home since 2008, and it's saved me from silent corruption when I had a problem in one of the disks' connector. The system never crashed or panicked, it's been extremely stable.

There's a fantastic project, znapzend, which provides an easy way to automate snapshot creation and deletion as well as sending to a backup system. And all the configuration lives directly within the ZFS pool. Would something like that be possible with bcachefs?


Copyright © 2023, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds