Previous section.

Protocols for Interworking: XNFS, Version 3W
Copyright © 1998 The Open Group

Open Systems Transmission Analysis

Introduction

When an XSI System Interface function is applied to an XNFS file system object, the XNFS client implementation executes a sequence of NFS RPCs to the XNFS server in order to perform the requested operation. This appendix, describing transmission analysis, provides a general indication of the sequence of RPCs which is performed for each XSI System Interface function.

In a rudimentary implementation, it might be possible to define the precise sequence of RPCs that would be performed for each XSI function. However, this is unlikely to be feasible for any commercially available implementation of NFS within an X/Open-compliant system. Practical NFS implementations include various cache mechanisms, the purpose of which is to increase performance by not performing possibly redundant remote procedure calls. However the use of local caches can introduce "windows" in which the client's view of the state of the file system object is incorrect for a short period of time. For this reason, implementations will usually include mechanisms whereby the administrator of the XNFS client can disable some or all of the cache schemes, usually on a per-file system basis. The attributes of the MountedFileSystem which control this are described in XNFS Service Model .

This chapter describes the sequence of NFS RPCs corresponding to each of the most basic XSI System Interface functions. For example, read() is described, but fread() is not. This corresponds to the distinction between "system calls" and "library routines" which is made in some X/Open-compliant systems. For each function, the sequence of RPCs which would occur if all attribute and directory caching were disabled is described. This is followed by comments on the way in which the operation of the attribute or directory caches may alter the sequence.

The following general points should be noted:

RPC Calls Generated by Basic XSI Functions

ACCESS

The ACCESS() XSI System Interface function is implemented as follows:

If attribute caching is enabled, the NFSPROC_GETATTR may not be performed.

CHDIR

The CHDIR() XSI System Interface function is implemented as follows:

If attribute caching is enabled, the NFSPROC_GETATTR may not be performed.

CHMOD

The CHMOD() XSI System Interface function is implemented as follows:

If attribute caching is enabled, the NFSPROC_GETATTR may not be performed.

CHOWN

The CHOWN() XSI System Interface function is implemented as follows:

If attribute caching is enabled, the NFSPROC_GETATTR may not be performed.

CHROOT

The CHROOT() XSI System Interface function is implemented as follows:

If attribute caching is enabled, the NFSPROC_GETATTR may not be performed.

CLOSE

The CLOSE() XSI System Interface function is implemented as follows:

If the XNFS implementation supports the NoCto attribute for MountedFileSystems, and NoCto for the file system in question is "true", step (i) may be deferred.

CREAT

The CREAT() XSI System Interface function is implemented as follows:

FCNTL

Certain subfunctions of the FCNTL() XSI System Interface function will lead to client-server interactions. The subfunctions are those concerned with advisory file locking, F_GETLK, F_SETLK and F_SETLKW. As noted in File Locking over XNFS , an implementation may elect to use synchronous or asynchronous requests for locking services. In addition, locking operations may cause the lock manager subsystems to initiate or terminate status monitoring. Here we consider only the case of synchronous lock manager interactions.

FSTAT

The FSTAT() XSI System Interface function is implemented as follows:

If attribute caching is enabled, the NFSPROC_GETATTR may not be performed.

FSYNC

The FSYNC() XSI System Interface function is implemented as follows:

LINK

The LINK() XSI System Interface function is implemented as follows:

If attribute caching is enabled, the NFSPROC_GETATTR may not be performed.

LSEEK

The LSEEK() XSI System Interface function is implemented as follows:

If attribute caching is enabled, the NFSPROC_GETATTR may not be performed.

MKDIR

The MKDIR() XSI System Interface function is implemented as follows:

MKFIFO

The MKFIFO() XSI System Interface function is implemented as follows:

OPEN

The OPEN() XSI System Interface function is implemented as follows:

If attribute caching is enabled, the NFSPROC_GETATTR may not be performed.

OPENDIR

The OPENDIR() XSI System Interface function is implemented as follows:

If attribute caching is enabled, the NFSPROC_GETATTR may not be performed.

PATHCONF

The PATHCONF() XSI System Interface function is implemented as follows:

READ

The READ() XSI System Interface function is implemented as follows:

If data caching is enabled, the READ() may be satisfied using cached data. Note that the use of advisory file locking will disable caching for a file; see FCNTL() for more details.

READDIR

The READDIR() XSI System Interface function is implemented as follows:

If directory caching is enabled, the NFSPROC_READDIR may be satisfied from the cached results of a previous NFSPROC_READDIR, provided that the directory information has not timed out and is more recent than the last modification time on the directory, which in turn depends on the (possibly cached) directory attributes.

RENAME

The RENAME() XSI System Interface function is implemented as follows:

If attribute caching is enabled, the NFSPROC_GETATTR may not be performed.

RMDIR

The RMDIR() XSI System Interface function is implemented as follows:

STAT

The STAT() XSI System Interface function is implemented as follows:

If attribute caching is enabled, the NFSPROC_GETATTR may not be performed.

UNLINK

The UNLINK() XSI System Interface function is implemented as follows:

WRITE

The WRITE() XSI System Interface function is implemented as follows:

If data caching is enabled, the data may be buffered and not written out immediately. In this case, if attribute caching is enabled, the cached attributes may be updated locally to reflect the new file size. Note that the use of advisory file locking will disable caching for a file; see FCNTL() for more details.


Why not acquire a nicely bound hard copy?
Click here to return to the publication details or order a copy of this publication.

Contents Next section Index