From: Alex Belits <abelits@phobos.illtel.denver.co.us>
To: "Ihar 'Philips' Filipau" <filia@softhome.net>
Cc: trelane@digitasaru.net,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
"Theodore Ts'o" <tytso@mit.edu>
Subject: Re: Things that Longhorn seems to be doing right
Date: Thu, 30 Oct 2003 10:23:38 -0700 (MST) [thread overview]
Message-ID: <Pine.LNX.4.58.0310301007340.11170@sm1420.belits.com> (raw)
In-Reply-To: <3FA0F1B7.7000409@softhome.net>
On Thu, 30 Oct 2003, Ihar 'Philips' Filipau wrote:
> >>Keep in mind that just because Windows does thing a certain way
> >>doesn't mean we have to provide the same functionality in exactly the
> >>same way.
> >>Also keep in mind that Microsoft very deliberately blurs what they do
> >>in their "kernel" versus what they provide via system libraries (i.e.,
> >>API's provided via their DLL's, or shared libraries).
> >
> > Indeed, although certain things could be half-kernel, half-user
> > (OK, 0.01% kernel, 99.99% user, e.g. userspace daemon that
> > intercepts certain writes). Of course, at that point, you might
> > make a special library to interact with the daemon directly, although
> > it's then not at all like just calling write().
> >
>
> I beleive this is 100% user space issue.
>
> And I think if one really want to do something like this - Gnome's
> VFS is a good candidate for this. They already have all abstractions in
> place.
Why not just provide a general-purpose interface for:
1. Userspace-visible transactions. A userspace process can mark a set of
fd, inodes, files, or "whatever this set of processes did since now", and
tell the filesystem to keep a log of changes to that. Journaling will then
mark relevant changes (and possibly create an additional log depending on
the design, or pass the log-related information to another userspace
program), and treat them as a transaction, with the possibility of
rollback on kernel-originated error, userspace request, or, possibly, a
transaction manager daemon, that may have its own reason to fail the
transaction.
2. Update notifications. A set of files or directories, or whatever a
certain set of processes accesses, is being monitored, and the list
of changes (pages, byte ranges, lists of created/deleted directory
entries) is somehow maintained and being passed to a set of processes.
Processes can have passive monitoring (they will know what has been
changed -- good for indexers and other kinds of application-specific
daemons) or intrusive pass-through monitoring (the change is not applied
until the process confirms it, and transaction interface applies to this
if enabled -- this will be a performance hit, and can be done for, say, a
distributed transaction manager).
3. Pluggable directory generator -- a userspace process can tell the
system to make an object that looks exactly like a directory, except that
its contents are provided by the process, that is being queried when the
directory is accessed.
Obviously, the need for performance/asyncronous access and security
requirements should be addressed in the implementations of those things,
however relatively small scope of the interfaces can allow to do that in a
more or less sane manner. Then userspace can have all kinds of indexing
monstrosities, transaction-using databases, transaction managers, etc.
--
Alex
next prev parent reply other threads:[~2003-10-30 17:31 UTC|newest]
Thread overview: 83+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <LUlv.31e.5@gated-at.bofh.it>
[not found] ` <M7iG.41B.7@gated-at.bofh.it>
[not found] ` <MagC.82U.7@gated-at.bofh.it>
[not found] ` <Maqe.8l3.9@gated-at.bofh.it>
2003-10-30 11:10 ` Things that Longhorn seems to be doing right Ihar 'Philips' Filipau
2003-10-30 17:23 ` Alex Belits [this message]
2003-10-31 1:46 ` Daniel B.
2003-10-31 1:57 ` Philippe Troin
[not found] ` <Mcig.2uf.1@gated-at.bofh.it>
[not found] ` <Mcs2.2FJ.5@gated-at.bofh.it>
2003-10-30 12:04 ` Ihar 'Philips' Filipau
[not found] ` <Mg2B.7wf.9@gated-at.bofh.it>
[not found] ` <Mh8n.BT.9@gated-at.bofh.it>
[not found] ` <MhLf.1pF.9@gated-at.bofh.it>
2003-10-30 12:16 ` Ihar 'Philips' Filipau
2003-11-02 13:11 Brian Beattie
2003-11-02 17:15 ` Valdis.Kletnieks
2003-11-03 19:35 ` Brian Beattie
2003-11-03 20:17 ` Richard B. Johnson
2003-11-03 20:23 ` Valdis.Kletnieks
2003-11-03 20:54 ` Richard B. Johnson
2003-11-03 21:01 ` Valdis.Kletnieks
2003-11-03 22:06 ` Måns Rullgård
2003-11-04 8:47 ` Michael Clark
2003-11-04 12:47 ` Richard B. Johnson
2003-11-04 14:02 ` Brian Beattie
2003-11-03 20:55 ` Roland Dreier
2003-11-04 0:35 ` Daniel B.
2003-11-04 14:05 ` Brian Beattie
-- strict thread matches above, loose matches on Subject: below --
2003-10-29 8:50 Hans Reiser
2003-10-29 22:42 ` Erik Andersen
2003-10-29 23:03 ` Hans Reiser
2003-10-29 22:25 ` Dax Kelson
2003-10-30 0:20 ` Joseph Pingenot
2003-10-30 0:54 ` Neil Brown
2003-10-30 1:34 ` Joseph Pingenot
2003-10-30 2:54 ` Bernd Eckenfels
2003-10-30 2:58 ` Arnaldo Carvalho de Melo
2003-10-30 3:16 ` Joseph Pingenot
2003-10-30 5:28 ` Jeff Garzik
2003-10-30 5:56 ` Valdis.Kletnieks
2003-10-30 3:16 ` Neil Brown
2003-10-30 3:39 ` Joseph Pingenot
2003-10-30 10:27 ` Thorsten Körner
2003-10-30 21:28 ` jlnance
2003-10-30 22:29 ` Måns Rullgård
2003-10-31 2:03 ` Daniel B.
2003-10-31 1:04 ` Clemens Schwaighofer
2003-10-30 2:09 ` Alex Belits
2003-10-30 3:12 ` Joseph Pingenot
2003-10-30 4:21 ` Scott Robert Ladd
2003-10-31 16:42 ` Timothy Miller
2003-10-31 19:15 ` Hans Reiser
2003-10-30 9:52 ` Ingo Oeser
2003-10-30 4:06 ` Scott Robert Ladd
2003-10-30 1:52 ` Theodore Ts'o
2003-10-30 2:03 ` Joseph Pingenot
2003-10-30 9:23 ` Ingo Oeser
2003-10-30 3:57 ` Scott Robert Ladd
2003-10-30 4:08 ` Larry McVoy
2003-10-30 13:46 ` Jesse Pollard
2003-10-31 4:50 ` Stephen Satchell
2003-10-30 7:33 ` Diego Calleja García
2003-10-30 8:43 ` Giuliano Pochini
2003-10-30 8:05 ` Hans Reiser
2003-10-30 8:17 ` Wichert Akkerman
2003-10-30 11:59 ` Hans Reiser
2003-10-30 9:14 ` Giuliano Pochini
2003-10-30 9:55 ` Hans Reiser
2003-10-30 17:48 ` Theodore Ts'o
2003-10-30 19:23 ` Hans Reiser
2003-10-30 20:31 ` Theodore Ts'o
2003-10-31 7:40 ` Hans Reiser
2003-10-31 19:30 ` Theodore Ts'o
2003-10-31 20:47 ` Hans Reiser
2003-10-31 13:59 ` Herman
2003-10-31 21:23 ` Richard B. Johnson
2003-11-01 18:30 ` Hans Reiser
2003-10-31 21:08 ` David S. Miller
2003-11-02 21:42 ` Hans Reiser
2003-11-03 12:42 ` Nikita Danilov
2003-11-03 16:58 ` Timothy Miller
2003-11-04 8:13 ` Hans Reiser
2003-11-05 13:51 ` Ingo Oeser
2003-11-05 2:07 ` Hans Reiser
2003-10-31 11:01 ` Kenneth Johansson
2003-10-31 13:52 ` Jesse Pollard
2003-10-30 11:21 ` Felipe Alfaro Solana
2003-10-30 7:25 ` Christian Axelsson
2003-10-30 8:10 ` Hans Reiser
[not found] ` <200311011731.10052.ioe-lkml@rameria.de>
[not found] ` <3FA3FF46.7010309@namesys.com>
2003-11-03 10:55 ` Ingo Oeser
2003-11-04 8:10 ` Hans Reiser
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=Pine.LNX.4.58.0310301007340.11170@sm1420.belits.com \
--to=abelits@phobos.illtel.denver.co.us \
--cc=filia@softhome.net \
--cc=linux-kernel@vger.kernel.org \
--cc=trelane@digitasaru.net \
--cc=tytso@mit.edu \
/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;
as well as URLs for NNTP newsgroup(s).