httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Roy T. Fielding" <field...@kiwi.ICS.UCI.EDU>
Subject Re: Maintaining status tables across restart
Date Thu, 02 Sep 1999 23:17:09 GMT
>> Instead of letting modules add fields directly
>> to the scoreboard, which would introduce a host of messy problems,
>> how about adding a single shared-memory pointer field to a per-child
>> shared-memory table of key-value pairs?
>
>We did need a good way to deal wih the insane sparseness of the table;
>this might do the trick, though it might make the job of an mod_status
>even harder.
>
>> It would be slower for children
>> actually using that field for status, but how often is that going to occur?
>> Besides, your status displayer is going to need something to indicate
>> what to do with each extended field item.
>
>All fields in the table are strings, and modules would register table
>headers as well. then, mod_status would simply display one big table
>(possibly split up into some smaller tables for connections on
>different protocols or something; this wasn't completely worked out)

I think that is the way to go -- add a single extended status pointer
that points to a shared memory data structure (one per child).  Start
with a simple structure (like a linked list of field-value pairs) and
only access it through ADT functions.  We can optimize it later.  I think
this would be a safer path than trying to store a sparse dynamic table
inside the scoreboard.

BTW, if the modules pre-register fields, you can change the internal
structure to be a perfect hash or AVL tree to improve efficiency.

....Roy

Mime
View raw message