Multithreading the KDC server - a design

Roland Dowdeswell elric at imrryr.org
Mon Apr 4 15:00:28 EDT 2005


On 1112637414 seconds since the Beginning of the UNIX epoch
Sam Hartman wrote:
>

>Hi.  I think this comment comes from missing some conte xt from a
>discussion a few weeks ago.  Note that the goal in multi-threading the
>KDC is not to take advantage of multiple CPUs.  The goal is to have
>multiple execution contexts available so that while one execution
>context is waiting for remote database access another execution
>context can be processing a request.

Given that the KDC itself does not really need to maintain state,
wouldn't it be substantially easier to simply fork off $n$ children
directly after binding to all of the listening sockets and process
requests separately in each child?  The approach works quite well
for a number of other projects and:

	1.  eliminates porting difficulties with subtly
	    incomatible threading implementations, and

	2.  provides a protected address space for each
	    child.

It even let's one use multiple processors, although as you point
out the KDC isn't generally a performance bottleneck.

--
    Roland Dowdeswell                      http://www.Imrryr.ORG/~elric/


More information about the krbdev mailing list