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
devl at freenetproject.org
http://hawk.freenetproject.org:8080/cgi-bin/mailman/listinfo/devl