public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Hans Reiser <reiser@namesys.com>
To: David Masover <ninja@slaphack.com>
Cc: Peter Foldiak <Peter.Foldiak@st-andrews.ac.uk>,
	reiserfs-list@namesys.com, linux-kernel@vger.kernel.org,
	Nate Diller <ndiller@namesys.com>
Subject: Re: file as a directory
Date: Thu, 16 Dec 2004 10:52:52 -0800	[thread overview]
Message-ID: <41C1D984.8030707@namesys.com> (raw)
In-Reply-To: <41C0D3F8.1020408@slaphack.com>

David Masover wrote:

> Hans Reiser wrote:
> [...]
> | Explain the value of caching executable output more please.
>
> If executables become "plugins" (see below), there is a performance loss
> to be made up by caching.  For instance, if we have an executable which
> calls "tar", which we attach to a tarball, we want to cache the
> extracted files.

This requires writing the plugin to have explicit caching of output.  It 
could be quite interesting actually.

>   It's even more urgent when people start writing
> perl/python/ruby executables to deal with system configuration files,
> such as /etc/passwd.  It's allright for passwd to take half a second to
> generate, so long as we cache that output, and thus only spend the half
> second when passwd is modified, instead of every time a user logs in.
> |
> |>
> |> | The component objects themselves could be full objects, so they
> |> | themselves could have sub-components.
> |>
> |> Right.
> |>
> |> Also, there should be an inverse. For instance, a file-as-directory 
> type
> |> object should have a "contents" object, usually a normal directory, but
> |> which could conceivably be any type of object, including a code-ish
> |> object which implements a filesystem. Accessing foo/ would be the same
> |> as accessing foo/.../contents, only because "..." (or whatever we use
> |> for meta-files) is outside the actual directory namespace,
> |> foo/.../contents/... refers to the metas of object "contents", 
> which are
> |> different than the metas of object "foo".
> |
> |
> | Are you sure that having more than one "...." is needed?  Hmmm,
> | interesting, must think about it.
>
> Yes. foo is a file, foo/contents is another file (an executable).  But
> maybe the executable has contents too -- with an extra "...", you can do
> things like "foo/.../contents/.../contents", where the first "contents"
> controls what you get from "ls foo/", and the second "contents" controls
> what you get from "ls foo/.../contents/".
>
> |>
> |> These two steps essentially create userspace "plugins", and do away 
> with
> |> having to mount other kernel layers such as lufs (or whatever its
> |> current implementation is).
> |
> |
> | I don't follow this point above.
>
> lufs is (or was) a kernel filesystem which talks to a user daemon.  The
> daemon does all the work, so you don't have to do things like windows
> emulation in the kernel in order to get captive-ntfs to work.
>
> The reason we don't do that for the whole filesystem is performance --
> after all, userland things are easier to write, debug, upgrade, and
> install/use than kernel things.
>
> If an executable can generate a directory listing or a whole directory
> structure, some files, and so on, then we only need a few reiser4 kernel
> plugins, and these userland executables can implement all the
> functionality of most kernel plugins people have thought of so far.
>
> The only problem is, it would be much slower than a kernel plugin.
> Caching solves that.
>
> Of course, someone still might find a situation where people really need
> to create a new kernel plugin, and that would be allowed.  But I doubt
> it would help that much, or we'd all be using TUX instead of Apache.
>
> [...]
>
> |> I think the issues with directory-as-a-file were the same problems you
> |> get when you allow hardlinked directories -- that you'd eventually have
> |> to ditch reference counting for a garbage collector, which is hellishly
> |> impractical. I don't have a solution to that, other than dropping
> |> hardlinks entirely.
> |
> |
> | This issue is overblown.  Other fields have solved this problem.
>
> Nevertheless, it's an issue that I don't have the skills to solve, and
> one that must be solved if we are ever to implement these concepts.
>
> If you have a solution, I'd love to hear it.

My solution is to tell Nate Diller that there is extensive literature on 
it, that it isn't really the big problem it is made out to be, and leave 
it to him to go read the literature and code it up after he finishes the 
required tasks of our current darpa contract.;-)

  reply	other threads:[~2004-12-16 18:54 UTC|newest]

Thread overview: 107+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-11-22 13:54 file as a directory Amit Gud
2004-11-22 14:37 ` Martin Waitz
2004-11-22 15:34   ` Zan Lynx
2004-11-22 17:18     ` Martin Waitz
2004-11-22 18:16   ` Jan Engelhardt
2004-11-22 14:38 ` Al Viro
2004-11-22 15:04 ` Helge Hafting
2004-11-22 17:15   ` Tomas Carnecky
2004-11-22 18:48     ` Hans Reiser
2004-11-24  9:16       ` Peter Foldiak
2004-11-24 14:05         ` Jan Engelhardt
2004-11-24 15:02         ` Paolo Ciarrocchi
2004-11-24 15:25           ` Peter Foldiak
2004-11-26 16:13             ` Hans Reiser
2004-11-24 16:11           ` Christian Mayrhuber
2004-11-25 10:50             ` Peter Foldiak
2004-11-26 18:19               ` Hans Reiser
2004-11-26 21:13                 ` Christian Mayrhuber
2004-11-27 11:09                   ` Peter Foldiak
2004-11-27 13:14                     ` Christian Mayrhuber
2004-11-29 21:20                       ` Horst von Brand
2004-11-29 22:59                         ` Peter Foldiak
2004-11-29 23:35                           ` Kevin Fox
2004-11-30  8:54                             ` Peter Foldiak
2004-11-30 16:28                               ` Kevin Fox
2004-11-30 16:42                                 ` Jan Engelhardt
2004-11-30 17:35                                   ` Jesse Pollard
2004-11-30 17:49                                     ` Jan Engelhardt
2004-11-30 18:26                                       ` Amit Gud
2004-11-30 18:39                                         ` Jan Engelhardt
2004-12-01  2:44                                           ` Scott Young
2004-12-03  9:58                                           ` Amit Gud
2004-11-30 14:51                           ` Horst von Brand
2004-11-30 15:29                             ` Peter Foldiak
2004-11-30 16:31                               ` Horst von Brand
2004-11-30 17:03                                 ` Hans Reiser
2004-12-14 16:58                                   ` Peter Foldiak
2004-12-14 17:21                                     ` Jan Engelhardt
2004-12-14 18:11                                       ` Peter Foldiak
2004-12-14 18:16                                         ` Jan Engelhardt
2004-12-14 17:24                                     ` Hans Reiser
2004-12-14 21:27                                       ` Peter Foldiak
2004-12-15  4:47                                         ` David Masover
2004-12-15  5:28                                           ` Hans Reiser
2004-12-16  0:16                                             ` David Masover
2004-12-16 18:52                                               ` Hans Reiser [this message]
2004-12-17 15:58                                                 ` David Masover
2004-12-17 16:52                                                   ` Hans Reiser
2004-12-18  1:52                                                     ` Horst von Brand
2004-12-20 17:21                                                       ` Hans Reiser
2004-12-15  9:27                                           ` Peter Foldiak
2004-12-15 23:56                                             ` David Masover
2004-12-16 18:48                                               ` Hans Reiser
2004-12-16 19:01                                                 ` Peter Foldiak
2004-12-17 18:09                                                   ` Hans Reiser
2004-12-18  0:20                                                     ` David Masover
2004-12-17 16:02                                                 ` David Masover
2004-12-17 16:54                                                   ` Hans Reiser
2004-12-15  5:19                                         ` Hans Reiser
2004-12-14 19:30                                     ` Horst von Brand
2004-12-15  4:52                                       ` David Masover
2004-12-15  5:31                                         ` Hans Reiser
2004-12-15  5:10                                       ` Hans Reiser
2004-12-15 13:28                                         ` Horst von Brand
2004-12-15 16:57                                           ` Hans Reiser
2004-12-15 19:11                                             ` Markus   Törnqvist
2004-12-15 20:57                                               ` Hans Reiser
2004-11-30 17:03                                 ` Peter Foldiak
2004-11-30 17:50                                   ` Horst von Brand
2004-11-30 18:23                                   ` Dr. Giovanni A. Orlando
2004-11-29 23:11                         ` Peter Foldiak
2004-11-30 16:04                   ` Martin Waitz
2004-11-27 12:49                 ` Markus   Törnqvist
2004-11-29 15:41                   ` Hans Reiser
2004-11-26 17:43         ` Hans Reiser
2004-11-27 11:50         ` Tomasz Torcz
2005-05-10  9:39         ` Peter Foldiak
2005-05-10 14:53           ` Hans Reiser
2005-05-10 15:32             ` Peter Foldiak
2005-05-10 16:30               ` Sean McGrath
2005-05-10 17:25                 ` Hans Reiser
2005-05-10 17:39                   ` Sean McGrath
2005-05-10 18:52                     ` Hans Reiser
2005-05-10 19:39                       ` Sean McGrath
2005-05-10 20:11                         ` Hans Reiser
2005-05-16 12:32               ` Leo Comerford
2005-05-10 15:14           ` Valdis.Kletnieks
2005-05-10 15:38             ` Peter Foldiak
2005-05-10 17:20               ` Hans Reiser
2005-05-11 10:23               ` Helge Hafting
2004-11-23  6:20   ` Amit Gud
2004-11-24 10:32     ` Helge Hafting
2004-11-24 11:07       ` Amit Gud
2004-11-25 23:09   ` Pavel Machek
2004-11-28 18:53     ` Helge Hafting
2004-11-28 19:01       ` Pavel Machek
2004-11-22 17:59 ` Valdis.Kletnieks
2004-11-22 18:24   ` Jan Engelhardt
2004-11-22 18:52   ` Hans Reiser
2004-11-22 19:05     ` Jan Engelhardt
2004-11-23  9:46       ` Amit Gud
2004-11-23 14:00         ` Jan Engelhardt
2004-11-23 14:17           ` Amit Gud
2004-11-23  9:11     ` Dirk Steinberg
2004-11-23  9:37       ` Markus   Törnqvist
2004-11-23 19:00       ` Hans Reiser
     [not found] <fa.imi6gu8.1e7qkqc@ifi.uio.no>
     [not found] ` <fa.hcr9rb0.k6egam@ifi.uio.no>
2004-11-26  4:11   ` Bodo Eggert

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=41C1D984.8030707@namesys.com \
    --to=reiser@namesys.com \
    --cc=Peter.Foldiak@st-andrews.ac.uk \
    --cc=linux-kernel@vger.kernel.org \
    --cc=ndiller@namesys.com \
    --cc=ninja@slaphack.com \
    --cc=reiserfs-list@namesys.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox