(Illustration by Gaich Muramatsu)
[I dislike fragmentation, perhaps to the point of being irrational about it. I complained to Jan about this on ValidateAttrs rpc2 calls (I was getting 3 fragments on these), and he suggested changing PIGGY_VALIDATIONS in venus/fso.h and explained that this controls how many extra fid/vv pairs are sent in the ValidateAttrs rpc.] I experimented a bit and found a value that still packs the packet pretty full but avoids fragmentation. I am staying away from the hairy edge since I use ESP, and sometimes IP-IP tunnels, and in general I believe some number of such overheads (3?) should be planned for. With PIGGY_VALIDATIONS=21, I get 1452 byte packets (with ESP). 'hoard walk' perhaps took longer that before, but it proceeded in a very orderly manner with a new ValidateAttrs request every RTT and no fragmentation. (IMHO, the painful part of hoard walk on a modem is actually fetching the big files, which kills interactive performance until they are fetched - the delay for validation doesn't bother me, as I'd prefer this to be a low-rate background process anway.) Thanks for the tip; this would have taken me much longer to find myself. Here's a patch: Index: fso.h =================================================================== RCS file: /coda-src/coda/coda-src/venus/fso.h,v retrieving revision 4.52 diff -u -u -r4.52 fso.h --- fso.h 2001/08/23 20:25:49 4.52 +++ fso.h 2001/09/22 14:24:44 @@ -93,7 +93,9 @@ const int BLOCKS_PER_FILE = 24; /* rule of thumb */ const int MIN_CF = MIN_CB / BLOCKS_PER_FILE; -const int PIGGY_VALIDATIONS = 50; /* number of objects we can validate on the side */ +/* Avoid fragmentation (56 bytes per validation) + * With IP/ESP/UDP/CODA, 15 results in 1116, and 21 in 1452 */ +const int PIGGY_VALIDATIONS = 21; /* number of objects we can validate on the side */ /* Priorities. */ const int FSO_MAX_SPRI = H_MAX_PRI;Received on 2001-09-22 10:49:49