IOCP benefits for client?

Started by
4 comments, last by fingh 22 years ago
I am aware of the performance benefits using overlapped IO on Win32 systems, but maybe I''m missing something... For the server side, the benefits are obvious. Since this is for an existing commercial MMOG, running Windows on the server isn''t really desirable. So considering only the client would be running Windows, is it worth the effort required to change from a BSD-style Winsock implementation to use Win32-specific IOCP?
Advertisement
IOCP is only available on NT/2000/XP or higher. Win9x/Me do not support IOCP. All the Microsoft OSes do support overlapped I/O though...you just need to use a different method for managing the I/O (alertable I/O, events etc.)

BTW What is wrong with Windows 2000 Advanced Server as a hosting platform? It is offhand comments like this that I find frustrating. The company I work for offers a 32-processor machine called the ES7000 that runs Windows DataCenter and destroys every other machine out there. It is marketed as a more powerful and cheaper solution than Unix. Managers love it because it is Microsoft and compatible with a whole suite of common software - unlike Unix. The ES7000 boxes are extremely fast AND reliable. I've also worked with clustered Advanced Server boxes used for mission critical applications. Unix has its place but it isn't the end all be all of operating systems anymore.

/me steps off his soap-box (for now)



Dire Wolf
www.digitalfiends.com

[edited by - Dire.Wolf on April 18, 2002 9:57:22 AM]
[email=direwolf@digitalfiends.com]Dire Wolf[/email]
www.digitalfiends.com
Thanks for the input Dire, but as my original post stated, I am aware of the basic ideas and availability of IOCP and overlapped IO. I am also aware of the scalability etc of various OSs. I asked a specific question, for a very specific (read carefully) EXISTING commercial application, where the server already runs in the Linux/Solaris space (for good reasons). Sorry, I take this stuff seriously, and don't typically make "offhand" comments.

So, back to the original question... The existing solution does not currently use asynchronous IO on the client side. Does anyone think that re-architecting the library to support IOCP or overlapped IO would be worthwhile, since those features would only be used on the client side? Client side has only 1 connection in this case.

Thanks in advance,

F

[edited by - fingh on April 18, 2002 9:08:00 PM]
Don''t fix what ain''t broke.

Is there a current performance problem with using a non completion port IO mechanism? Is it something that you''ve tracked down to being a client side problem?

Performance may be better on the client if you switch to IOCP, but then again, it may not be. It all depends on how well you understand completion ports and what you have to work with. But if it''s functioning acceptably, I don''t know what switching to IOCP would get you.
Sorry about that fingh, I misread the "existing commercial MMOG" part of the sentence.

Anyhow, it probably isn''t worth it. Clients don''t usually require the I/O throughput/efficiency that servers do since they typically only interact on a 1-1 level with the server.

As I mentioned, IOCP isn''t available under Win9x/Me. There is a good chance that many of your clients might be using those OSs.

So, is it worth it? Well that is something you have to decide for yourself Not enough details. If you clients are having problems or the client software is heavily multi-threaded with a lot of disk access and multiple network connections, then yes - it probably would be of benefit to rearchitect for overlapped I/O. I''d bet that it isn''t necessary though.

Dire Wolf
www.digitalfiends.com
[email=direwolf@digitalfiends.com]Dire Wolf[/email]
www.digitalfiends.com
Short answer: No.

This topic is closed to new replies.

Advertisement