Live data from Hacker News

Bcachefs Goes to "Externally Maintained"

lwn.net

351–360 of 400 posts

Re: Bcachefs Goes to "Externally Maintained"

#351
post #298

Earlier quoted context omitted.

> I can't be bowing to the demands of any one person This right here is the core of the issue. When you're working as a part of a larger organizational structure, you have to bow down to your boss. When your software is a part of the kernel, it's not your project anymore; it's just one part of Linus's project. You're a contributor, not a leader. Just like I would not control Bcachefs's development process even if I c…

Linus isn't my boss, though. Am I paid by him or the Linux foundation? No. Has he ever contributed to bcachefs in any way, is he in any way responsible for making sure that it works properly? No. The only sense in which he has authority is that he can decide whether or not to pull it into his tree, but that's a two way relationship.

Linus is not your boss in the sense that he pays you and can tell you what you do day o day, but he is your "boss" in the sense that he's the one who ultimately approves your work (which includes both your code and your conduct).

It's a "two-way street" (you can walk away as much as he), but you need to understand that this is not an equal relationship. It might have been if Linux did not yet have a file system and you were the only person who could build one. If that was the case, Linus might have swallowed his pride for the good of the project. But as it stands, Linux has existed for some 35 years without Bcachefs and can continue to do so. So the key stakeholders have simply decided that with this amount of friction, despite the technical advantages, it's not worth the trouble (yes, it is sad).

Very realistically and bluntly, you have 3 options: a) Learn to work Linus and other kernel maintainers in ways that are comparable with their work and processes. Remember, you're on their territory, and when in Rome, do as the Romans do. b) Keep and develop Bcachefs out of kernel. That way you can stay on your own turf and work on your terms, but Bcachefs is going to be a much less attractive and viable option, leave alone become the default fs. c) Have someone else do the integration work and collaboration with the kernel team.

These are your options, but a combination is also an option. I would probably recommend starting with option b first and finish the bulk of the work out of tree. Then once it's all done and ready to ship, try to get it into the kernel as politely and timely as possible (you shouldn't need any late commits this time). Continue developing new and experimental functionality out of tree to keep the number of PRs (and thus possible causes of friction) low. I don't know if at any point you'd want to ask someone else to interface with the kernel team. I think it's far preferable if you can learn to do it yourself. Knowing how to work with people (including difficult people) is an incredibly important and useful skill in almost anyone's career. Maybe find a communication/diplomacy mentor? I've never heard anyone complain about your engineering skills, but this is really holding you back.

Again and as always, thank you for your hard work. I wish you all the best and hope that some day we can all use Bcachefs by default.

Re: Bcachefs Goes to "Externally Maintained"

#352
post #69

Who would use a file system which essentially seems to be developed by a single person? A bus-factor of one seems unacceptable for a FS. But maybe I am wrong and there are other developers, then why do they not take over upstreaming if the main developer is unable to collaborate with the kernel community.

Exactly, some of us remember thinking using reiserfs was a great idea...

Re: Bcachefs Goes to "Externally Maintained"

#353

Earlier quoted context omitted.

> Closest realization of "filesystem as a database" that I know of More so than BFS? https://en.m.wikipedia.org/wiki/Be_File_System "Like its predecessor, OFS (Old Be File System, written by Benoit Schillings - formerly BFS), it includes support for extended file attributes (metadata), with indexing and querying characteristics to provide functionality similar to that of a relational database."

What BFS did is very cool, and I hope to add that to bcachefs someday. But I'm talking more about the internals than external database functionality; the inner workings are much more fundamental. bcachefs internally is structured more like a relational database than a traditional Unix filesystem, where everything hangs off the inode. In bcachefs, there's an extents btree (read: table), an inodes btree, a dirents btre…

Thank you for the details, appreciate it, sounds promising.

Re: Bcachefs Goes to "Externally Maintained"

#354
post #345
post #322

Earlier quoted context omitted.

Oracle can't do anything. They can't relicense code that was already released as CDDL in any form other than what they did when they closed down Solaris. The CDDL being unacceptable is the same issue that GPL3 or Apache is unacceptable - unlike GPLv2, CDDL mandates patent licensing as far as the code is considered.

Oracle is the license steward for CDDL, they have the right to release CDDL-2.0 and make it GPL-compatible which users would then be allowed to chose to use. Mozilla did the same thing with MPL-2.0 (CDDL was based on MPL-1.0), though the details are a little more complicated. Unlike the GPL, the CDDL (and MPL) has an opt-out upgrade clause and all of OpenSolaris (or more accurately, almosf all software under the CDDL…

0) Assuming Oracle actually retains the stewardship of license:

1) Making CDDL compatible with GPLv2 puts everyone using CDDL code at mercy of Oracle patents

2) OpenZFS is actually not required to upgrade, and the team has indicated they won't. So you end up with a fork you need to carry yourself. Might even force OpenZFS to ensure that it's specifically 1.0.

Ultimately it means Oracle can't do much with this.

Re: Bcachefs Goes to "Externally Maintained"

#355

Earlier quoted context omitted.

For me bcachefs provides a feature no other filesystem on Linux has: automated tiered storage. I've wanted this ever since I got an SSD more than 10 years ago, but filesystems move slow. A block level cache like bcache (not fs) and dm-cache handles it less ideally, and doesn't leave the SSD space as usable space. As a home user, 2TB of SSDs is 2TB of space I'd rather have. ZFS's ZIL is similar, not leaving it as usab…

> automated tiered storage. I've wanted this ever since I got an SSD more than 10 years ago, but filesystems move slow. You were not alone. However, things changed, namely SSD continued to become cheaper and grew in capacity. I'd think most active data is these days on SSDs (certainly in most desktops, most servers which aren't explicit file or DB servers and all mobile and embedded devices), the role of spinning rus…

Yeah, for enterprise where you can have dedicated machines for single use (and $) there probably isn't much appeal. That's why I emphasized as a home user, where all my machines are running various applications.

Also for video games, where performance matters, game sizes are huge, and it's nice to have a bunch of games installed.

Re: Bcachefs Goes to "Externally Maintained"

#356
post #354
post #345

Earlier quoted context omitted.

Oracle is the license steward for CDDL, they have the right to release CDDL-2.0 and make it GPL-compatible which users would then be allowed to chose to use. Mozilla did the same thing with MPL-2.0 (CDDL was based on MPL-1.0), though the details are a little more complicated. Unlike the GPL, the CDDL (and MPL) has an opt-out upgrade clause and all of OpenSolaris (or more accurately, almosf all software under the CDDL…

0) Assuming Oracle actually retains the stewardship of license: 1) Making CDDL compatible with GPLv2 puts everyone using CDDL code at mercy of Oracle patents 2) OpenZFS is actually not required to upgrade, and the team has indicated they won't. So you end up with a fork you need to carry yourself. Might even force OpenZFS to ensure that it's specifically 1.0. Ultimately it means Oracle can't do much with this.

0) They do.

1) They could just adapt MPL-2.0, which provides GPLv2+ compatibility while still providing the same patent grants.

2) The upgrade is chosen by downstream users. The OpenZFS project could ask individual contributiors to choose to license their future contributions differently but that will only affect future versions and isn't a single decision made by the project leads. I don't know in what context that discussion was in but given that the have not already opted-out of future CDDL versions kind of indicates that they can imagine future CDDL versions they would choose to upgrade to.

Also, OpenZFS is under CDDL-1.1 not 1.0.

Re: Bcachefs Goes to "Externally Maintained"

#357

Earlier quoted context omitted.

Linus has broken the build more recently than I have. (In the time since bcachefs went upstream, we've both done that once, that I've seen). Linus doesn't seem to believe in automated testing. He just seems to think that there's no way I could QA code as quickly as I do, but that's because I've invested heavily in automated testing and building up a community of people doing very good testing and QA work; bcachefs's…

> Linus has broken the build more recently than I have. Even taking your claims at face value (which from this thread alone is a heck of a leap) I'm baffled by the way you believe this holds any relevance. I mean, the kernel project has in place a quality assurance process designed to minimize the odds of introducing problems when preparing a release. You were caught purposely ignoring any QA process in place and try…

I would also like to know what the QA process is, because all I can see is basically 'linus pulls in changes in the merge window, checks that the basic stuff builds, then releases the RCs and some people do some checks in some way, varying from users on the bleeding edge, some people doing manual verification on specific hardware and use-cases, and maybe some automatic tests and analysis that are not really documented anywhere, and the end result is some bug reports'. Is there anything more co-ordinated than that? Like some description of what is tested and how, or an explicit green indication that those tests have actually happened and a policy on what would hold up a release?

Re: Bcachefs Goes to "Externally Maintained"

#358
post #200

Earlier quoted context omitted.

I actually like the idea of the maintainer going out of his way to make sure that my filesystem is safe to use. Even if it goes against the established rules. And I'm saying that as someone who actually likes both Linux and Debian.

It's a strawman to imagine that Debian doesn't have a way to ensure filesystems are safe and to respond to critical bugs that might cause data corruption. It's just that you have to follow their rules to do it. (And broadly the same rules apply to the other big distros as well).

And the rules demonstrably create situations where it's easy to introduce bugs or hard to fix them, because they prioritise stability and a consistent set of package versions over the version that the upstream developer has tested. Followed blindly (and without putting in the effort to test to the same level of rigor as upstream), this causes problems, and it's right to point those out. Debian's ways would involve the package maintainer putting in a lot more effort to marry their rules with a package that actually worked, and they were not up for that.

(Debian's rules aren't worthless, it's part of how they can make something that's pretty suitable for 'boring infrastructure' systems because they can keep a system with a known and stable set of behavior up to date with critical security fixes for a long time, but boy do they result in some dumb situations sometimes)

Re: Bcachefs Goes to "Externally Maintained"

#359
post #99

Earlier quoted context omitted.

> Sadly, Kent responds to everything in an email except the key part that is being pointed out to him (usually his behavior). Behaviour sounds like the least important part of code contributions. I smell overpowered, should've-been-a-kindergarten-teacher code of conduct person overreach.

No. As someone who likes bcachefs and even literally donates to Kent's patreon, the way he has gone about engaging with the kernel community is not productive. Unfortunately. CoC isn't even the issue, he constantly breaks kernel development rules relating to the actual code, then starts arguments with everyone up to and including Linus when he gets called out, and aggressively misses the point every time. Then starts…

I think it is partly about code of conduct issues[0]. I totally agree that Linus can run whatever release process he likes, and Overbeck should get in line with that. However all of the accompanying sighing at how many times we've had to explain things to him from others is not okay. So what if more discussion is needed or wanted? People doing difficult work might have strong opinions. People doing easy work (e.g. sending code of conduct emails) should not have an equal weight to their opinions, if any at all.

[0] https://lore.kernel.org/lkml/6740fc3aabec0_5eb129497@dwillia...

Re: Bcachefs Goes to "Externally Maintained"

#360

Earlier quoted context omitted.

> But there's a ton of room for improvement beyond what ZFS did. Say more? I can't say I've really thought that much about filesystems and I'm curious in what direction you think they could be taken if time and budget weren't an issue.

that would be bcachefs :) It's an entirely clean slate design, and I spent years taking my time on the core planning out the design; it's as close to perfect as I can make it. The only things I can think of that I would change or add given unlimited time and budget: - It should be written in Rust, and even better a Rust + dependent types (which I suspect could be done with proc macros) for formal verification. And ca…

[deleted]
Post reply on HN