freenet-core
freenet-core copied to clipboard
Intelligent routing
- Greedy routing will always pick the closest peer to the desired location.
- But optimal strategy is to pick the peer that will complete the request fastest
- Use isotonic regression to estimate response time from a peer based on its ring distance from the target location of the request
- For each peer, track the average delta between iso estimated response time and actual response time
- Intelligent routing, for a given request, uses the iso to estimate response time for each peer then adjust by average delta
- Pick the peer with the lowest estimated response time
Need to consider how failed requests are accounted for to discourage the use of peers that have an improbably low success rate.
Pivotal Tracker story: https://www.pivotaltracker.com/story/show/184058033