PeerFinder fixes:

* Fix split horizon using recent address cache
* Change message tuning parameters to reduce dead messages
* Improved peer handout algorithm for addresses
* Improved handout algorithm for redirects
* Improved selection algorithm for autoconnect
* Faster autoconnection strategy
* Consolidate deadline timers
* Send empty endpoints message as a socket ping
* Fix hop count adjustments for live cache filtering
* Remove broken Peer::isConnected function
* Optimized Livecache for handouts
* Optimized Bootcache for handouts
* Remove uptime metric from Bootcache entries
* Add histogram to Livecache print output
This commit is contained in:
Vinnie Falco
2014-02-15 08:27:02 -08:00
parent bf085f0ef3
commit 995e64a205
30 changed files with 2096 additions and 1795 deletions

View File

@@ -316,7 +316,6 @@ public:
void send (PeerFinder::Slot::ptr const& slot,
std::vector <PeerFinder::Endpoint> const& endpoints)
{
bassert (! endpoints.empty());
typedef std::vector <PeerFinder::Endpoint> List;
protocol::TMEndpoints tm;
for (List::const_iterator iter (endpoints.begin());
@@ -346,10 +345,7 @@ public:
assert (iter != m_peers.end ());
PeerImp::ptr const peer (iter->second.lock());
assert (peer != nullptr);
// VFALCO TODO Why are we checking isConnected?
// That should not be needed
if (peer->isConnected())
peer->sendPacket (msg, false);
peer->sendPacket (msg, false);
}
}