Subject: [Fwd: [Forces-protocol] action item: NFS compound commands]

From: Robert Haas <[email-masked]>
Date: Wed, 20 Oct 2004 13:53:11 +0200

-------- Original Message --------
Subject: 	[Forces-protocol] action item: NFS compound commands
Date: 	Sat, 15 May 2004 00:04:42 +0200
From: 	Robert Haas <[email-masked]>
Organization: 	IBM Research Lab
To: 	[email-masked]

Here are some clarifications about NFSv4 compound commands.

NFSv4 introduces the notion of a compound command that groups a serie of 
operations not executed atomically. Execution stops at the first failed 
operation. Status report is returned up to (and including) the failed 
operation.
Most interestingly, compound commands allow results of intermediate 
operations to be stored and reused on subsequent operations in the same 
compound.

In ForCES, you could imagine using this feature for instance to do the 
following in one shot (a compound commands composed of 2 operations):

operation 1: read the rate r at which flow x is currently sending.
operation 2: set the same rate r for the policing of a new flow y. (the 
result of the first operation is reused here)

We can debate whether this is desirable in ForCES or not. This feature 
was introduced in NFSv4 for performance reasons.

CHeers,
-Robert

Below are excerpts of the NFSv4 paper on the justification for compound 
commands:

Another structural difference between NFS
Version 4 and its predecessors is the introduction
of a COMPOUND RPC procedure that allows the
client to group traditional file operations into a
single request to send to the server. In NFS
Versions 2 and 3, all actions were RPC procedures.
NFS Version 4 is no longer a "simple" RPC-based
distributed application. In NFS Version 4, work is
accomplished via operations. An operation is a file
system action that forms part of a COMPOUND
procedure. NFS Version 4 operations correspond
functionally to RPC procedures in former versions
of NFS. The server in turn groups the operation
replies into a single response. Error handling is
simple on the server - evaluation proceeds until
the first error or last operation whereupon the
server returns a reply for all evaluated operations.
We introduced the COMPOUND procedure to
reduce network round trip latency for related
operations, which can be costly over a WAN (for
example, the Internet).

[...]

4.1. An example
The following denotations represent NFS
transactions in this paper. We represent a simple
client RPC request in NFS Versions 2 and 3 by:
-> LOOKUP
We represent a simple server RPC response by:
<- LOOKUP OK
We represent a COMPOUND client RPC request
in NFS Version 4, which contains one or more
operations, by:
-> PUTROOTFH
LOOKUP
GETFH
We represent a COMPOUND server RPC
response in NFS Version 4, which contains one or
more replies to previous operations, by:
<- PUTROOTFH OK
LOOKUP OK
GETFH OK
Note the direction of the arrows in each
example.

[...]

The set of operations in a COMPOUND procedure is
not atomic. That is, no assumptions can be made
as to whether conflicting operations occurred to
file system objects referenced in a COMPOUND
procedure between successive operations.
Error handling is simple on the server. If an
operation fails in a COMPOUND procedure,
evaluation halts and the remaining operations are
not processed. Replies are returned to the client up
to and including the error reply for the failed
operation.

The full paper is at:
http://www.nluug.nl/events/sane2000/papers/pawlowski.pdf

-- 
Robert Haas
IBM Zurich Research Laboratory
Säumerstrasse 4
CH-8803 Rüschlikon/Switzerland
phone +41-1-724-8698  fax +41-1-724-8578  http://www.zurich.ibm.com/~rha

_______________________________________________
Forces-protocol mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/forces-protocol

-- 
Robert Haas
IBM Zurich Research Laboratory
Säumerstrasse 4
CH-8803 Rüschlikon/Switzerland
phone +41-1-724-8698  fax +41-1-724-8578  http://www.zurich.ibm.com/~rha

_______________________________________________
Forces-protocol mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/forces-protocol