Discussion:
anyone uses ReiserFS today
(too old to reply)
David
2024-08-12 08:20:01 UTC
Permalink
Most recent years we keep using the ext4 filesystem.
But years ago before ext4 we used the ReiserFS filesystem.
In my memory ReiserFS was a good choice for our application (many
small files).
Do you anybody still use ReiserFS today? How about it compares to
ext4?
Is it even being maintained these days?
Cheers!
--
`Loyalty to country–Always.
Loyalty to government, when it deserves it’.

-- Mark Twain
Michael Kjörling
2024-08-12 08:40:01 UTC
Permalink
Post by David
Do you anybody still use ReiserFS today? How about it compares to
ext4?
Is it even being maintained these days?
Per Wikipedia:

ReiserFS 3 <https://en.wikipedia.org/wiki/ReiserFS>: "The
reiserfsprogs 3.6.27 were released on 25 July 2017." "[ReiserFS 3] was
deprecated in Linux 5.18, and marked as obsolete in Linux 6.6. It is
planned for removal in 2025."

ReiserFS 4 <https://en.wikipedia.org/wiki/Reiser4>: "As of 2021, the
Reiser4 patch set is still being maintained, but according to
Phoronix, it is unlikely to be merged into mainline Linux without
corporate backing."

Footnote references in the original text deleted. See the respective
article if you want more details including source citations.

Note that Debian Stable/Bookworm is on Linux 6.1, which puts ReiserFS
3 at deprecated but not yet obsoleted. Bookworm Backports is currently
on 6.9, and Trixie is currently on 6.10 so it will have a status of
deprecated in Stable as of likely mid-2025 or thereabouts. If the
kernel developers follow through on that 2025 removal, Debian 14/Forky
(which I would expect to see in 2027) will be using a kernel with no
ReiserFS 3 support at all unless perhaps someone maintains it out of
tree; and if my understanding is correct, ReiserFS 4 requires
out-of-tree kernel software to be used on any version of Linux.
--
Michael Kjörling 🔗 https://michael.kjorling.se
“Remember when, on the Internet, nobody cared that you were a dog?”
Thomas Schmitt
2024-08-12 08:40:01 UTC
Permalink
Hi,
In my memory ReiserFS was a good choice for our application (many small
files).
Yes, that was its main strength.

Possibly ext4 can economize on very small files, too.
man 1 chattr mentions:
"A file with the 'N' attribute set indicates that the file has data
stored inline, within the inode itself. It may not be set or reset
using chattr(1), although it can be displayed by lsattr(1)."
One would have to research how this can be achieved.
Do you anybody still use ReiserFS today?
I gave it up 9 years ago when i began to use Debian 8.
Meanwhile it is about time to make migration plans:

https://www.phoronix.com/news/ReiserFS-Obsolete
"As part of updates to the older file-system drivers for Linux 6.6,
the ReiserFS file-system is no longer marked as "Supported" but is
officially treated as "Obsolete" within the Linux kernel."


Have a nice day :)

Thomas
Thomas Schmitt
2024-08-12 18:20:02 UTC
Permalink
Hi,

i think i found documentation about effective storage of very small
files in ext4:
https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout#Inline_Data
https://unix.stackexchange.com/questions/197633/how-to-use-the-new-ext4-inline-data-feature-storing-data-directly-in-the-inode
https://man7.org/linux/man-pages/man5/ext4.5.html

I am currently tinkering with restoring chattr(1) attribute flags from
ISO 9660 to disk. But it will last a while until i get to the 'N'
attribute, especially since it is only an indicator and restoring will
probably need setxattr(2) rather than ioctl(FS_IOC_SETFLAGS), as the
settable attribute flags do. Recording such attributes is much easier than
restoring them. Especially 'i', 'C', and 'F' constitute semantic mine
fields for a backup program.

So reports about suitability of inline data in ext4 would be appreciated.


Have a nice day :)

Thomas
Wesley
2024-08-13 11:10:01 UTC
Permalink
Post by Thomas Schmitt
Hi,
i think i found documentation about effective storage of very small
https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout#Inline_Data
https://unix.stackexchange.com/questions/197633/how-to-use-the-new-ext4-inline-data-feature-storing-data-directly-in-the-inode
https://man7.org/linux/man-pages/man5/ext4.5.html
Thanks for the URLs. They look valuable to me too.
Michael Stone
2024-08-14 00:30:01 UTC
Permalink
Post by Thomas Schmitt
Yes, that was its main strength.
ReiserFS's main strength was that it reimagined how filesystems should
be used. It's main drawback was that applications would need to be
redesigned in order to take advantage of the new paradigm, and then
wouldn't work with any other filesystem or OS. As a side effect, it
provided the benfits of a journalling filesystem when there weren't a
lot of good options for that on linux. It was briefly popular so people
could avoid lengthy fsck's, not generally because people wanted reiserfs
specifically. Once other journalling filesystems became available and
people realized that nobody was going to rewrite the world for reiserfs
(and other obvious headwinds) it was over.

If anyone's still using it, they should really rethink that.
d***@howorth.org.uk
2024-08-14 14:50:02 UTC
Permalink
Post by Michael Stone
Post by Thomas Schmitt
Yes, that was its main strength.
ReiserFS's main strength was that it reimagined how filesystems
should be used. It's main drawback was that applications would need
to be redesigned in order to take advantage of the new paradigm, and
then wouldn't work with any other filesystem or OS.
Off-topic really, but could you explain (or point to an explanation)
how applications could be redesigned for this 'new paradigm'. I ask
because I used reiserfs because of (a) journalling and (b) handling
many small files. I've never seen anything before that suggested I
should redesign my applications.
Michael Stone
2024-08-14 20:00:01 UTC
Permalink
Post by d***@howorth.org.uk
Off-topic really, but could you explain (or point to an explanation)
how applications could be redesigned for this 'new paradigm'. I ask
because I used reiserfs because of (a) journalling and (b) handling
many small files. I've never seen anything before that suggested I
should redesign my applications.
The short answer is that the reason it handles small files well is
because Reiser wanted the filesystem to be used for direct storage of
small objects, whereas most applications dealing with small objects
combine them into a larger object which is what is stored in the
filesystem. E.g., a database like sqlite stores records in a large file
which the database software manages internally rather than storing each
record as a separate file. If the database wanted to take advantage of
this paradigm and store small records in individual files, it would
exhibit ridiculously poor performance on every other filesystem and
OS, and writing a database only for reiserfs seemed overly limiting.
Remember reiserfs was always a research project, and never quite done;
reiser4 pushed these concepts further (e.g., added various atomic
transaction modes) but never got merged.

The best/most portable answer to the question "how do I store a really
large number of really small files" is generally "don't do that thing",
and the kind of software that did a lot of that is mostly gone (old
school usenet servers were one of the biggest drivers, and before usenet
went away they were moving away from the original "each article is a
file" model toward aggregated models like cnfs). Maildir is one of the
last holdouts, and reiserfs never worked well for that anyway (because
of atomicity issues; reiser4 was going to fix that if things had gone as
planned, but that's long since ceased to matter). Newer filesystems like
ext4 and xfs also handle (sane) amounts of many files per directory much
better than reiserfs's contemporaries, making the need for alternatives
less pressing.
Nicolas George
2024-08-15 11:20:02 UTC
Permalink
The short answer is that the reason it handles small files well is because
Reiser wanted the filesystem to be used for direct storage of small objects,
whereas most applications dealing with small objects combine them into a
larger object which is what is stored in the filesystem. E.g., a database
like sqlite stores records in a large file which the database software
manages internally rather than storing each record as a separate file. If
the database wanted to take advantage of this paradigm and store small
records in individual files, it would exhibit ridiculously poor performance
on every other filesystem and OS, and writing a database only for reiserfs
seemed overly limiting. Remember reiserfs was always a research project, and
never quite done;
reiser4 pushed these concepts further (e.g., added various atomic
transaction modes) but never got merged.
Except the original plan did not hold water, even at the time.

The blocks at using the file system instead of a more advanced format is
not just the inefficiency of the storage.

First, there are system calls, they are expensive. Reading a file takes
at least three system calls: open, read, close, that is assuming you
already have enough memory and the file is small enough to fit in it in
a single read.

With one record per file, you need three system calls per record. With
multiple records per file, you can read thousands of records with the
same number of system calls. Or use mmap and have all the records
available without system calls — but with page faults.


Second, the file system offers only key → value conversion and
hierarchical enumeration: you can efficiently get at a file if you know
its name, or a set of files if they are all one directory.

But if you want, for example, the files in a certain interval of time,
no luck. You could organize your directories to make the kind of request
you make frequently efficient, like having a YYYY/MM/DD/HH hierarchy,
but it is made awkward by the very limited API of the file system, and
cannot even remotely compete with the indexing abilities of structured
formats with multiple records per file.


Third (and last of what I think of right now), libraries or servers to
handle structured data often infrastructure to ensure non-trivial
consistency in the data. For example it can delete automatically
sub-records associated with a main record you just deleted. With the
file system, you would have to reinvent all that.


Do not get me wrong, I am not a fan at all of “if all you've got is SQL,
everything looks like a flat list, even a straightforward tree
structure”, but the “just use the file system” people do not even
realize the kind of services they do render.

Regards,
--
Nicolas George
Michael Stone
2024-08-15 12:20:01 UTC
Permalink
Post by Nicolas George
Except the original plan did not hold water, even at the time.
yes, that's why Reiser continued to add non-traditional filesystem
features right up to the end. and the more it diverged from a
traditional filesystem, the less likely it was that it would get broad
adoption.

e***@gmx.us
2024-08-12 16:50:01 UTC
Permalink
Most recent years we keep using the ext4 filesystem.
But years ago before ext4 we used the ReiserFS filesystem.
In my memory ReiserFS was a good choice for our application (many small files).
Do you anybody still use ReiserFS today? How about it compares to ext4?
IIRC it got its efficiency boost by storing bits of one file in the
allocated-but-not-full inode of another. While true, that's more space
efficient, good luck untangling the mess that filesystem damage makes.

--
I firmly believed we should not march into Baghdad ...To occupy Iraq
would instantly shatter our coalition, turning the whole Arab world
against us and make ... a latter-day Arab hero assigning young soldiers
to a fruitless hunt for a securely entrenched dictator[.] -- GHWB
Loading...