Load balancing currently is designed to avoid overloading; current statistics show great discrepancies between the requests different nodes receive. Ian had calculated the stddev to be around 7000. I am very interested in analyzing in depth possible additions and improvments to the load balancing that will more specifically strive to level the differences in incoming Queries.

Ideas that don't require change in protocol:
* add some miniscule bias against nodes who are way above the global average _before_ they QueryReject. Add same bias towards nodes that are way below global average (this bias could also depend on the local average of the requesting node)
* have highly popular nodes "help out" the very unpopular ones by forking a pending request to them every few hours until they get integrated. That request will most probably be unsuccesful, but it will help the new node. Of course this only works if there are "few" highly popular nodes as opposed to "many" non-popular.


Changing protocol slightly:
* add field for average of the EstimatedLoad (jobs/maxjobs) when reporting the queries load. That should not affect anonymity and could help in deciding the above bias


Changing the protocol not-so-slightly:
* send info about EstimatedLoad to every neighboring node. There are many algorithms out there that are designed for nodes that report their load. Will this impact anonymity? If so, then a node could send inform its neighbors only when its about to queryReject. Or it could send an estimated probability of queryReject in the next n minutes, or something like that.


Last and least, the crazy idea of nodes announcing on behalf of other nodes - there must be something (morally) wrong with it. What exactly?

_______________________________________________
devl mailing list
[EMAIL PROTECTED]
http://hawk.freenetproject.org:8080/cgi-bin/mailman/listinfo/devl

Reply via email to