Here are comments on draft-deason-afs3-type-time-03:

Sections 3.1, 3.2, and 3.3 each start with "The new FOO..." where the
use of the word "new" feels extraneous.  In N years when someone is
reading the document to determine what AFSAbsTime64 represents it won't
be "new".

Each of sections 3.1, 3.2, 3.3 begin with a paragraph describing the
on-the-wire encoding and then follows with a description of what the
type represents.  I believe that describing the meaning of the type
makes the text easier to read and comprehend.  This is particularly true
for 3.3 which is describing a complex structure.

I find section 3.3 on the whole somewhat awkward.  It is overly verbose
and as a result fails to be clear.  The following text might help or it
might not:

   The AFSAbsTime64Res structure combines an AFSAbsTime64 timestamp
   [Section 3.1] with a resolution value representing the granularity
   of the time source.  The AFSAbsTime64Res values are used for
   timestamp comparisons when the granularity of the sources might
   be different or out of sync.

and

   The resolution field represents the granularity of the time source
   from which the timestamp was obtained.  The resolution value is the
   period between two unique timestamp values.  All AFSAbsTime64
   timestamp values from (T) to (T + resolution) are to be considered
   equivalent for the purpose of comparison with another AFSAbsTime64
   value.


Section 3.3.1 discussing resolution assumptions states that the
resolution should never be set to a value greater than one second.
However, the granularity of timestamps in FAT file systems is two
seconds.  While FAT is not an AFS-3 file system or protocol it is a time
source that is used for comparisons with AFS-3 time values.  An instance
of an AFS file server that exports the contents of local file systems
would have such a resolution.

Section 3.3.1 indicates that a resolution of 0 must be used whenever the
time source granularity is unknown.  It then indicates that the
resolution should be assumed to be 1 second and that the timestamp
should be rounded down to the nearest second.   The rounding down
concerns me.  If the resolution should be assumed to be 1 second, then
the comparison rule in Section 3.3 can just be followed with the 1
second resolution and the accuracy provided in the timestamp.  However,
I am concerned that there are many situations in which the source of a
time may have millisecond or better precision but where the granularity
is unknown.  For example, any time a timestamp is recorded on one system
written, read back on another and then used.  I fear that assuming one
second resolution can itself be harmful.  I'm tempted to say that the
value 0 is invalid and that the entity that constructs the
AFSAbsTime64Res must specify a best guess value and specify 1 second if
unknown.

The last paragraph of Section 4.3 discusses the use of modification
timestamps.   It references the fact that modification timestamps set by
users will not have a known resolution.   It fails to point out that
AFS-3 explicitly maintains two different modification timestamps: server
and client.  The client modification timestamp can be set to arbitrary
values whereas the server modification timestamp is only ever set by the
file server.  The server modification timestamp can be used for ordering
comparisons.




Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to