[mnet-devel] peerman controversy plus measurements
Zooko O'Whielacronx
zooko at zooko.com
Thu Feb 12 20:47:59 GMT 2004
People who don't hang out on the #mnet channel on irc.freenode.net all day might
not know that there is a controversy over peerman. Arno doesn't like peerman,
as he spent many long hours studying logs in an attempt to diagnose bermuda
triangle bugs, and then he discovered that he was wasting his time because of
peerman. Actually now that I'm writing this I don't know how exactly peerman
interfered. Anyway, this was back in December or so when this happened.
Arno has a good argument than instead of probabilistically masking the existence
of peers who might be gone, peerman should just sort them to the back of the
list and let the higher-layer logic (e.g. blockwrangler, relay listener, etc.)
decide when to try peers who might be gone.
See footnote 1 for the description of how peerman works [1].
Anyway, I was just running my own nodes without peerman turned on (since peerman
is turned off by default in current CVS), and I observed this flurry of "lookup
contact info" messages. So I decided to take some measurements.
Since my node (named <nw31m>) has been around for a long time, it has met lots
of other nodes at different times in the past, and it still remembers the public
key and some historical performance measurements from each one. In fact,
I guess it remembers 53 of them as you will see below.
* Run #1: peerman turned off (default). PYUTILDEBUG=true. I ran the process
at nice level 20. Start the node, publish a file (MC Hawking's "What We Need
More Of Is Science"), shut down the node. It took exactly 300 seconds, and
sent out a total of 341 "lookup contact info" messages, searching for the
contact infos of 53 unique peers.
Only three unique peers sent messages to my node during that time, and that
includes itself! So I think the actual working network was of size 3 during
this run.
* Run #2: peerman turned on. Same PYUTILDEBUG=true and nice=20. Same process
including publishing the same file again.
It took 156 seconds, and sent out a total of 8 "lookup contact info" messages,
searching for the contact infos of 3 unique peers. Again, there were only 3
peers alive during the experiment.
* Run #3, peerman turned off again. This time I turned off debug mode and I
didn't nice the process. 170 seconds, 247 lookups on 51 unique peers.
Run #3, peerman turned off again. PYUTILDEBUG=false, nice=0. 199 seconds, 5
lookups on 2 unique peers.
You probably shouldn't pay much attention to how many seconds the runs took,
since much of that time was spent waiting for me to click on the user interface.
However we can say that with no peerman, with around 50 peers known, only 3 of
whom are currently on-line, we generate more than one "lookup contact info" per
second.
Now one "Enochian" fellow has turned up on IRC and said that when he turned
peerman on (by editing MojoConstants.py) he got a blow-up in which the node took
up 340 MB RAM, sent lookups out at a very high rate, and had to be killed with
SIGKILL. That is a disturbing report, and if anyone else sees such a thing and
captures a mojolog of the event I would very much like to have the mojolog!
Regards,
Zooko
[1] Here is the original note I wrote saying that I was going to write peerman:
http://sourceforge.net/mailarchive/forum.php?thread_id=3510400&forum_id=7702
... and then after implementing peerman, I realize that by adding exponential
backoff retrying it doesn't lose track of metatrackers:
http://zgp.org/pipermail/p2p-hackers/2003-December/001556.html
-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
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