9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: G. David Butler gdb@dbSystems.com
Subject: [9fans] create(2)/open(2) race for file creation
Date: Thu, 26 Feb 1998 17:01:40 -0600	[thread overview]
Message-ID: <19980226230140.4X_lVK6qugh3MOI_cKsHi7AZ2iDvAgHTXbD8CO--lLs@z> (raw)

>gdb wrote:
>> 
>> I'm sure many of you wish this topic would go away, but...
>
>I actually think it's quite interesting :)  
>
>Admittedly I do not know the entire scope of the problem, but 
>it seems to me that the effect that is desired is to use the fs 
>as a centralized database, with update collisions being resolved
>at the os-layer.

No, I want them resolved at the fs; as they are.  I only want
the os-layer to make the fs resolution visible.

>                  This seems to me to be a challenging problem
>for the fs/os, particularly since the fs/os as seen by applications
>may have mounts and binds going across the network to a variety
>of locations.

Even open(2) does NOT have the same behavior across arbitrary
bind(2) structures.  That is NOT my expectation.  I DO expect
open(2) and create(2) to have the same behavior on directories
that have the same bind(2) structure.

I did notice an interesting response on this thread in comp.os.plan9
that didn't make it to the list about a property of union directories.
It went something like "the behavior of a properly implemented
union directory should not differ from the behavior of a flat
directory with the same contents".  That would be a hard trick to
pull off since the constitutient directories would have to be
incorporated in the union in the same order, always, no matter
who, no matter when, no matter from where.  For that to happen
in Plan9, the union directory would need to be constructed using
an RPC between the fileservers [fileserver in the generic sense, not
the physical machine called a fileserver].  The mount would be allowed
only after it was constructed.  It also means the directory should not
be available if any of the constitutient fileservers is unavailable.
After implementing this trick, the bind(2) system call would be
unnecessary and A-Bad-ThingTM.

Anybody want to take that on as a research project?

>Might it be appropriate to use a multithreaded server process
>to handle the transactions, and have the clients attach to

[snip]

This idea has been suggested many times during this discussion.
In Plan9 this both unnecessary and overly complicated.  The 9P
protocol is sufficient to express the ideas completely and the
fileservers as implemented support 9P properly.  The only thing
that corrupts the design is the implementation of one system call.

Just Fix It.

David Butler
gdb@dbSystems.com




             reply	other threads:[~1998-02-26 23:01 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1998-02-26 23:01 G.David [this message]
  -- strict thread matches above, loose matches on Subject: below --
1998-02-26 23:30 Russ
1998-02-26 22:16 G.David
1998-02-26 19:33 Eric
1998-02-26  0:24 G.David
1998-02-26  0:04 G.David
1998-02-25 23:42 G.David
1998-02-10 14:34 G.David
1998-02-10  8:59 forsyth
1998-02-09 21:21 G.David
1998-02-09 16:42 G.David
1998-02-09  8:05 Dan
1998-02-08 22:48 G.David
1998-02-08 22:18 Photon
1998-02-08 21:44 Rob
1998-02-08 21:10 G.David
1998-02-08 16:52 G.David
1998-02-08 16:16 G.David
1998-02-08 16:10 Dave
1998-02-08 15:48 G.David
1998-02-08  5:09 G.David
1998-02-08  2:01 Rob
1998-02-08  0:27 G.David

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=19980226230140.4X_lVK6qugh3MOI_cKsHi7AZ2iDvAgHTXbD8CO--lLs@z \
    --to=9fans@9fans.net \
    /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).