Efficent handling of sockets

Christopher Browne cbbrowne-Re5JQEeQqe8AvxtiuMwx3w at public.gmane.org
Thu Feb 19 21:20:10 UTC 2009


On 2009-02-19, Ken Burtch <ken-8VyUGRzHQ8IsA/PxXw9srA at public.gmane.org> wrote:
> I had a question from a guy at work writing his own socket server in C.
> He is writing an application which needs to handle thousands of users.

I'd suggest being careful to ensure that you're solving the right problem...

The "c10k" site - http://www.kegel.com/c10k.html - points to the
"direct" ways of attacking this by trying to do "highly concurrent
I/O."

I'd suggest considering the idea of aggregating requests together and
then having some central processes that do "batch processing" on them
in order to get efficiencies of scale on that processing.  This tends
to get handled via "message passing" or "message queuing" systems;
things that would be worth looking at (for ideas, if not
implementation) would include:

- SIMPL - QNX-style messaging  http://sourceforge.net/projects/simpl/

- Spread - providing a high performance messaging bus resilient to
faults - http://www.spread.org/

- AMQP - an open standard (with several free software implementations)
fro Message Oriented Middleware -
http://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol

Using messaging is likely to be easier to think about, which is of
non-zero value :-).
-- 
http://linuxfinances.info/info/linuxdistributions.html
--
The Toronto Linux Users Group.      Meetings: http://gtalug.org/
TLUG requests: Linux topics, No HTML, wrap text below 80 columns
How to UNSUBSCRIBE: http://gtalug.org/wiki/Mailing_lists





More information about the Legacy mailing list