Re: select() support / anti-load-balancing?



Hello Roland,

>   I'm apparently encountering some problem when several clients all
> send requests to the same server.  It seems that the first client can
> get all the server for itself, while the other ones are locked out.
> What would be (for me) nice was some sort of round-robin on the
> clients, so that the server shares its resources somewhat more
> equally.

The server of course only has one thread of execution. So as long as the
called method does not finish (or wait for replies for its own requests), no
other request can be handled. That said of course it is possible that if there
are  always requests on one socket, other sockets won't have a chance of being
heard (thats a livelock).

>   So I went into the src/orb/server.c code, and it seems that the
> server does not use select().  I feel it would help to use it, and
> process all requests from one select() before re-select()ing.

A select is always used, when ORBit is waiting for data.
 
>   Is this part of a TODO list?  Did I read wrong?  How hard would it
> be? (Depending on the answer to this one, I'd be willing to
> contribute.)

A round robin doesn't make much sense IMHO.

>   Or: is there another way to share the server resources more equally
> among the clients?

Try ORBit-mt:

	http://goethe.ira.uka.de/~wilhelmi/ORBit-mt/
 
Bye,
Sebastian
-- 
Sebastian Wilhelmi
mailto:wilhelmi ira uka de
http://goethe.ira.uka.de/~wilhelmi




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]