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.