Subject: Re: upcalls?
To: None <email@example.com>
From: Ross Harvey <firstname.lastname@example.org>
Date: 12/09/1999 15:20:56
> From: email@example.com (Charles M. Hannum)
> Date: 09 Dec 1999 17:56:07 -0500
> Ross Harvey <firstname.lastname@example.org> writes:
> > Apparently, some database servers like to have thousands and thousands of
> > threads. It's hard to imagine how this would be a good thing for the kernel
> > to be aware of.
> Specifically, they like to have thousands of threads *which are all
> blocked waiting for I/O*.
OK, but there is more to the story, right? Different ways they can block:
* dependencies on other threads, not kernel I/O per se
* waiting for the (possibly distributed) database engine to look
something up; this may be waiting on a main thread, and not on
a raw disk I/O per se
* waiting for a client to respond, keyboard input, network R/T,
etc ... again, this is probably waiting on a protocol thread
to demux and identify a transaction component intended for the
thread, and not on a specific kernel network API function per se
I've only worked on older low-end database engines, so I'm outside my
specialty here, perhaps someone with more internals knowledge of some
big server would care to comment .. if the point still needs arguing ..