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 <go...@me.com> wrote:
>>
>> Does that work across multiple machines?
>>
>>> On 10 Sep 2019, at 20:53, Michael Kondratov via Webobjects-dev
>>> <webobjects-dev@lists.apple.com
>>> <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
>>>> <webobjects-dev@lists.apple.com
>>>> <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
>>>>> <webobjects-dev@lists.apple.com
>>>>> <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
>>>>>> <Webobjects-dev@lists.apple.com
>>>>>> <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
>>>>>>
>>>>>> This email sent to mark.mor...@experian.com
>>>>>> <mailto: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
>>>>>
>>>>> 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
>>>>
>>>> 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
>>> <mailto: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 <mailto: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/andre.rothe%40zks.uni-leipzig.de
> 
> This email sent to andre.ro...@zks.uni-leipzig.de
> 

-- 
UNIVERSITÄT LEIPZIG
Medizinische Fakultät
Zentrum für Klinische Studien Leipzig – KKS
André Rothe
CIO
Härtelstr. 16-18, 04107 Leipzig

Tel: 0341/ 97 16118
Fax: 0341/ 97 16189
WWW: http://www.zks.uni-leipzig.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

Reply via email to