httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dean Gaudet <dgau...@arctic.org>
Subject regarding mod_status and scoreboard API_EXPORTs
Date Thu, 14 Aug 1997 22:59:02 GMT
I'd like to remove the API_EXPORTs from the various scoreboard functions
which mod_status uses and dictate that mod_status cannot be a DLL.  My
reasoning is that these interfaces are quite private, and subject to
change.  In fact I have a change that I wanted to do with my recent
timeout optimization, but I can't do it without an overhaul.  (I want to
reduce cache-line contention on the scoreboard on SMP boxes... admittedly
not a huge priority at all.)  I'd rather not have any more modules
depending on them than necessary.  Right now I know that mod_perl depends
on them and so does mod_status. 

mod_status is arguably similar to the /proc interface to a kernel... and
as such I don't see a need for dynamically loading it. 

Doug I remember that I broke something in mod_perl when I created the
union {} in the scoreboard... but I forget exactly what broke.  It's not
possible to DLLify mod_perl though, right?  So doing this wouldn't break
it?

The scoreboard is very tightly related to the spawning and thread mgmt
model in use by a particular port.  In 2.0 we'll probably have a few more
models than we already have.  I know there's one model that I really want
to experiment with -- worker OS threads, and user-threads for apache code
-- essentially like NT threads and fibers with completion ports.  This is
widely believed to be the most scalable threading model (and it pre-dates
NT).  The other models include: 

- multi-process
- multi-process, multi-OS-thread
- single-process, multi-OS-thread

The beauty of Apache's design is that the work for any of these models is
limited to http_main almost entirely.  There are things we need to add to
the API to allow modules to take advantage of certain models (i.e. the
multithreaded models need mutexes to implement things like process-wide
mmap caches).

Dean



Mime
View raw message