• Poul-Henning Kamp's avatar
    When an object is being fetched from the backend, other requests for it · 1dd5ad52
    Poul-Henning Kamp authored
    are parked not holding a worker thread, until the fetching session lowers
    the busy bit on the object.
    
    At that point we would release all the parked requests into the thread
    pool to be serviced, causing instant congestion and calls for road-pricing
    if the backend were a bit slow on an oft-requested object.
    
    Change the restart policy to be paced exponential:
    
    When we clear the busy bits, we unpark "rush_exponent" requests into
    the thread pool to start the show.
    
    Whenever the object is dereferenced, in practice whenever a request
    has been serviced, another "rush_exponent" worth of requests are
    unparked into the tread pool.
    
    Set the parameter to a conservative 3 until we know more about the
    behaviour in practice.
    
    If it is a big object and/or the clients are on slow lines, 3 may
    be an order of magnitude to small.
    
    Attempts to fix: #188
    
    
    
    git-svn-id: http://www.varnish-cache.org/svn/trunk/varnish-cache@2294 d4fa192b-c00b-0410-8231-f00ffab90ce4
    1dd5ad52
Name
Last commit
Last update
..
varnishadm Loading commit data...
varnishd Loading commit data...
varnishhist Loading commit data...
varnishlog Loading commit data...
varnishncsa Loading commit data...
varnishreplay Loading commit data...
varnishstat Loading commit data...
varnishtop Loading commit data...
Makefile.am Loading commit data...