Re: Future of hot standby in balancers [was Re: svn commit: r1828890 - in /httpd/httpd/trunk: ./ docs/log-message-tags/ docs/manual/howto/ docs/manual/mod/ modules/proxy/ modules/proxy/balancers/]

2018-04-11 Thread Jim Jagielski
It's been awhile but I think hot standbys were added before we came
up with the idea of lb sets... And since people were using hot
standbys, we didn't want to force them to change their configs.

We can drop hot-standbys in trunk/2.5/2.6, but we'll need to keep
them in 2.4.

> On Apr 11, 2018, at 10:57 AM, Jim Riggs  wrote:
> 
> On 11 Apr 2018, at 07:11, jhri...@apache.org wrote:
>> 
>> Author: jhriggs
>> Date: Wed Apr 11 12:11:05 2018
>> New Revision: 1828890
>> 
>> URL: http://svn.apache.org/viewvc?rev=1828890=rev
>> Log:
>> mod_proxy_balancer: Add hot spare member type and corresponding flag (R). 
>> Hot spare members are
>> used as drop-in replacements for unusable workers in the same load balancer 
>> set. This differs
>> from hot standbys which are only used when all workers in a set are 
>> unusable. PR 61140.
> 
> Speaking of balancer member types, hot spares (new), and hot standbys 
> (existing), is there really a need for hot standbys? When I first started 
> using mod_proxy_balancer many years ago, I actually thought/assumed that "hot 
> standbys" had the behavior that the new spares now have (i.e. drop-in 
> replacements for unavailable workers) until I studied the documentation more 
> carefully.
> 
> Standbys are really superfluous, since the same behavior can be achieved by 
> sets. For example, the behavior of the following will be exactly the same:
> 
> 
>  ProxySet lbmethod=bytraffic
>  BalancerMember "http://server1/; lbset=0
>  BalancerMember "http://server2/; lbset=0
>  BalancerMember "http://server3/; lbset=0 status=+H
>  BalancerMember "http://server4/; lbset=1
>  BalancerMember "http://server5/; lbset=1
>  BalancerMember "http://server6/; lbset=1 status=+H
> 
> 
> 
>  ProxySet lbmethod=bytraffic
>  BalancerMember "http://server1/; lbset=0
>  BalancerMember "http://server2/; lbset=0
>  BalancerMember "http://server3/; lbset=1
>  BalancerMember "http://server4/; lbset=2
>  BalancerMember "http://server5/; lbset=2
>  BalancerMember "http://server6/; lbset=3
> 
> 
> So, is there really any reason to keep hot standbys? Do we consider the 
> concept of the +H flag to be easier to understand or use than LB sets? If so, 
> do we just need better docs? Am I missing any nuances of the H flag?
> 
> I would love to see standbys go away, personally.
> 
> - Jim
> 



Future of hot standby in balancers [was Re: svn commit: r1828890 - in /httpd/httpd/trunk: ./ docs/log-message-tags/ docs/manual/howto/ docs/manual/mod/ modules/proxy/ modules/proxy/balancers/]

2018-04-11 Thread Jim Riggs
On 11 Apr 2018, at 07:11, jhri...@apache.org wrote:
> 
> Author: jhriggs
> Date: Wed Apr 11 12:11:05 2018
> New Revision: 1828890
> 
> URL: http://svn.apache.org/viewvc?rev=1828890=rev
> Log:
> mod_proxy_balancer: Add hot spare member type and corresponding flag (R). Hot 
> spare members are
> used as drop-in replacements for unusable workers in the same load balancer 
> set. This differs
> from hot standbys which are only used when all workers in a set are unusable. 
> PR 61140.

Speaking of balancer member types, hot spares (new), and hot standbys 
(existing), is there really a need for hot standbys? When I first started using 
mod_proxy_balancer many years ago, I actually thought/assumed that "hot 
standbys" had the behavior that the new spares now have (i.e. drop-in 
replacements for unavailable workers) until I studied the documentation more 
carefully.

Standbys are really superfluous, since the same behavior can be achieved by 
sets. For example, the behavior of the following will be exactly the same:


  ProxySet lbmethod=bytraffic
  BalancerMember "http://server1/; lbset=0
  BalancerMember "http://server2/; lbset=0
  BalancerMember "http://server3/; lbset=0 status=+H
  BalancerMember "http://server4/; lbset=1
  BalancerMember "http://server5/; lbset=1
  BalancerMember "http://server6/; lbset=1 status=+H



  ProxySet lbmethod=bytraffic
  BalancerMember "http://server1/; lbset=0
  BalancerMember "http://server2/; lbset=0
  BalancerMember "http://server3/; lbset=1
  BalancerMember "http://server4/; lbset=2
  BalancerMember "http://server5/; lbset=2
  BalancerMember "http://server6/; lbset=3


So, is there really any reason to keep hot standbys? Do we consider the concept 
of the +H flag to be easier to understand or use than LB sets? If so, do we 
just need better docs? Am I missing any nuances of the H flag?

I would love to see standbys go away, personally.

- Jim