[OpenAFS-devel] more JAFS stuff

Marcus Watts mdw@spam.ifs.umich.edu
Mon, 11 Jun 2007 18:22:35 -0400


I've gotten jafs to at least run through a semblance of its
test utility 'testAFS' without errors that are at least too
glaring.  I still have lots of debug messages, and I don't
think I've got the no-kas case quite right.  But I'm
running into a more general problem now.

I think JAFS has a basic design problem.  It really likes
to gather lots of information in advance of its being needed.
It maintains list of users, servers, and other parts of the cell,
as part of the cell object.  The comments in the jafs code suggest
that its author was assuming it would be the main administrative
agent in a cell (or better yet the sole administrative agent),
which was presumably of small-to-medium size.  This causes a number
of problems:

/1/ the list of users is gotten by doing a "pts listentries"
	-- probably only admin can do this.
/2/ the list of users is the union of pts & kas users.
	-- at best annoying if one isn't running kaserver.
/3/ the list of servers is gotten using the equivalent
	of "vos listaddrs" and probably "vos listpart".
	this runs real slow if one or more servers are down.
/4/ these lists are refreshed more frequently than necessary.
/5/ a failure to refresh a list isn't reported very gracefully.

I think fixing these requires doing a somewhat more radical
job of altering its API.  I'd like to change things so that
the routines offered are a more direct reflection of the underlying
operations on the various servers, and any data consistency
issues are a much more clear responsibility of the calling application.
Ie, if you want a list of all users, you ask for it.  If you want to save it,
that's your problem.  If you want a list of servers, again ask for it;
unless you then ask for a list of partitions on a server, you won't get it.

I'm very interested in any ideas other people might have on this.

				-Marcus