[mnet-devel] Boy, what we have here is a failure to communicate...

Jim McCoy mccoy at mad-scientist.com
Mon Oct 6 07:43:56 BST 2003


(props will go out to the first person to identify the quote...)

While doing a general code review and explanation of what happens where 
for one of our new coders, a random observation that "EGTP is where all 
the cool stuff happens" struck me as a rather important point, and one 
that seems to be missing in recent mnet development efforts.  It seemed 
to get at the essence of what had been bothering me most about ent and 
other proposed changes that just didn't seem to fit right in to the 
system. I believe that what has happened is a failure to understand the 
purpose of egtp and the abstraction layer it is supposed to occupy.

After checking the #mnet logs of the weekend everything suddenly became 
clear.  There has been a fundamental misunderstanding of the role of 
EGTP in the system.  EGTP is not just TCP with link encryption, or a 
simple comm library -- it is actually the cool bit of technology in the 
system that makes everything else possible.  I guess that when EGTP was 
farmed out as a separate project like a bastard stepchild and then 
folded back in seemed to many as if it was somehow not important or 
just a minor piece of code.  The relatively limited development in EGTP 
since then compared to the other, flashier bits of code (make note of 
which code tree was re-organized and which one was left as-is...) seems 
to bear out this assumption.  The upper application levels (what most 
of you consider "mnet") is just the message handling and 
application-specific strategies, with the real magic happening below 
this level inside of EGTP.

What finally triggered my epiphany was a suggestion by Myers to move 
the discovery manager and lookup manager to the Node, from egtp.  This 
was the "moment of clarity" I encountered, but recent efforts like ent 
and the router in the new ent system also break the existing 
abstraction layer and this will become a source of future problems.   
The whole point of egtp was that the broker/Node was supposed to be 
able to call upon a transport-independent message delivery layer with 
built-in routing that would handle all of the work for the Node to get 
a message from point A to point B (where point B was simply a peerId).  
It was fire-and-forget message passing, and message routing was not 
supposed to be an application-level issue.  If you move lookup, route 
selection, and peer discovery out of egtp then you are breaking this 
separation of the messages from the message delivery mechanism.  Ent, 
DHTs, et al should be a part of EGTP, not an upper-level system that is 
calling down in to EGTP to move messages.

This, IMNSHO, is part of the current problems, and why moving message 
routing out of the transport layer is a fundamental mistake that is 
going to come back and bite some people on the ass...

Jim



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
mnet-devel mailing list
mnet-devel at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mnet-devel




More information about the Mnet-devel mailing list