Mailing List Archive

age in proxy_balancer_method
Hi,

Any examples or docs about:
apr_status_t (*age)(proxy_balancer *balancer, server_rec *s);

In struct proxy_balancer_method?

--
Cheers

Jean-Frederic
Re: age in proxy_balancer_method [ In reply to ]
I'll have to go back through my notes... I do recall adding fields that although
were not being used at the time, were _going to be used_ as some point, and
I didn't want to have to worry about ABI compatibility.

> On Dec 14, 2023, at 8:27?AM, jean-frederic clere <jfclere@gmail.com> wrote:
>
> Hi,
>
> Any examples or docs about:
> apr_status_t (*age)(proxy_balancer *balancer, server_rec *s);
>
> In struct proxy_balancer_method?
>
> --
> Cheers
>
> Jean-Frederic
Re: age in proxy_balancer_method [ In reply to ]
On 12/20/23 21:22, Jim Jagielski wrote:
> I'll have to go back through my notes... I do recall adding fields that although
> were not being used at the time, were _going to be used_ as some point, and
> I didn't want to have to worry about ABI compatibility.

Cool I will wait before implementing something that breaks your design ;-)

>
>> On Dec 14, 2023, at 8:27?AM, jean-frederic clere <jfclere@gmail.com> wrote:
>>
>> Hi,
>>
>> Any examples or docs about:
>> apr_status_t (*age)(proxy_balancer *balancer, server_rec *s);
>>
>> In struct proxy_balancer_method?
>>
>> --
>> Cheers
>>
>> Jean-Frederic
>

--
Cheers

Jean-Frederic
Re: age in proxy_balancer_method [ In reply to ]
I guess it could be like this: when Mladen originally implemented the by
requests load balancing method in mod_jk he used the count and subtract
method for the counters. He then ported this to mod_proxy_balancer and I
think it is still, how by requests counting woorks there.

There are pros and cons, e.g. in case a worker goes down for some time.
A bit later we switched in mod_jk to a count and divide, where division
by 2 was done roughly every 60 seconds (configurable).

I think the idea of the age method was roughly, that you could implement
a balanvcer method, that registers a mod_watchdog task, that regularly
ages the balancing counters. Aging because you want to give the past a
smaller influence on the balancing decision than the more recent activity.

I hope that's understandable and maybe Jim remembers something similar
to that.

Best regards,

Rainer

Am 21.12.23 um 08:23 schrieb jean-frederic clere:
> On 12/20/23 21:22, Jim Jagielski wrote:
>> I'll have to go back through my notes... I do recall adding fields
>> that although
>> were not being used at the time, were _going to be used_ as some
>> point, and
>> I didn't want to have to worry about ABI compatibility.
>
> Cool I will wait before implementing something that breaks your design ;-)
>
>>
>>> On Dec 14, 2023, at 8:27?AM, jean-frederic clere <jfclere@gmail.com>
>>> wrote:
>>>
>>> Hi,
>>>
>>> Any examples or docs about:
>>> apr_status_t (*age)(proxy_balancer *balancer, server_rec *s);
>>>
>>> In struct proxy_balancer_method?
>>>
>>> --
>>> Cheers
>>>
>>> Jean-Frederic
Re: age in proxy_balancer_method [ In reply to ]
Yeah, that sounds about right. I'd say that whatever changes need (or should be) made are fine

> On Dec 21, 2023, at 1:32?PM, Rainer Jung <rainer.jung@kippdata.de> wrote:
>
> I guess it could be like this: when Mladen originally implemented the by requests load balancing method in mod_jk he used the count and subtract method for the counters. He then ported this to mod_proxy_balancer and I think it is still, how by requests counting woorks there.
>
> There are pros and cons, e.g. in case a worker goes down for some time. A bit later we switched in mod_jk to a count and divide, where division by 2 was done roughly every 60 seconds (configurable).
>
> I think the idea of the age method was roughly, that you could implement a balanvcer method, that registers a mod_watchdog task, that regularly ages the balancing counters. Aging because you want to give the past a smaller influence on the balancing decision than the more recent activity.
>
> I hope that's understandable and maybe Jim remembers something similar to that.
>
> Best regards,
>
> Rainer
>
> Am 21.12.23 um 08:23 schrieb jean-frederic clere:
>> On 12/20/23 21:22, Jim Jagielski wrote:
>>> I'll have to go back through my notes... I do recall adding fields that although
>>> were not being used at the time, were _going to be used_ as some point, and
>>> I didn't want to have to worry about ABI compatibility.
>> Cool I will wait before implementing something that breaks your design ;-)
>>>
>>>> On Dec 14, 2023, at 8:27?AM, jean-frederic clere <jfclere@gmail.com> wrote:
>>>>
>>>> Hi,
>>>>
>>>> Any examples or docs about:
>>>> apr_status_t (*age)(proxy_balancer *balancer, server_rec *s);
>>>>
>>>> In struct proxy_balancer_method?
>>>>
>>>> --
>>>> Cheers
>>>>
>>>> Jean-Frederic
Re: age in proxy_balancer_method [ In reply to ]
On 1/2/24 14:47, Jim Jagielski wrote:
> Yeah, that sounds about right. I'd say that whatever changes need (or should be) made are fine

Thanks I will keep experimenting ;-)

>
>> On Dec 21, 2023, at 1:32?PM, Rainer Jung <rainer.jung@kippdata.de> wrote:
>>
>> I guess it could be like this: when Mladen originally implemented the by requests load balancing method in mod_jk he used the count and subtract method for the counters. He then ported this to mod_proxy_balancer and I think it is still, how by requests counting woorks there.
>>
>> There are pros and cons, e.g. in case a worker goes down for some time. A bit later we switched in mod_jk to a count and divide, where division by 2 was done roughly every 60 seconds (configurable).
>>
>> I think the idea of the age method was roughly, that you could implement a balanvcer method, that registers a mod_watchdog task, that regularly ages the balancing counters. Aging because you want to give the past a smaller influence on the balancing decision than the more recent activity.
>>
>> I hope that's understandable and maybe Jim remembers something similar to that.
>>
>> Best regards,
>>
>> Rainer
>>
>> Am 21.12.23 um 08:23 schrieb jean-frederic clere:
>>> On 12/20/23 21:22, Jim Jagielski wrote:
>>>> I'll have to go back through my notes... I do recall adding fields that although
>>>> were not being used at the time, were _going to be used_ as some point, and
>>>> I didn't want to have to worry about ABI compatibility.
>>> Cool I will wait before implementing something that breaks your design ;-)
>>>>
>>>>> On Dec 14, 2023, at 8:27?AM, jean-frederic clere <jfclere@gmail.com> wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> Any examples or docs about:
>>>>> apr_status_t (*age)(proxy_balancer *balancer, server_rec *s);
>>>>>
>>>>> In struct proxy_balancer_method?
>>>>>
>>>>> --
>>>>> Cheers
>>>>>
>>>>> Jean-Frederic
>

--
Cheers

Jean-Frederic
Re: age in proxy_balancer_method [ In reply to ]
On 12/21/23 19:32, Rainer Jung wrote:
> I guess it could be like this: when Mladen originally implemented the by
> requests load balancing method in mod_jk he used the count and subtract
> method for the counters. He then ported this to mod_proxy_balancer and I
> think it is still, how by requests counting woorks there.
>
> There are pros and cons, e.g. in case a worker goes down for some time.
> A bit later we switched in mod_jk to a count and divide, where division
> by 2 was done roughly every 60 seconds (configurable).

I have looked to different solutions: The most easy is to add age=n
parameter to the balancer definition and divide the transferred, read
and elected by 2 every n seconds for the workers.

Other logic would be to store those values and reset them if they don't
change.

The busy don't need any aging ;-)

I will prepare a PR for first review tomorrow.

>
> I think the idea of the age method was roughly, that you could implement
> a balanvcer method, that registers a mod_watchdog task, that regularly
> ages the balancing counters. Aging because you want to give the past a
> smaller influence on the balancing decision than the more recent activity.
>
> I hope that's understandable and maybe Jim remembers something similar
> to that.
>
> Best regards,
>
> Rainer
>
> Am 21.12.23 um 08:23 schrieb jean-frederic clere:
>> On 12/20/23 21:22, Jim Jagielski wrote:
>>> I'll have to go back through my notes... I do recall adding fields
>>> that although
>>> were not being used at the time, were _going to be used_ as some
>>> point, and
>>> I didn't want to have to worry about ABI compatibility.
>>
>> Cool I will wait before implementing something that breaks your design
>> ;-)
>>
>>>
>>>> On Dec 14, 2023, at 8:27?AM, jean-frederic clere <jfclere@gmail.com>
>>>> wrote:
>>>>
>>>> Hi,
>>>>
>>>> Any examples or docs about:
>>>> apr_status_t (*age)(proxy_balancer *balancer, server_rec *s);
>>>>
>>>> In struct proxy_balancer_method?
>>>>
>>>> --
>>>> Cheers
>>>>
>>>> Jean-Frederic

--
Cheers

Jean-Frederic