[AFS3-std] [RPC Request] 64-bit volume IDs, quotas, and block usages

Jeffrey Hutzelman jhutz@cmu.edu
Mon, 22 Jun 2009 16:50:39 -0400


--On Friday, June 19, 2009 04:49:15 PM -0500 Andrew Deason 
<adeason@sinenomine.net> wrote:

> Per suggestions from Jeffrey Altman and others, here are what I believe
> to be the requirements for 64-bit fields pertaining to volume IDs,
> volume quotas, and block usage on volumes/partitions.
>
> The format resembles what Jeffrey posted as an example earlier, but I
> separated the affected RPCs according to what underlying struct changed
> in the RPC (if any); I just found it easier to follow. This is what's in
> the parentheses by "Affected RPCs". Some RPCs are listed more than once
> because of this: once for each structure changed. I also merged some
> fields into the same section when the list of affected RPCs was
> identical.

By concentrating only on RPC's, you are missing significant portions of the 
protocol.  Anyone considering or proposing a change like this also needs to 
consider its impacts on other parts of the protocol suite, including...

1) The volume dump format, as represented in the data of RPC's like 
AFSVolDump and AFSVolRestore.

2) The on-wire directory format, as represented in the data of 
RXAFS_FetchData on a directory.  This is presently the same as the on-disk 
format used by the OpenAFS server, but there is no requirement that they be 
kept in sync.

3) pioctl interfaces.  Even though these don't appear on the network, they 
do represent a protocol between cache managers and applications, with 
multiple implementations on both sides of the interface, registrar-managed 
number spaces, and an active effort to keep things interoperable.

4) ubik database formats.  These are specific to the OpenAFS implementation 
and are not the subject of standardization work, but there are similar 
interoperability considerations to work through, particularly regarding 
what happens when you have mixed-version dbservers and what happens when 
you upgrade/downgrade.  It might be acceptable to require upgrading 
everything at once; it is not acceptable for breaking that rule to result 
in destroying the database.

-- Jeff