Hi,

Think Jim introduced the lbset balancer property, so he would probably
know best how this is supposed to work.

IIUC lbset should allow to create the group of balancer members,
and that's great. However IMO the logic inside balancer providers
in not valid. The balancing should be done for a particular
set, however IMO it's done always from 0...current set

Here is the code
if (worker->s->lbset > cur_lbset)
  continue;
...
cur_lbset++

IMO it should be
if (worker->s->lbset != cur_lbset)
  continue;
...
cur_lbset++

According to the doc:
"The load balancer will try all members of a lower numbered
 lbset before trying higher numbered ones."

I think that point of having sets is to make
lb within the set, but right now if we have
four sets and cur_lbset is > 0 it's done for
all sets lower then a current one (multiple times)

With the compare change all members with lower
lbset will be tried, but according to its set.

Also, current logic is configuration order dependent:
BalancerMember A ... lbset=0
BalancerMember B ... lbset=1
BalancerMember C ... lbset=0
BalancerMember D ... lbset=1
BalancerMember E ... lbset=2
BalancerMember F ... lbset=2

will make the following probes:
0: A C
1: A B C D
2: A B C D E F

however with != compare this would be:
0: A C
1: B D
2: E F



Regards
--
^(TM)

Reply via email to