On Wed, 10 Nov 2004 14:20:38 +0100, "Marc Battyani" marc.battyani@fractalconcept.com wrote:
I always wanted to test and finalize those versions but never found the time to do it. The major points are the treading model and the socket reuse. Have you also tested these points ? (The problem is to have thread specific variables for the socket variables (no special vars in C :( ))
Yes, I tried to test these things, too. The code seems to keep the socket info in the configuration records. We know that this didn't work for 1.3.x[1] but it seems to work for 2.x. I inserted logging statements to check whether the sockets are actually re-used and they obviously /are/ re-used.
I also tried to test whether there are issues with multiple mod_lisp instances[2] but I couldn't break the code. What I did was something like this: Start two different mod_lisp instances from different Lisp images in different locations. Then run ApacheBench to request a page from the first image several thousand times. Finally request a page from the second image manually one or more times. This was always enough to break mod_lisp prior to 2.37 but doesn't generate errors with mod_lisp2.
Maybe my test methodology is flawed but at the moment I'm pretty sure that everything works fine. Perhaps Chris wants to comment on these issues.
What I saw was that mod_lisp2 with Apache 2 seems to be a bit slower than mod_lisp with Apache 1.3 - something like 280 requests per second versus 340 requests per second (on VMWare). I'm not sure if this is due to Apache 2 or due to mod_lisp2, though. From a quick glance at the code it seems that mod_lisp2 does a lot of error checking which I think is a good thing. I don't mind if this results in a speed decrease that's barely noticable unless you've hundreds of simultaneously connected clients.
Also, please note that I only ran these tests on Linux. On Windows (which supposedly has another default threading model) I only checked whether the standard TBNL tests succeeded.
Cheers, Edi.
[1] http://common-lisp.net/pipermail/mod-lisp-devel/2004-July/000007.html [2] http://common-lisp.net/pipermail/mod-lisp-devel/2004-August/000018.html