<div class="gmail_quote">On Sat, Sep 19, 2009 at 4:18 AM, Duncan M. McGreggor <span dir="ltr">&lt;<a href="mailto:duncan.mcgreggor@gmail.com">duncan.mcgreggor@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
 * that would allow applications to auto-discover peers<br>
<br>
 * where a collection of nodes would segment into groups and elect a<br>
peer to act as their communication proxy to managing or reporting<br>
entities for that segmented group of nodes<br>
<br>
 * where the elected proxy would perform actions such as forwarding<br>
messages or holding messages in a queue<br>
<br>
 * that has the flexibility to re-form node groupings and re-elect a<br>
proxy based on various conditions<br><br></blockquote><div><br></div><div>I mentioned P2P protocols like Bittorrent because they share part of these requirements (except the elected proxy) and they are proved to scale. I read a little more on the subject and found a few interesting things:</div>
<div> - There are a lot of docs and code to read if you&#39;re interested in overlay networks <a href="http://en.wikipedia.org/wiki/Overlay_network">http://en.wikipedia.org/wiki/Overlay_network</a>, which is part of what we&#39;re discussing here.</div>
<div> - The interesting (for our purpose) part of P2P protocols is generally based on a Distributed Hash Table, like Kademlia  <a href="http://en.wikipedia.org/wiki/Kademlia">http://en.wikipedia.org/wiki/Kademlia</a>.</div>
<div> - Two interesting implementation in Python are Khashmir (which serves as the basis for Bittorrent DHT) <a href="http://khashmir.sourceforge.net/">http://khashmir.sourceforge.net/</a> and Entangled <a href="http://entangled.sourceforge.net/">http://entangled.sourceforge.net/</a>, which has more functionalities. Both use Twisted.</div>
<div> - A good article on the subject is &quot;The Design of CoralCDN&quot; <a href="http://sns.cs.princeton.edu/2009/04/the-design-of-coralcdn/">http://sns.cs.princeton.edu/2009/04/the-design-of-coralcdn/</a></div><div> - The Coral Cache project also has developed a system that could be of interest for the &quot;proxy election&quot; system, OASIS <a href="http://oasis.coralcdn.org/">http://oasis.coralcdn.org/</a></div>
<div><br></div><div>Maybe we could include this in the SOOM experiments, as an alternative implementation, for instance.</div><div><br></div><div>Other relevant things I stumbled upon:</div><div> - PSYC <a href="http://www.psyc.eu/whitepaper/">http://www.psyc.eu/whitepaper/</a></div>
<div> - Delay Tolerant Network Research Group <a href="http://www.dtnrg.org/wiki">http://www.dtnrg.org/wiki</a></div><div><br></div><div><br></div></div>