1 Apr 2010 02:29
Re: Opennet connection replacement policies
On Wed, Mar 31, 2010 at 6:22 PM, Matthew Toseland <toad@...> wrote: > On Wednesday 17 March 2010 18:33:01 Evan Daniel wrote: >> Currently, when we need to drop an opennet connection, we use the LRU >> (least recently used) policy: we drop the connection that has least >> recently served a successful request. Unfortunately, I can't find a >> link to the paper that describes why LRU was chosen, though the basic >> idea is obvious: if the node has too many peers around a certain >> location, then those peers will get fewer requests, and therefore one >> of them is more likely to be the peer dropped. >> >> I'm curious whether other algorithms were explored, and if so how they >> performed in comparison. The obvious candidates are LFU (least >> frequently used), LFU-Window (LFU within a finite time window), and >> LFU-aging (LFU but with periodic reduction in the frequency counts, so >> that formerly useful nodes that are no longer useful eventually age >> out). >> >> LFU-aging is normally described as having discrete aging steps at >> (somewhat) large intervals, because it is normally discussed in the >> context of a large cache where the O(n) time to perform the aging >> computation is problematic. However, we could do continuous >> exponential aging at every request without any problems, because the >> number of connections is small. That is, every time a request >> succeeds, we first multiply the score for each connection by some >> constant alpha (0 < alpha <= 1), and then increment the score for the >> connection that had the success. (For 0 < alpha <= 0.5 this is >> precisely equivalent to LRU; for alpha = 1, it is precisely equivalent >> to (non-window) LFU.) >>(Continue reading)
RSS Feed