[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