Re: alternate simplified proposal #1

Parkson Wong (parkson@nas.nasa.gov)
Thu, 13 Jun 1996 10:04:20 -0700 (PDT)

>
> Parkson writes:
> >Info (the new word for hints) is just a hint. We can't expect all
> >implementation to do something with it, so moving the directives from
> >the filename to info has quite different semantics.
> >
> >In the original spec, if you open piofs:/foo, and that system does not
> >support piofs, an error will be returned. (It may not have specified
> >that way, but it is the intent of the spec.) If this is in the info, it
> >is just ignored.
>
> I'm confused by your example. Let's say an implementation does not
> support piofs. If a user tries to open a piofs file with info
> args--hints what does open() return? Shouldn't open() return an error
> because the implementation does not support piofs?
>
> I asked Richard for examples because I would like to know what he wants
> to support with info args. While the file name space has limitations,
> it is simple, well-known, and can support a lot of abstractions.
>

In the case of a hint (info), if piofs does not exist on the system, it
is perfectly O.K. to open the file and create it on the default file system.
So the code is actually portable. But it may not be what you expected.
Remember, info is only a hint and does not affect semantics and the
implementation could took liberty at interpreting the hints.

In the piofs:/foo case, the implementation will return an error. That
means your code will fail in system that does not support piofs, so the
code is not portable. But you know excatly what happened.

I am just pointing out the difference in the semantics, and not really
arguing which one is better.

The original hints is used to pass information about the user application
to the implementation, like the access pattern (read only, r/w, sequential,
random, etc) to help the implementation to make better decision in data
layout on disk, caching and such.

The orginal filename space, foo:/bar, syntax is to alone multiple
implementation coexist in a library, and allow the user to read/write
files from different implementation in the same application. My classic
example is to read/write tmp files on local disks or local parallel file
system and write out the time steps to a mass storage system for later
analysis.

-- parkson

-- 
Parkson Wong			Address: Numerical Aerodynamic Simulation
MRJ, Inc.				 NASA Ames Research Center M/S 258-6
Supercomputer Applications Segment	 Moffett Field, CA  94035-1000
e-mail: parkson@nas.nasa.gov	Phone: (415)604-3988	Fax: (415)966-8669