• 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
bin Loading commit data...
debian Loading commit data...
doc Loading commit data...
etc Loading commit data...
include Loading commit data...
lib Loading commit data...
man Loading commit data...
redhat Loading commit data...
ChangeLog Loading commit data...
INSTALL Loading commit data...
LICENSE Loading commit data...
Makefile.am Loading commit data...
README Loading commit data...
autogen.des Loading commit data...
autogen.sh Loading commit data...
configure.ac Loading commit data...
varnishapi.pc.in Loading commit data...