Slashdot Mirror


Interview With Reiser4 Author Hans Reiser

An anonymous reader writes "KernelTrap has an interesting interview with Hans Reiser, the author of two revolutionary Linux filesystems, Reiser3 and Reiser4. Reiser3 was the first journaling Linux filesystem. Reiser4 is a complete rewrite that is claimed to offer amazing performance and a new plugin architecture offering semantic enhancements to rival Microsoft's WinFS and Apple's Spotlight. Comparing Reiser4 to WinFS, Reiser says in the interview, "Reiser4 is a much more mature design, representing a 10 year effort"."

20 of 382 comments (clear)

  1. Re:No one cares, but . . . by lordsilence · · Score: 3, Insightful

    Having other people agree with him?

  2. What exactly is "amazing" performance? by CyricZ · · Score: 2, Insightful

    How does the performance of Reiser4 compare to that of Reiser3, XFS, JFS, EXT2/3, UFS, UFS2, etc., in quantitative terms, for various applications?

    --
    Cyric Zndovzny at your service.
  3. Interface to metadata? by Gothmolly · · Score: 2, Insightful

    Journalled filesystems are so 90s. Everyone is raving about how the new whizbang filesystems of the 21st century are going let you do metadata searches, and harken back to the beloved (?) BeOS. Well, what I want to know is: How do I get to this metadata? Some extra tool? Some right-click option that I have to select every time I create a file? Will all File dialog boxes have to be rewritten, and will I have to manually input all this info?
    I'm happier with Google desktop, which can, effectively, search many types of my files, and has a relatively familiar interface (for all but RMS).
    Once there's an application which can find all pictures of my dog, or songs with piano in them, and store THAT in the metadata, which I can search somehow, call me. Otherwise I'll stick to ext3fs and NTFS.
    Wake me when the revolution starts.

    --
    I want to delete my account but Slashdot doesn't allow it.
    1. Re:Interface to metadata? by diegocgteleline.es · · Score: 2, Insightful

      Somehow I think they will be useful. The file/directory concept was born (IIRC) at Multics, and that was because people was starting to have too many files (until then there was no directories, just "files")

      The file/directory idea got spread by unix (except for CP/M, who invented the "unit" bastardization which was inherited by DOS and NT) and it has been nice for 30 years

      But now we have the same problem: We have too many files. The "file/diretory" thing was enought in the 70's because people didn't have too many files. But now, we have thousands and thousands of files, the "file/directory" idea is not enought.

      I've suffered from this limitation several times. When I try to classify Joaquín Sabina's (a spanish musician who writes good lyrics) poems book, I don't know if I must save it under "~/musica/Joaquín_Sabina" or "~/docs" or what. What I really want is to have it in *both* sides, and while symlinks are nice, what I really want is a database query. This is where all those filesystems come to help - the world has been using the file/directory unix paradigm for 30 years, but that doesn't means it'll be forever the same, and the fact that unix didn't have it doesn't makes it a bad idea.

    2. Re:Interface to metadata? by diegocgteleline.es · · Score: 4, Insightful

      If your not smart enough to remember how you file things, how are you going to be smart enough to remember the metadata needed to extract the files out of a database?

      Remember what?

      When I query something, I query what I _want_. Filesystem should provide me my files - there's nothing to remember. I'm already quering amarok interface with song names and it doesn't hurts. Same for spotlight - people likes it.

      Second people complain of Resier4's system overhead

      I don't understand those complains. I've seen benchmarks where reiser4 eats the double of CPU time than other filesystem. But then, it finishes the task in half of the time.

      Which is the whole point of a filesystem, mind you. If your filesystem is eating few CPU cycles, it means it's wasting time waiting for the disk. In a "perfect world", any filesystem would eat 100% - it'd avoid all the I/O. Reiser 4 complains about eating too many CPU can be partly because it is fast at I/O. I guess their algorightms are also very complex and burn lots of cpu cycles too - if you want to avoid I/O you need complex algorithms after all, right?

      CPU cycles are cheap. What do you prefer, a fast filesystem which doesn't eats cpu cycles (because it sucks and spends all the time waiting for the disk) or a filesystem which eats CPU power because it is fast?

    3. Re:Interface to metadata? by sasami · · Score: 4, Insightful

      Well, what I want to know is: How do I get to this metadata? Some extra tool? Some right-click option that I have to select every time I create a file?

      Anytime you save a file today, you're already manually specifying several pieces of metadata: the filename and the location.

      Anytime you access a file today, you're already manually specifying that metadata also.

      Consider how many clicks it takes to (graphically) navigate to a file from the root directory. That is exactly the number of metadata labels that you yourself supplied for that unique file's creation.

      So, the obvious generalization of this is to get rid of the hierarchy concept entirely. Then, as an earlier poster described, I can naturally tag my music by artist and by genre, instead of using symlinks to cut across trees.

      More practically, it would allow applications to install themselves using a unique tag, so that uninstalling (or moving, or archiving) the application requires just one query on just one tag, and is guaranteed to turn up any associated file regardless of its "location."

      --
      Dum de dum.

      --
      Freedom is not the license to do what we like, it is the power to do what we ought.
    4. Re:Interface to metadata? by CoughDropAddict · · Score: 2, Insightful

      This would allow application developers to just access file/raw rather than worrying about file types and conversions.

      Is that raw data big-endian or little-endian? How many bits per sample? What's the sample rate? How many channels? Interleaved or no?

      Will that pseudo-file support seeking? What sort of units will you seek in -- bytes, samples, frames, or seconds?

      What if I try to read 3 bytes, but the frame size is 4 bytes? My 3-byte read will never return any data, even though there's data left in the file. Or maybe it will return data, but return only a partial sample.

      What I'm getting at is that this stuff is more complicated than you might wish. It would be nice to say "the filesystem understands formats, now I never have to worry about them again!" But there is no canonical way to represent "raw" data -- part of what a format does is explain what that data is!

      Also, there's a cost associated with converting between formats -- trying to hide that will only impair the ability of application developers to optimize for their use cases.

    5. Re:Interface to metadata? by shutdown+-p+now · · Score: 2, Insightful
      Is that raw data big-endian or little-endian? How many bits per sample? What's the sample rate? How many channels? Interleaved or no?
      Well, noone stops you from opening and reading 'file/raw/bps', 'file/raw/endianness' etc. As long as we can agree on the common namespace for all audio files, I don't see why it won't work.
      Will that pseudo-file support seeking?
      Yes, if the plugin supports it.
      What sort of units will you seek in -- bytes, samples, frames, or seconds?
      Since file (even a pseudo one) is a stream of bytes, you obviously operate in terms of bytes.
      What if I try to read 3 bytes, but the frame size is 4 bytes? My 3-byte read will never return any data, even though there's data left in the file. Or maybe it will return data, but return only a partial sample.
      You know how TCP sockets present you a continuous stream of data, when in fact under the hood there are distinct packets of certain size sent back and forth? This problem has been solved ages ago.
      It would be nice to say "the filesystem understands formats, now I never have to worry about them again!"
      Oh, you certainly will still have to care. You just get a higher level of abstaction, such as 'audio stream' vs 'video stream' vs 'static image', as opposed to mp3/ogg/avi/mpg/gif/jpg...
  4. Re:Maturity by HawkinsD · · Score: 4, Insightful
    The emotional maturity of the author seems irrelevant to the benchmarks for the filesystem.

    If benchmarks are even halfway legit, then this is indeed something amazing.

    --
    Never attribute to malice that which can be explained by mere idiocy.
  5. Re:Maturity by Tourney3p0 · · Score: 2, Insightful

    I definitely don't want to get into an argument of "He said/she said" here, but after looking at that link I don't see anything about the maturity of a ten-year-old. If anything, I wasn't too fond of someone saying that *anything* "had no place in Linux".

  6. Re:No one cares, but . . . by shmlco · · Score: 4, Insightful

    It's an INTERVIEW with the system's author and he's giving his opinion. Which, come to think of it, is what one DOES in an interview, you know, ask someone what they think? Sheesh.

    --
    Any sect, cult, or religion will legislate its creed into law if it acquires the political power to do so.
  7. Re:I was actually just wondering by RAMMS+EIN · · Score: 2, Insightful

    Like if the only popular OS that hasn't done so yet properly implemented POSIX?

    --
    Please correct me if I got my facts wrong.
  8. Re:I was actually just wondering by Anonymous Coward · · Score: 0, Insightful

    Can you say Trolltech Qt Toolkit?

  9. Re:Maturity by globalar · · Score: 5, Insightful

    Yeah, that's not a good link. Try this kerneltrap one. Things have been brewing. I haven't kept up with the most recent stuff, though.

    It's really a design/people issue. There are the lingering issues of stability and similar, but these are not (as I understand) the original problem.

    Reiser4 incorporates some sophisticated metadata concepts ("semantics") that are in effect a software layer over the fs - which is why Hans can compare it to WinFS. Some of these features step into the functionality domain of the VFS and the kernel. Not a bad thing, per se.

    Now, we all know the stereotypical kernel dev - technically conservative, concerned about maintenaince, not really keen on making big compromises, and annoyed by ego (again, a stereotype). Keep that in mind.

    Hans of course wants Reiser4 into the kernel. What's the holdup (from a technical design standpoint)? Well, individuals like Andrew Morton want functionality in the kernel that can be reused in a file-system nuetral fashion. Reiser4 has a plugin system, but it's a Reiser4 plugin system. Reiser4 and Hans want to extend Linux as an API, which right now will just be for Reiser4.

    There are also some lingering details of how this will change the course of filesystem integration in the kernel, in regards to traditional POSIX and Unix-like behavior. I don't recall any enduser problems, but there are few complaints.

    Why might this be annoying? Well, Hans wants his fs into the kernel now and he makes the case of its superiority, the markets demand, and the need to compete with companies like Microsoft. I wouldn't be the one to tell kernel devs that they need to compete with MS, but Hans is - to say the least - confident. And he did name the filesystem after himself, so I'm not how this couldn't be personal on some level.

    The middle ground is to say to Hans: we'll take Reiser4, but we want these Reiser-only features to be ultimately modified for all capable filesystems. Hans insists - and I'm sort of generalizing here - that the details can be sorted out, but right now we should go with Reiser4 and not worry about making it anything but a great fs.

    So, Hans took a "assertive" position on why Reiser4 should not only be included in the Linux kernel but also change the kernel. Linus, Morton, and a few others took a stand and said - in so many words - "Hans, we aren't putting your ego into our kernel. Not even experimental."

    It would be interesting to see if end users put enough momentum behind Reiser4 to put in into mainline or start it in 2.7.

    Is that worth a few flames? ;) If I butchered anybody's perspective, please correct me. I don't do kernel dev or psychology.

  10. Re:I was actually just wondering by RAMMS+EIN · · Score: 3, Insightful

    It would be difficult to design. If you look at what APIs exist for this sort of functionality, pretty much the only one that has a significant amount of traction is SQL. And SQL isn't exactly the nicest language to work with. It's implemented with various degrees of compliance and non-standard extensions by various databases. Outside of SQL, the landscape is even more scattered.

    SQL language itself is somewhere in between being a very restrictive domain specific language and a full programming language. The way it is used in practice is by calling it from a real programming language, usually through an interface that leaves the door wide open for injection vulnerabilities.

    I believe the problem is that it's difficult to figure out what functionality goes where.

    If you want to get a list of all files that have been modified since monday and whose name does not start in a period, how do you proceed? Do you get a list of all files, then throw away all but the ones modified since monday, then discard all the ones whose names start in periods?

    Do you get a list of all files whose names do not start in periods, then discard all files that have been modified since monday? That requires your search interface and implementation to somehow support intelligent matching of the names (more difficult than getting all files whose names start in periods).

    Or do you directly query the system for what you want? In that scenario, your interface and implementation have to support complex queries, with subqueries, unequality operators, etc. Are you going to implement all this functionality, just because someone might need it? Is anyone going to be able to understand or implement your interface?

    I would love it if a good and cross-platform interface were available, but I don't think it's ever going to happen. If not for the technical difficulties, than because Microsoft won't want to adhere to the standard.

    --
    Please correct me if I got my facts wrong.
  11. Re:Kernel vs User Mode for filesystem by uhoreg · · Score: 2, Insightful
    The problem isn't that Microsoft is using a microkernel (which they aren't, BTW -- at least not the last I heard). It's that WinFS is a separate library that sits on top of the storage layer. This means that programs must use a completely different API to access WinFS, rather than just using normal filesystem calls.

    You also seem to be mixing up the issue of microkernels and monolithic kernels. Apple's OS X uses a microkernel, but the operating system is still monolitic, so all the important stuff is still part of a single big process; the microkernel is basically just an abstraction layer. Hurd is a microkernel but uses multiple servers, so all the subsystems are separate.

    And /. is not one monolitic entity either.

    --

    To get something done, a committee should consist of no more than three persons, two of them absent.

  12. Re:No one cares, but . . . by h4rm0ny · · Score: 4, Insightful


    I just come from a time and place where being objective and modest about your own trade or art speaks far stronger than unmodest self-PR work.

    Having read the entire interview, I found nothing in it that made me think of Hans Reiser as engaged in unmodest self-PR work. Contrary to the tiny snippet you quoted, he doesn't slate WinFS. He says that it is doing interesting work. Nor is it particularly immodest to say that his file system is considerably more mature when he's spent almost 10 years more on it than the other.

    Reading the article, the parts that you consider immodest seem to me, to be just sincere enthusiasm for his work. And there's nothing wrong with that.

    Contrary to the title being "no one cares", I think the replies so far show that people do. :)

    --

    Aide-toi, le Ciel t'aidera - Jeanne D'Arc.
  13. Re:Maturity by ratta · · Score: 4, Insightful

    More CPU % time is used because Reiser4 is faster. What should be compared is the overall CPU power needed for a filesystem operation. And even if reiser4 is really using more CPU, remember that the CPU power is growing much faster than hd speed.

    --
    Wondering why i am doing so strange posts? I am trying to get a "+5,Flamebait" or "-1,Insightful" rating.
  14. Re:Maturity by swillden · · Score: 5, Insightful

    There's nothing a janitor or garbage collector can teach me or you, or most others on Slashdot.

    How about humility?

    --
    Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  15. Re:Maturity by swillden · · Score: 2, Insightful

    Why is it that 'feel good' euphemisms have more standing than reason?

    What are the odds that your lack of humility is actually reasonable? I was a freaking genius until I got out of college and met the real world.

    And, if you must compare yourself to others, be very, very careful about doing it based on how they earn their living. I've known some pretty amazing janitors, for example, including one who was a very skilled Unix admin and programmer. I know another who janitor who is an extremely accomplished SCUBA diver who devours academic papers on decompression theory and writes his own software to calculate deco schedules for multi-stage, mixed-gas diving -- that's very complex stuff. He's also a skilled mechanic, welder, finish carpenter and a general jack of all trades -- but one who doesn't like to be tied to a job he can't just walk away from at any time. I know a garbage man who I call whenever I need help with my car or boat engines. I know a mail room guy who left a position as head chef of a top-notch restaurant, because he didn't like the stress. If you were to talk to him for a couple of minutes, you'd realize he's smart enough to do just about anything he wants... but what he wants is a low-stress, easy job that lets him focus on his life. He's an amazingly good mail room guy.

    Judging people by their occupations is not just arrogance... it's high foolishness.

    And all of that is just "hard" knowledge. There's a vast oceean of softer wisdom whose acquisition depends less on intelligence and more on time and, for lack of a better word, open-mindedness. A willingness to learn from anyone, ranging from the director of a research lab to a fifteen year-old kid with Downs Syndrome, will teach you more useful lessons about how to live a productive, happy life than you'll ever be able to discover on your own. Collectively, all of the people around you are much smarter than you are, even if you're individually smarter than every one of them.

    I'm still working on learning how to put aside my prejudices and get what I can from everyone I meet. It's really hard, but well worth it.

    Consider that for better or for worse, humility will not help you succeed in today's world.

    But arrogance will regularly torpedo you. I've also known some great programmers who were such prima donna SOBs that they eventually couldn't find employment.

    --
    Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.