Re: [PATCH v4 44/68] cachefiles: Implement key to filename encoding

From: David Howells
Date: Fri Jan 07 2022 - 06:20:15 EST


Jeff Layton <jlayton@xxxxxxxxxx> wrote:

> Since most cookies are fairly small, is there any real benefit to
> optimizing for length here? How much inflation are we talking about?

Taking AFS as an example, a vnode is represented at the file level by two
numbers: a 32-bit or 96-bit file ID and a 32-bit uniquifier. If it's a 96-bit
file ID, a lot of the time, the upper 64-bits will be zero, so we're talking
something like:

S421d4,1f07f34,,

instead of:

S000421d401f07f340000000000000000

or:

E0AAQh1AHwfzQAAAAAAAAAAA==

The first makes for a more readable name in the cache. The real fun is with
NFS, where the name can be very long. For one that's just 5 words in length:

T81010001,1,20153e2,,a906194b

instead of:

T8101000100000001020153e200000000a906194b

or:

E0gQEAAQAAAAECAVPiAAAAAKkGGUs=

(The letter on the front represents the encoding scheme; in the base64 encoding
the second digit indicates the amount of padding).

I don't know how much difference it makes to the backing filesystem's
directory packing - and it may depend on the particular filesystem.

David