Standards Update, IEEE 1003.8/1: POSIX Transparent File Access
Jeffrey S. Haemer
jsh at usenix.org
Sun Dec 3 04:52:17 AEST 1989
From: Jeffrey S. Haemer <jsh at usenix.org>
An Update on UNIX* and C Standards Activities
December 1989
USENIX Standards Watchdog Committee
Jeffrey S. Haemer, Report Editor
IEEE 1003.8/1: POSIX Transparent File Access Update
An anonymous correspondent reports on the July 10-14, 1989 meeting, in
San Jose, California:
[Editor's note -- Though this report came in substantially later than
the other July reports, I think it's still useful, provocative, and
well worth reading. -jsh]
Overview of New 1003.8 Developments
1. All standards produced by POSIX committees (with the exception
of language-binding standards like 1003.5 and 1003.9) must be
specified in a language-independent fashion, and must include at
least one language-specific binding. Since P1003 will not have
guidelines and rules for constructing a language-independent
specification before April 1990, no POSIX networking group can
possibly ballot a document before July 1990. "Mock" ballots
(aka trial-use ballots) are unaffected by this, but their
usefulness will be diminished.
2. Two new POSIX Networking working groups either have submitted or
will soon submit PARs to begin work, bringing the total number
of POSIX Networking working groups to six. These new groups are
the Name Space and Directory Services Interface and the X.400
Mail Gateway Interface. [Editor's note -- The SEC approved the
PAR for the former, but decided that the latter transcends
POSIX, and recommended that the IEEE form a separate, numbered
group, analogous to 1003 or 1201, to handle X.400. See below.
-jsh]
3. Due to the rules governing IEEE and IEEE-TCOS standards
activities, as well as the logistical nightmare six sub-working
groups cause, the hierarchical structure of the P1003.8 POSIX
networking committee will be flattened out, with each current
sub-group submitting PARs to cover their current work.
Coordination will be provided by a "POSIX Networking Steering
Committee", made up of the chairs and vice-chairs of each
__________
* UNIX is a registered trademark of AT&T in the U.S. and other
countries.
December 1989 Standards UpIEEE 1003.8/1: POSIX Transparent File Access
- 2 -
networking-related working group and the current chair and
vice-chair of 1003.8. [Editor's note -- This is still being
debated by the SEC. -jsh]
4. Since each of the 1003.8 sub-groups will be submitting separate
PARs, the P1003 Sponsor's Executive Committee (SEC) is taking
the opportunity to evaluate the degree to which each PAR is
intended to represent a part of the "POSIX Environment" or is a
component which has no relationship to the rest of POSIX and
should, hence, stand alone. The result of this is that several
of the 1003.8 sub-groups may be issued project numbers outside
of the P1003 family. There is some precedent for this; the X11
interface group was assigned project number P1201 for just this
reason.
Activity in the TFA Subgroup, P1003.8/1
The group is making slow but steady progress towards the goals of a
fully-specified programmatic interface for networked file access and
the semantics and suggested syntax for administrative interfaces for
such a functionality. The group is dominated by a faction, apparently
lead by Sun Microsystems, with a goal of ensuring that NFS, in some
form, is a sufficient mechanism to provide the service required by the
"full TFA" interface. The balance of the committee is composed of
people who simply want a standard they can use as an acquisition tool.
Achievements
+ Enough consensus and material was obtained to permit development
of a first draft of the programmatic interface part of the
specification; this draft should be complete in time for the
second mailing, due out on September 8.
+ Liaison activities with 1003.7 (System Administration) continued;
.7 indicated that all of the options for the TFA mount/unmount
model were, in fact, of use in administering such a system. They
also agreed that they owned responsibility for all file-system
commands not completely unique in function to TFA, and that they
would pursue input from the TFA group when the time was right.
+ Further progress was made on identifying status and usage
information which must be obtainable from the provider of a TFA
service.
December 1989 Standards UpIEEE 1003.8/1: POSIX Transparent File Access
- 3 -
Problem Areas
1. Representation in the group is unbalanced; there is, as of this
time [Editor's note -- July, '89 -jsh], no substantial
representation of the "stateful" side of the semantic issues.
The chairman has, so far, been unsuccessful in encouraging a
more balanced group viewpoint so representation from the
stateful camp has been solicited (with minimal success) for
future meetings.
2. Several "grey areas" in the semantics of IEEE 1003.1-1988 have
been identified by the TFA group over the last several months.
The suggested "fixes" have been slanted in a way that would let
the TFA interface avoid relaxing 1003.1 semantics while
permitting a stateless implementation of the TFA service; i.e.
rather than strengthening 1003.1 to define the actual behavior
of a single stand-alone system, the proposals have been so weak
that they underconstrain single-system behavior. It appears
that the majority of the 1003.1 committee will not approve of
this approach, and will require the "fix" to be of the proper
strength to correctly specify single-system behavior.
Let me give an example. The original 1003.1 standard is silent
on the issue of when the effects of a write are visible to a
subsequent read of the same byte of the file. If process A
writes byte 123 of file "foo", then process B does a read of
byte 123 of file "foo", at what point is B guaranteed to see the
byte A wrote?
Immediately? If so, stateless solutions employing read caches
fail; if process B is remote on system "bsys" and reading the
file via NFS, byte 123 might come out of the file cache on bsys
and not from the file cache on the system where A lives.
Immediately if A and B are on the same system, and at some
implementation-defined time otherwise? This requires 1003.1 to
define what it means by "the same system", and doesn't
adequately address multi-processor single systems with
"interesting" caches. It also means a truly portable
application that is interested in running in a distributed
environment can *never* know when the byte written by A is
visible to B.
Only in the presence of byte locking? In other words, A locks
byte 123, writes it, unlocks it; if B then locks and reads 123,
it is guaranteed to see what A wrote. Not a bad solution, but
it breaks existing applications and in fact is a relaxation of
the intended semantics of 1003.1.
Basically, the "intent" developing in 1003.1 is that the effect
of the write must be seen immediately by any other process with
December 1989 Standards UpIEEE 1003.8/1: POSIX Transparent File Access
- 4 -
that file open, without regard to process location, without
recourse to O_SYNC mode opens, without the necessity for
locking, and so on. 1003.1-1988 is silent on the issue; the
proposed fix from TFA (basically a compromise I did not like and
knew would fail) was that read-after-write be guaranteed only
for co-located processes and in the presence of locking. This
gave 1003.1 a chance to avoid relaxing their intended semantics
while leaving TFA a "loophole" to change semantics without
having to indicate a change in wording from 1003.1.
This is what got rejected by 1003.1, which is getting pretty
damned tired of TFA's trying to claim that the full TFA
semantics are "just like" 1003.1 but with gaping differences
that are introduced silently due to weak or weasel wording in
1003.1-1988.
3. 1003.7, System Administration, is making distressingly slow
progress. If this continues, 1003.8 will have two choices with
respect to client-side administrative commands:
- Do not standardize them; give feedback to 1003.7 and wait
for them to complete their specification. This risks
incompatible implementations.
- Standardize them insofar as they relate to TFA
administration. This risks incompatibility between the TFA
aspects of those commands and their more general aspects.
An example is the "mount" command; if 1003.7 is unhappy
with the form of the TFA mount command, they are under no
constraint to remain compatible with it. If the group
ballots far enough in advance of 1003.7, this sort of clash
could be frequent.
4. Many of the contentious issues have been "resolved" through the
various mechanisms POSIX provides for introducing optional
behavior; most frequently, these involve either
"implementation-defined" behavior, or the addition of path-
specific attributes whose status can be determined through the
pathconf() function. Several of these options should be viewed
by the ballot group as being "gratuitous" in some sense, i.e.
the TFA committee should take a stand one way or another, and be
willing to be beaten up in ballot for it. The POSIX standards
are wishy-washy enough without the addition of gratuitous
options.
December 1989 Standards UpIEEE 1003.8/1: POSIX Transparent File Access
Volume-Number: Volume 17, Number 80
More information about the Comp.std.unix
mailing list