Jacob_Palme_QZ%QZCOM.MAILNET@MIT-MULTICS.ARPA (08/03/86)
Assume the following hierarchical structure of a distribution list:
+-----TOP------+
! !
SUBA-----+ SUBB
! ! !
SUBSUBAA SUBSUBAB SUBSUBBA
Assume that the time to transfer a message between any two nodes in
the structure is N hours.
If a user in the SUBSUBAA system writes a message to the list, s/he
must send this message to "TOP" which would take 2N hours. The time
before the message reaches SUBSUBAA would be 2N hours back again,
or a total of 4N hours. If the user could submit his message directly
to SUBSUBAA, and have SUBSUBAA transfer it to SUBA, which would then
transmit it to TOP, it would reach members of SUBSUBAA in 0 hours
instead of 4N hours. The times to reach the different nodes would be:
Node With hierarchical With links both
structure up and down the tree
SUBSUBAA 4N 0
SUBA 3N N
SUBSUBAB 4N 2N
TOP 2N 2N
SUBB 3N 3N
SUBSUBBA 4N 4N
Average 3.33N 2N
The cost would also be lower with links both up and down the tree,
since the message need not be sent up to the TOP and then back down
to SUBSUBAA again. If TOP and SUBA were on different sides of the
Atlantic this would be a substantial saving.
Even faster, but less efficient, transmission would occur if all
the lists were members of each other. The cheapest transmission
will occur with a loop-less structure but with links both up and
down the tree.
In certain cases, it may also be politically difficult to designate
one list as the "TOP node", but this is not the major argument
against enforcing hierarchical structure.
It may also be easier for the users if they can submit new entries to
any list in the structure, and have it transferred to all the others,
instead of having to send it to TOP if all are to be reached.
A hierarchical structure has a rather dubious advantage that you
can send a message to only a subtree, e.g. a message to SUBA will
only reach members of SUBA, SUBSUBAA and SUBSUBAB and not e.g.
members of SUBB or SUBSUBBA.
Finally, an argument against a hierarhical structure is that there
maybe problems in enforcing it. Dynamic loop control will automatically
avoid loops, with any structure of the list connections.