[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Dealing with thread storms
From: |
olafBuddenhagen |
Subject: |
Re: Dealing with thread storms |
Date: |
Sat, 17 Apr 2010 02:39:25 +0200 |
User-agent: |
Mutt/1.5.19 (2009-01-05) |
Hi,
On Wed, Apr 07, 2010 at 12:37:59PM +0200, Sergio Lopez wrote:
> - Implement a queue in libdiskfs to deal with m_o_data_return
> requests and a static amount of consumers which will do the real
> work. Each time the kernel sends us a m_o_data_return, we just add
> the request to the queue and return the thread to the pool.
I think this is a very good idea. This kind of piplined processing is
actually the best approach when optimizing for high throughput.
(Some time ago I stumbled over some research paper, where they
implemeted an experimental HTTP server with such a design, and claimed
considerably higher performance than the established servers -- despite
being implemented in Java...)
While for most Hurd servers such an implementation probably would be too
complex (and not really necessary anyways) -- a continuation-based
approach seems more realistic for the generic case (we talked about this
in the last discussion about thread storms, when the thread throtteling
patch was dropped) -- I think it makes perfect sense to use the
pipelined approach for more critical pieces like the pager.
-antrik-