Re: LoadBalancer

2019-09-26 Thread André Rothe via Webobjects-dev
I have found the implementation of the scheduler algorithms within
mod_webobjects.

See Adaptor/loadaverage.c, random.c and roundrobin.c

There you can see, that multiple http servers can send requests to
application instances, but every http server holds its own index. So the
balancing will not be perfect over multiple servers:

From roundrobin.c:
"There can be a problem with R/R when multiple http servers (with
WebObjects adaptors) are forwarding requests to instances: each
server/adaptor maintains its own index for round robin.  This use of
adaptor local data can cause undesired r/r behaviour - including the
worst case: each server/adaptor sending requests to the same instance."

LoadAverage works in a similar way, as you can see within the code, some
responses from the application will contain additional headers, which
contain information about the state of the instance (defined within
config.h):

x-webobjects-loadaverage
x-webobjects-refusenewsessions

With these headers the balancer can better decide, which instance should
be used. But the values will be cached on the current mod_webobject
adaptor, so the next request on another http server will use its own old
cached values for the decision (updated within loadaverage.c
la_finalize() after the decision).
As I understand the code, the decision bases on the cached values, which
will be updated after the request is bound to the chosen instance. But
the cached values will not mirror the changes made by the other http
servers and their mod_webobjects for the current request (only for the
next request).

~André


Am 24.09.19 um 16:02 schrieb Michael Kondratov via Webobjects-dev:
> Yes
> 
> Sent from my iPhone
> 
>> On Sep 24, 2019, at 4:52 AM, Mark Gowdy  wrote:
>>
>> Does that work across multiple machines?
>>
>>> On 10 Sep 2019, at 20:53, Michael Kondratov via Webobjects-dev
>>> >> <mailto:webobjects-dev@lists.apple.com>> wrote:
>>>
>>> Daniel,
>>> It is pretty easy. It is worth looking into
>>> enabling ERJGroupsSynchronizer.
>>>
>>> er.extensions.remoteSynchronizer=er.jgroups.ERJGroupsSynchronizer
>>> er.extensions.jgroupsSynchronizer.multicastAddress=230.0.0.1
>>> jgroups.udp.mcast_port=9755
>>>
>>> That will synchronize changes across instances.
>>>
>>> Michael
>>>
>>>
>>>> On Sep 10, 2019, at 3:44 AM, daniel.bietenbeck--- via Webobjects-dev
>>>> >>> <mailto:webobjects-dev@lists.apple.com>> wrote:
>>>>
>>>> Hi there,
>>>>
>>>> small side question to the topic.
>>>>
>>>> Is there a good tutorial for upgrading an application from single
>>>> instance to multi instance? common pitfalls etc.?
>>>>
>>>> Best regards,
>>>> Daniel Bietenbeck
>>>> Leiter IT
>>>> *...**fröbus *
>>>> Medien. Dienst. Leistung.
>>>>  
>>>> Julius Fröbus GmbH • Schanzenstr. 6-20 • Werkstatt 1.09 • 51063 Köln
>>>> • Deutschland 
>>>> Phone: +49 (0) 221 346 35 137 • Fax: +49 (0) 221 346 35 200
>>>> daniel.bietenb...@froebus.de
>>>> <mailto:daniel.bietenb...@froebus.de> • www.froebus.de
>>>> <http://www.froebus.de/>
>>>>  
>>>> Geschäftsführung: Gerd Hecheltjen, Frank Bayerl
>>>> Amtsgericht Köln • HRB 1118 • Finanzamt Brühl • UST-IdNr. DE 122788692
>>>>
>>>>> Am 09.09.2019 um 23:48 schrieb Morris, Mark via Webobjects-dev
>>>>> >>>> <mailto:webobjects-dev@lists.apple.com>>:
>>>>>
>>>>> Hi André,
>>>>>
>>>>> If in reality the situation is as simple as your example, perhaps
>>>>> you could just create a separate single instance with a distinct
>>>>> name for your “defined instance", and use that for requests that
>>>>> require it. We do something like that for certain special situations.
>>>>>
>>>>> Regards,
>>>>> Mark
>>>>>
>>>>>> On Sep 9, 2019, at 3:06 PM, André Rothe via Webobjects-dev
>>>>>> >>>>> <mailto:Webobjects-dev@lists.apple.com>> wrote:
>>>>>>
>>>>>> Hello,
>>>>>>
>>>>>> In the JavaMonitor I found the LoadBalancer properties. We use
>>>>>> "Round Robin" for our application, but I asked myself, how I could
>>>>>> implement a custom scheduler for a specific problem (multiple
>>>>>> instances of an application, but so

Re: LoadBalancer

2019-09-24 Thread Michael Kondratov via Webobjects-dev
Yes

Sent from my iPhone

> On Sep 24, 2019, at 4:52 AM, Mark Gowdy  wrote:
> 
> Does that work across multiple machines?
> 
>> On 10 Sep 2019, at 20:53, Michael Kondratov via Webobjects-dev 
>>  wrote:
>> 
>> Daniel,
>>  It is pretty easy. It is worth looking into enabling 
>> ERJGroupsSynchronizer.
>> 
>> er.extensions.remoteSynchronizer=er.jgroups.ERJGroupsSynchronizer
>> er.extensions.jgroupsSynchronizer.multicastAddress=230.0.0.1
>> jgroups.udp.mcast_port=9755
>> 
>> That will synchronize changes across instances.
>> 
>> Michael
>> 
>> 
>>> On Sep 10, 2019, at 3:44 AM, daniel.bietenbeck--- via Webobjects-dev 
>>>  wrote:
>>> 
>>> Hi there,
>>> 
>>> small side question to the topic.
>>> 
>>> Is there a good tutorial for upgrading an application from single instance 
>>> to multi instance? common pitfalls etc.?
>>> 
>>> Best regards,
>>> Daniel Bietenbeck
>>> Leiter IT
>>> ...fröbus 
>>> Medien. Dienst. Leistung.
>>>  
>>> Julius Fröbus GmbH • Schanzenstr. 6-20 • Werkstatt 1.09 • 51063 Köln • 
>>> Deutschland 
>>> Phone: +49 (0) 221 346 35 137 • Fax: +49 (0) 221 346 35 200
>>> daniel.bietenb...@froebus.de • www.froebus.de
>>>  
>>> Geschäftsführung: Gerd Hecheltjen, Frank Bayerl
>>> Amtsgericht Köln • HRB 1118 • Finanzamt Brühl • UST-IdNr. DE 122788692
>>> 
>>>> Am 09.09.2019 um 23:48 schrieb Morris, Mark via Webobjects-dev 
>>>> :
>>>> 
>>>> Hi André,
>>>> 
>>>> If in reality the situation is as simple as your example, perhaps you 
>>>> could just create a separate single instance with a distinct name for your 
>>>> “defined instance", and use that for requests that require it. We do 
>>>> something like that for certain special situations.
>>>> 
>>>> Regards,
>>>> Mark
>>>> 
>>>>> On Sep 9, 2019, at 3:06 PM, André Rothe via Webobjects-dev 
>>>>>  wrote:
>>>>> 
>>>>> Hello,
>>>>> 
>>>>> In the JavaMonitor I found the LoadBalancer properties. We use "Round 
>>>>> Robin" for our application, but I asked myself, how I could implement a 
>>>>> custom scheduler for a specific problem (multiple instances of an 
>>>>> application, but some requests should always use a defined instance, all 
>>>>> all other requests should be redirected and balanced between the other 
>>>>> instances). Is there an interface, which my scheduler has to implement?
>>>>> 
>>>>> Thank you
>>>>> André
>>>>> ___
>>>>> Do not post admin requests to the list. They will be ignored.
>>>>> Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
>>>>> Help/Unsubscribe/Update your Subscription:
>>>>> https://lists.apple.com/mailman/options/webobjects-dev/mark.morris%40experian.com
>>>>> 
>>>>> This email sent to mark.mor...@experian.com
>>>> 
>>>> ___
>>>> Do not post admin requests to the list. They will be ignored.
>>>> Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
>>>> Help/Unsubscribe/Update your Subscription:
>>>> https://lists.apple.com/mailman/options/webobjects-dev/daniel.bietenbeck%40froebus.de
>>>> 
>>>> This email sent to daniel.bietenb...@froebus.de
>>> 
>>> ___
>>> Do not post admin requests to the list. They will be ignored.
>>> Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
>>> Help/Unsubscribe/Update your Subscription:
>>> https://lists.apple.com/mailman/options/webobjects-dev/michael%40aspireauctions.com
>>> 
>>> This email sent to mich...@aspireauctions.com
>> 
>> ___
>> Do not post admin requests to the list. They will be ignored.
>> Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
>> Help/Unsubscribe/Update your Subscription:
>> https://lists.apple.com/mailman/options/webobjects-dev/mark%40gowdy.co.uk
>> 
>> This email sent to m...@gowdy.co.uk
> 
 ___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: LoadBalancer

2019-09-10 Thread Michael Kondratov via Webobjects-dev
Daniel,
It is pretty easy. It is worth looking into enabling 
ERJGroupsSynchronizer.

er.extensions.remoteSynchronizer=er.jgroups.ERJGroupsSynchronizer
er.extensions.jgroupsSynchronizer.multicastAddress=230.0.0.1
jgroups.udp.mcast_port=9755

That will synchronize changes across instances.

Michael


> On Sep 10, 2019, at 3:44 AM, daniel.bietenbeck--- via Webobjects-dev 
>  wrote:
> 
> Hi there,
> 
> small side question to the topic.
> 
> Is there a good tutorial for upgrading an application from single instance to 
> multi instance? common pitfalls etc.?
> 
> Best regards,
> Daniel Bietenbeck
> Leiter IT
> ...fröbus 
> Medien. Dienst. Leistung.
>  
> Julius Fröbus GmbH • Schanzenstr. 6-20 • Werkstatt 1.09 • 51063 Köln • 
> Deutschland 
> Phone: +49 (0) 221 346 35 137 • Fax: +49 (0) 221 346 35 200
> daniel.bietenb...@froebus.de <mailto:daniel.bietenb...@froebus.de> • 
> www.froebus.de <http://www.froebus.de/>
>  
> Geschäftsführung: Gerd Hecheltjen, Frank Bayerl
> Amtsgericht Köln • HRB 1118 • Finanzamt Brühl • UST-IdNr. DE 122788692
> 
>> Am 09.09.2019 um 23:48 schrieb Morris, Mark via Webobjects-dev 
>> mailto:webobjects-dev@lists.apple.com>>:
>> 
>> Hi André,
>> 
>> If in reality the situation is as simple as your example, perhaps you could 
>> just create a separate single instance with a distinct name for your 
>> “defined instance", and use that for requests that require it. We do 
>> something like that for certain special situations.
>> 
>> Regards,
>> Mark
>> 
>>> On Sep 9, 2019, at 3:06 PM, André Rothe via Webobjects-dev 
>>> mailto:Webobjects-dev@lists.apple.com>> 
>>> wrote:
>>> 
>>> Hello,
>>> 
>>> In the JavaMonitor I found the LoadBalancer properties. We use "Round 
>>> Robin" for our application, but I asked myself, how I could implement a 
>>> custom scheduler for a specific problem (multiple instances of an 
>>> application, but some requests should always use a defined instance, all 
>>> all other requests should be redirected and balanced between the other 
>>> instances). Is there an interface, which my scheduler has to implement?
>>> 
>>> Thank you
>>> André
>>> ___
>>> Do not post admin requests to the list. They will be ignored.
>>> Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com 
>>> <mailto:Webobjects-dev@lists.apple.com>)
>>> Help/Unsubscribe/Update your Subscription:
>>> https://lists.apple.com/mailman/options/webobjects-dev/mark.morris%40experian.com
>>>  
>>> <https://lists.apple.com/mailman/options/webobjects-dev/mark.morris%40experian.com>
>>> 
>>> This email sent to mark.mor...@experian.com
>> 
>> ___
>> Do not post admin requests to the list. They will be ignored.
>> Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com 
>> <mailto:Webobjects-dev@lists.apple.com>)
>> Help/Unsubscribe/Update your Subscription:
>> https://lists.apple.com/mailman/options/webobjects-dev/daniel.bietenbeck%40froebus.de
>>  
>> <https://lists.apple.com/mailman/options/webobjects-dev/daniel.bietenbeck%40froebus.de>
>> 
>> This email sent to daniel.bietenb...@froebus.de 
>> <mailto:daniel.bietenb...@froebus.de>
> 
> ___
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com 
> <mailto:Webobjects-dev@lists.apple.com>)
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/webobjects-dev/michael%40aspireauctions.com
>  
> <https://lists.apple.com/mailman/options/webobjects-dev/michael%40aspireauctions.com>
> 
> This email sent to mich...@aspireauctions.com 
> <mailto:mich...@aspireauctions.com>
 ___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: LoadBalancer

2019-09-10 Thread daniel.bietenbeck--- via Webobjects-dev
Hi there,

small side question to the topic.

Is there a good tutorial for upgrading an application from single instance to 
multi instance? common pitfalls etc.?

Best regards,
Daniel Bietenbeck
Leiter IT
...fröbus 
Medien. Dienst. Leistung.
 
Julius Fröbus GmbH • Schanzenstr. 6-20 • Werkstatt 1.09 • 51063 Köln • 
Deutschland 
Phone: +49 (0) 221 346 35 137 • Fax: +49 (0) 221 346 35 200
daniel.bietenb...@froebus.de <mailto:daniel.bietenb...@froebus.de> • 
www.froebus.de <http://www.froebus.de/>
 
Geschäftsführung: Gerd Hecheltjen, Frank Bayerl
Amtsgericht Köln • HRB 1118 • Finanzamt Brühl • UST-IdNr. DE 122788692

> Am 09.09.2019 um 23:48 schrieb Morris, Mark via Webobjects-dev 
> :
> 
> Hi André,
> 
> If in reality the situation is as simple as your example, perhaps you could 
> just create a separate single instance with a distinct name for your “defined 
> instance", and use that for requests that require it. We do something like 
> that for certain special situations.
> 
> Regards,
> Mark
> 
>> On Sep 9, 2019, at 3:06 PM, André Rothe via Webobjects-dev 
>>  wrote:
>> 
>> Hello,
>> 
>> In the JavaMonitor I found the LoadBalancer properties. We use "Round Robin" 
>> for our application, but I asked myself, how I could implement a custom 
>> scheduler for a specific problem (multiple instances of an application, but 
>> some requests should always use a defined instance, all all other requests 
>> should be redirected and balanced between the other instances). Is there an 
>> interface, which my scheduler has to implement?
>> 
>> Thank you
>> André
>> ___
>> Do not post admin requests to the list. They will be ignored.
>> Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
>> Help/Unsubscribe/Update your Subscription:
>> https://lists.apple.com/mailman/options/webobjects-dev/mark.morris%40experian.com
>> 
>> This email sent to mark.mor...@experian.com
> 
> ___
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/webobjects-dev/daniel.bietenbeck%40froebus.de
> 
> This email sent to daniel.bietenb...@froebus.de

 ___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: LoadBalancer

2019-09-09 Thread Morris, Mark via Webobjects-dev
Hi André,

If in reality the situation is as simple as your example, perhaps you could 
just create a separate single instance with a distinct name for your “defined 
instance", and use that for requests that require it. We do something like that 
for certain special situations.

Regards,
Mark

> On Sep 9, 2019, at 3:06 PM, André Rothe via Webobjects-dev 
>  wrote:
> 
> Hello,
> 
> In the JavaMonitor I found the LoadBalancer properties. We use "Round Robin" 
> for our application, but I asked myself, how I could implement a custom 
> scheduler for a specific problem (multiple instances of an application, but 
> some requests should always use a defined instance, all all other requests 
> should be redirected and balanced between the other instances). Is there an 
> interface, which my scheduler has to implement?
> 
> Thank you
> André
> ___
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/webobjects-dev/mark.morris%40experian.com
> 
> This email sent to mark.mor...@experian.com

 ___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: LoadBalancer

2019-09-09 Thread Michael Kondratov via Webobjects-dev
I believe you could do something with Apache mod_proxy.

Michael


> On Sep 9, 2019, at 4:06 PM, André Rothe via Webobjects-dev 
>  wrote:
> 
> Hello,
> 
> In the JavaMonitor I found the LoadBalancer properties. We use "Round Robin" 
> for our application, but I asked myself, how I could implement a custom 
> scheduler for a specific problem (multiple instances of an application, but 
> some requests should always use a defined instance, all all other requests 
> should be redirected and balanced between the other instances). Is there an 
> interface, which my scheduler has to implement?
> 
> Thank you
> André
> ___
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/webobjects-dev/michael%40aspireauctions.com
> 
> This email sent to mich...@aspireauctions.com

 ___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


LoadBalancer

2019-09-09 Thread André Rothe via Webobjects-dev

Hello,

In the JavaMonitor I found the LoadBalancer properties. We use "Round 
Robin" for our application, but I asked myself, how I could implement a 
custom scheduler for a specific problem (multiple instances of an 
application, but some requests should always use a defined instance, all 
all other requests should be redirected and balanced between the other 
instances). Is there an interface, which my scheduler has to implement?


Thank you
André
___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com