Re: [dev] JFS filesystem

From: Daniel Cegiełka <daniel.cegielka_AT_gmail.com>
Date: Sun, 21 Apr 2019 19:41:02 +0200

niedz., 21 kwi 2019 o 16:13 Martin Tournoij <martin_AT_arp242.net> napisał(a):
>
> On Sun, 21 Apr 2019 14:53:19 +0200 Daniel Cegiełka <daniel.cegielka_AT_gmail.com> wrote:
> > ZFS, btrfs and bcachefs are, however, designed as a filesystems for data storage.
> > These are good filesystems for databases. Next to this is the daily
> > work, where ext4 looks best.- so bit rot is not a huge problem vs mem
> > errors etc.
>
> What exactly disqualifies bcachefs as a general purpose filesystem?

Kent Overstreet said he didn't test bcachefs on small setups. This is
a filesystem designed for storage. It is therefore a competition for
btrfs and zfs.

We have three main purpose filesystems:
* reading - Speed is the key here.
* writing - This is a very complex issue. Write operations should be
atomic (see Raiser4). Data integrity should be checked at the memory
level. And of course speed.
* storage - Speed is not the most important factor here. The key is
data integrity and their safe storage.

ZFS, btrfs and bcachefs are filesystems that are intended for storage.
These are horrible solutions if you want to use them for writing. Here
you have a very interesting analysis of this problem:

https://fmad.io/blog-packet-capture-filesystem.html

XFS therefore has the best fs in writing data. fmad.io, however, use
another solution (this company specializes in data capturing). They
allocate to ext4+RAID (md) a large block of memory (fallocate). Then
use this block of memory as a huge ring buffer and they simply copy
memory using mmap. Of course, data integrity is checked at every step:

https://fmad.io/blog-10g-capture-data-integrity.html

So they don't use directly any popular filesystem. They moved
everything to the user's space. Next, I will give another example of
moving certain functionalities to the user's space. But first. What is
important for the operating system? Record? Storage? Reading.

The best example here is Google. They used ext2 for a long time as
their main filesystem. Yes, ext2. Why? ext2 is a very simple file
system - it is light and fast. One of the best fs if fast data reading
is important. So no ZFS, no btrfs etc.

Ok, but what about the data integrity? An example here is Miscrosoft
and GVFS Driver. They turned git into a virtual filesystem. Git
provides data integrity checks, backup and cloning of data to other
machines. See Michael Forney's Oasis distro. He uses git to manage the
system:

https://github.com/michaelforney/oasis/wiki/Repository

> I used to run ZFS on my laptop (years ago on OpenSolaris, where it was
> the default), and it seemed to work well enough.
>
> Perhaps I'm being naïve, but it seems to me that this is one area where
> it's better to be safe than sorry.

But how can RAIDZ help you if your drive stops working? ZFS ate the
CPU's power, memory and battery. The combination of ext4, JFS or XFS +
git would be much better for your's laptop. But I'm looking for an
alternative to ext4. Kent Overstreet about ext4:

https://www.patreon.com/bcachefs

"ext4, which works - mostly - but is showing its age. The codebase
terrifies most filesystem developers who have had to work on it, and
heavy users still run into terrifying performance and data corruption
bugs with frightening regularity. The general opinion of filesystem
developers is that it's a miracle it works as well as it does, and
ext4's best feature is its fsck (which does indeed work miracles)."

Summing up: JSF seems to me an interesting alternative to ext4. I know
that JFS has a lot of shortcomings, and will require a lot of work and
patches.

Daniel
Received on Sun Apr 21 2019 - 19:41:02 CEST

This archive was generated by hypermail 2.3.0 : Sun Apr 21 2019 - 19:48:08 CEST