ISAPI Filter and the N+1 Architecture?
Question:
Hi David,
I am developing an ISAPI Filter to prove the N+1 Architecture.There will be few static sites, few dynamic sites and few cgi perl script sites will be there. Can you please tell me how ISAPI performs for CGI Perl Scripts.
Thanks and Regards.
Answer:
How ISAPI performs on IIS completely depends on how its author writes it. ISAPI is a thin wrapper that allows you to run raw Win32 code on IIS, so it is as fast as you can get. Thus, the real question is whether you can write the ISAPI Filter performantly for your N+1 experiment?
I really do not know what you plan on writing, so I cannot offer any additional advice other than if you do things incorrectly, ISAPI Filter can also strangle/crash IIS very easily. With power comes responsibility. Choose wisely.
Now, I can say that launching CGI Processes to execute scripts will likely be one of the slowest part of the website, so you want to optimize and use ISAPI versions of everything. So, you want to use an ISAPI version of Perl to execute Perl Scripts.
You may want to browse through other blog entries for general thoughts. Some of them include:
- https://blogs.msdn.com/david.wang/archive/2005/09/26/HOWTO_Mass_Shared_Hosting_on_Windows_with_IIS6.aspx
- https://blogs.msdn.com/david.wang/archive/2005/10/11/Kernel_Caching_in_IIS_6_Redux.aspx
//David
Comments
- Anonymous
November 11, 2005
sorry if this is too basic - but what do you mean by 'N+1' architecture? - Anonymous
November 12, 2005
The comment has been removed - Anonymous
November 12, 2005
MK - actually, I haven't encountered any of the problems you stated regarding Script nor native-code debugging. That is pretty much bread-and-butter of the IIS product and tests, and I think it works pretty well on all of the recent Windows OS releases the last time I checked.
In general, the right way to debug is to attach the debugger BEFORE the error is triggered. Then, you can either step through the offending code or catch the first-chance exception and handle it in the debugger up front.
I have no idea how you are trying to debug assertions in native code nor problems with stack information - I have never seen any problems with it and we use pretty much the same tools / configurations that you do. It sounds like you are trying to rely on catching second-chance JIT exception, which may not be what you actually need to do.
I have seen some minor script debugging issues with later versions of VS.Net (mostly because seamless debugging Scripting is considered legacy and not really maintained on the later versions), but the original Microsoft Script Debugger still works pretty well up through WS03SP1. I really do not debug scripts using VS.Net.
So all in all, I am curious about the specifics of your debugging issues because my experience has been pretty much the opposite.
//David - Anonymous
November 26, 2005
The comment has been removed - Anonymous
November 28, 2005
The comment has been removed - Anonymous
December 02, 2005
Awesome input, thanks, may it show the way of the web ;)
Have certainly some homework to catch up with, look up those kits and take everything suggested into consideration. If it proves necessary certainly have no issues switching debuggers as soon as time permits.. What's the worse than can happen, KD will feel like good old 80's, text and text only.. UIs are so outdated anyway (g).
Unfortunately the ping communicator is not under my control, can be switched off but brings in heavy duty issues with it's own session/lifetime or indirectly impacts loads of 'ownership' and load balancing logic for tests at the very least (it's worse than that really, the DLL is not doing any 'versioning' and contains a messed up dm-switch impl).. for all I care it's vendor/provider loss, am talking to them and might be lucky and see it fixed.
In any case, many thanks for your help once again.. look forward to adopting some methods suggested or similar.
While here, please keep up the great work and all the best for release of the IIS7.0 monster-server ;) Just to let you know, this is really why I stopped writing TCP servers.. why on earth bother, you guys do so much on testing, tuning, and features that it's just pointless. If there only was something better than chunked-encoding for HTTP I really wouldn't use anything but IIS..
So can we 'hook it' lol and tweak that please? Joking of course..IIS and SSL blogs, all that's needed ;) If only IE bloggers could respond to some recent, very much needed, requests regarding performance of their rendering and scripting engine before new release, fingers crossed..
Cheers
M - Anonymous
December 04, 2005
MK - Thanks for the encouragement.
With IIS7 you'll finally be able to reconfigure it to be your precisely customized TCP server, running exactly the modules you want and nothing more...
Not that the extra IIS modules are the cause of your current problems... ;-) But we are very keen to get our modules off the radar so that it eases our servicing requirements while simultaneously improving your reliability requirements. win-win for everyone.
//David - Anonymous
December 09, 2005
The comment has been removed