|
From: | Tom wright |
Subject: | [Nel] Network Connections |
Date: | Thu, 1 Mar 2001 08:48:29 -0000 |
Guys/Gals,
Having followed your arguements so far, i though i
would chuck in my 2 p worth.
1) i think you are going to find it very difficult
to scale a server to 5000 concurrent users, using any kind of scheme unless its
a BIG server. Look at EQ currently, they struggle with 2000. But
this is just my opinion :-) so feel free to ignore it.
2) On windows NT/2k, using async sockets with
events is a very efficent way of handling socket comms, and its quite easy to
demultiplex the events to work out which socket caused the event. I would
recommend this route, as one thread could then wait for events to be generated
on say 30 sockets and then take appropriate action. unfortunately i can
not tell you how well this is going to scale :-( Just look up WSAEvents for
READ, SEND and CLOSE. It does make your sending more entertaining however
:-)
3) Windows did support something called micro
threads, which had a much lower over head than traditional threads. These
( if i remember correctly ) were designed specifically for scalable IO ( as in
IIS ). Some time looking here may well yield some useful
results.
4) Some OS's have limits to the size of the array
to select, Windows is one of them, typical values seem to be 64. However
using values this large, you are going to spend time thrashing the array looking
for the source of the select, with events this is much easier and quicker, tho
not linux compatible. Wrapping up the comms like this specific to each
platform is not going to be to hard, just code to a common
interface.
Regards
Tom
PS A binary of the next release for windows would
be nice, takes HOURS to build :-)
|
[Prev in Thread] | Current Thread | [Next in Thread] |