Processes/Threads on Win2K: The usual philosophical question

Hi everybody,

I think we are all convinced that a multithreaded application performs
and scales better than a multi-processes one on NT 4.0.

I am wondering whether the situation is the same on Win2K.

Several reasons to my question:

  1. We are handling some pretty big concurrent user load and it is not
    rare to have 200-300 threads running within our server process. I think
    we are pushing the envelope a little bit here.

  2. Virtual Addressing space limitation. Because we deal with large
    databases, we have to constantly map/unmap file sections within a 2
    gigabytes space. Having each process own its entire 2 Gig space would
    help and use 8 gig RAM machines a little better. I know 4.0 has some
    extensions to access by hand an additional 4Gig space, but this looks a
    little clunky to me.

  3. Fragility. I confess we do have bugs that we have not nailed yet.
    When we encounter a problem, the whole server process goes down. Having
    multiple processes would limit the damage to one user instead of 200.

Does anybody has a feeling/experience with Win2K and multi-processes:
o Named semaphores vs. critical sections for synchronization (that must
hurt!). I guess we can mitigate this a little bit with
InterlockedIncrement() kind of things, but, still…
o Shared memory accesses
o Process scheduling overhead (is it less painful than 4.0?)
o Large number of handles (1,000 files opened by 100 users becomes
100,000 handles on a multi-process app, as opposed to 1,000 for a
multi-threaded one)

Thanks in advance for any insights or advice.


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

> o Named semaphores vs. critical sections for synchronization (that must

hurt!). I guess we can mitigate this a little bit with
InterlockedIncrement() kind of things, but, still…
o Shared memory accesses

Bad way.
Any client will be able to bring down the server by writing junk to the
shared memory region.

Max


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com