• Dridi Boukelmoune's avatar
    Introduce a new "busy" VCL temperature · 57a5b9c7
    Dridi Boukelmoune authored
    Now that VCLs can be referenced, there are two different situations
    stalling the cooldown. The "cooling" one is kept for VCLs that have
    received a COLD event, and the "busy" one is introduced to wait for
    ongoing transactions.
    
    Basically, if there are transactions, the VCL is still active even
    though it's not *the* active VCL and should therefore be considered
    warm. This guarantees that WARM and COLD events are balanced, and
    also that a "busy" VCL doesn't need to warm up if it is set to warm
    again.
    
    The new VCL temperature engine looks like this:
    
      .----------W>---------------.
      |              .--W>---.    v
    init ---> cold --|       |-- warm --.
              ^  ^   '---<C--'    |     |
              |  |                |     |
              |  '--- cooling <C--'     |
              |         ^               |
              |         C               |
              |         |    .---<---.  |
              '--<C-- busy --|       |--'
                             '--->---'
    
    The transitions marked with a 'W' or a 'C' are the one dispatching
    WARM and COLD events respectively.
    
    Since the "busy" state is considered warm, VMODs should operate as
    such and backend creation remains possible.
    57a5b9c7
Name
Last commit
Last update
bin Loading commit data...
doc Loading commit data...
etc Loading commit data...
include Loading commit data...
lib Loading commit data...
m4 Loading commit data...
man Loading commit data...
.gitignore Loading commit data...
.travis.yml Loading commit data...
CONTRIBUTING Loading commit data...
ChangeLog Loading commit data...
INSTALL Loading commit data...
LICENSE Loading commit data...
Makefile.am Loading commit data...
Makefile.inc.phk Loading commit data...
Makefile.phk Loading commit data...
README Loading commit data...
README.Packaging Loading commit data...
autogen.des Loading commit data...
autogen.sh Loading commit data...
config.phk Loading commit data...
configure.ac Loading commit data...
flint.lnt Loading commit data...
varnish.m4 Loading commit data...
varnishapi-uninstalled.pc.in Loading commit data...
varnishapi.pc.in Loading commit data...