Hello,
On Mon, 7 Feb 2005, Wensong Zhang wrote:
> > If a server becomes overloaded mw easily goes out of sync
> > with dramatic results: no dest found. What should we do?
> > Every time when we don't find dest and cw > 0 because
> > cw > mw_not_overloaed we should set cw to mw_not_overloaed and
> > repeat the search from cl at level cw?
> >
>
> Good finding again. Maybe we can add additional condition (mark->cw ==
> mark->di) into the check of back to the beginning, such as
>
> if (mark->cl == p && mark->cw == mark->di) {
> /* back to the start, and no dest is found.
> It is only possible when all dests are OVERLOADED */
> dest = NULL;
> goto out;
> }
>
> Then WRR will only return NULL server when all the servers are
> overloadded.
Yes, it is one of the possible variants, i'm not sure
how many times we will reduce cw with di before reaching the
server with max weight which is not overloaded. This can be a
problem when large weights are used but di is 1, this is the
worst case. May be we have to select the best server with max
weight (not overloaded) and to use its weight as mw until cw
reaches 0, then we again select such mw on miss, only when
thresholds are used.
> Thanks,
>
> Wensong
Regards
--
Julian Anastasov <ja@xxxxxx>
|