[OpenAFS-devel] long volume names (was IPV6)

Derrick J Brashear shadow@dementia.org
Wed, 10 Sep 2003 13:14:16 -0400 (EDT)


On Wed, 10 Sep 2003, Jeffrey Hutzelman wrote:

> No, a UUID won't work; it has to be a computable hash.  The reason is that
> the fileserver doing name translation is the one that has the mount point,
> which may not be the same place as the mounted volume.  So if it's not
> computable, then the fileserver still has to call the vlserver.

Ok, that's fair.

> Further, an MD5 hash fits just fine, if you encode it as base64 instead of
> hex.  An MD5 hash is 128 bits long; in base64, it will encode as a
> 24-character string, and the last 2 characters will always be '=' (no other
> characters will be '=').  So you can drop the two trailing '=', leaving a
> 22-character string which fits exactly into the volume name length limit.
> Further, these strings will not conflict with any "real" volume name which
> contains a '.', '-' or '_', since these are not in the base64 symbol set.
> root.afs and root.cell are examples of such names.
>
> To further reduce the possibility of conflicts, one could note that the
> last character of the 22-character string carries only 2 bits of data, and
> in a standard encoding will always be one of 'A', 'Q', 'g', or 'w'.  These
> could be replaced with less likely characters, such as '@', '#', '$', and
> '%' or something.