• Re: anyone uses ReiserFS today

    From David@21:1/5 to Wesley on Mon Aug 12 10:20:01 2024
    On Mon, 2024-08-12 at 08:09 +0000, Wesley wrote:
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Wesley@21:1/5 to All on Mon Aug 12 10:20:01 2024
    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?

    Thanks.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Thomas Schmitt@21:1/5 to Wesley on Mon Aug 12 10:40:01 2024
    Hi,

    Wesley wrote:
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Michael =?utf-8?B?S2rDtnJsaW5n?=@21:1/5 to All on Mon Aug 12 10:40:01 2024
    On 12 Aug 2024 18:17 +1000, from [email protected] (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?”

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From [email protected]@21:1/5 to Wesley on Mon Aug 12 18:50:01 2024
    On 8/12/24 04:09, Wesley wrote:
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Thomas Schmitt@21:1/5 to All on Mon Aug 12 20:20:02 2024
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Wesley@21:1/5 to Thomas Schmitt on Tue Aug 13 13:10:01 2024
    August 13, 2024 at 2:14 AM, "Thomas Schmitt" <[email protected]> wrote:




    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


    Thanks for the URLs. They look valuable to me too.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Michael Stone@21:1/5 to Thomas Schmitt on Wed Aug 14 02:30:01 2024
    On Mon, Aug 12, 2024 at 10:37:12AM +0200, Thomas Schmitt wrote:
    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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From [email protected]@21:1/5 to Michael Stone on Wed Aug 14 16:50:02 2024
    Michael Stone <[email protected]> wrote:
    On Mon, Aug 12, 2024 at 10:37:12AM +0200, Thomas Schmitt wrote:
    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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Michael Stone@21:1/5 to [email protected] on Wed Aug 14 22:00:01 2024
    On Wed, Aug 14, 2024 at 03:46:45PM +0100, [email protected] wrote: >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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Nicolas George@21:1/5 to All on Thu Aug 15 13:20:02 2024
    Michael Stone (12024-08-14):
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Michael Stone@21:1/5 to Nicolas George on Thu Aug 15 14:20:01 2024
    On Thu, Aug 15, 2024 at 01:13:15PM +0200, Nicolas George wrote:
    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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)