On Sat, 1 Feb 2003, Vadim Vygonets wrote:
> > Currently, the number is
> > permitted to be in the range 0-255. I don't know how much it is used,
> > but is seems plausible that this could be reduced to 0-50, in which case
> > it could be stuffed into the most significant base-62 digit of the
> > pid part of the message id. That still allows for 32-bit pids.
>
> Nice.
I didn't get that quite right. However, after some weekend thought I
have come up with the following scheme, which I'm posting here just in
case anybody else would like to comment. The scheme modifies the final
-xx field in the message ID, leaving the other two fields unchanged.
1. For base-62 systems (all "real" Unix and Unix-like systems) the field
can contain a number in the range 0-3883. It is set as follows:
A. If localhost_number is not set, use the fraction of a second time
value, in units of 1/2000 of a second (range 0-1999). This allows up
to 2000 messages to be received by one process in one second.
B. If localhost_number is set, we restrict it to 0-16. Set the final
field to (localhost_number * 200) + time fraction in 1/200 of a
second. This allows up to 200 messages to be received by one process
in one second.
2. For base-36 systems (MacOS X and Cygwin currently), the field can
contain a number in the range 0-1295. It is set as follows:
A. If localhost_number is not set, use the fraction of a second time
value, in units of 1/1000 of a second.
B. Restrict localhost_number to 0-10. If it is set, set the final
field to (localhost_number * 100) + time fraction in 1/200 of a
second.
--
Philip Hazel University of Cambridge Computing Service,
ph10@??? Cambridge, England. Phone: +44 1223 334714.