[JDEV] phew

Rodolphe Duge de Bernonville rod at idealx.com
Mon Dec 4 09:22:50 CST 2000


Dennis Noordsij a écrit :
 
> I have another question with regard to this modular stuff, what if you run 2
> jabber service managers on 2 different systems, both controlling the same
> domain, and you set up one instance to <accept>, and the other one to
> <connect>, ie create a connection between the 2.  (similar to how the
> conferencing module recommends one jabber spawning another jabber for
> stability reasons - i want to do this using tcp/ip so I can have the
> instances on different machines, but not for stability reasons but
> scalability).

Maybe you can also try that with mod_farm. It was available in
jserver-1.0.
It takes the username and a hash function to locate where is the user
session.


> 
> Client networking is done on yet another machine (or more) running for
> example jpolld's.
> 
> My point is to use a fast 100 mbit link between 2 jabber instances to divide
> the service manager load (the routing) over those machines. If one machine
> receives a message and it doesn't know the destination session it sends it to
> the other jabber instance who should know it. If it does know the user it
> handles it itself. (with the point being that each JSM only has to do a part
> (ideally half) of the routing it would otherwise have to, thus scaling :)
> 
> By doing that, and running several jpolld machines you should be able to
> scale as far up as the bandwidth between the components allows.

As I told you in my mail, I dont think it is very scalable ...
With 3 servers, in this configuration : 

1 <--> 2 <--> 3

You will have a problem when you want to route message from server 2 ...
Where must go your packet ?  server 1 or server 3 ?
You need to know where must go the packet, and so where is the session 
(which server ...). 
Therefore, you have 2 approaches :

- centralize information : sql database (with xdb_sql ...), or files, 
(xdb_file, with nfs server) and use mod_route and the patch to
dialback.c.

- dont centralize information : mod_farm, but it becomes difficult
to do things like load balancing ...




More information about the JDev mailing list