[varnishcache/varnish-cache] 57a5b9: Introduce a new "busy" VCL temperature

Dridi Boukelmoune dridi.boukelmoune at gmail.com
Sat Dec 5 17:15:13 CET 2015


  Branch: refs/heads/master
  Home:   https://github.com/varnishcache/varnish-cache
  Commit: 57a5b9c78f669f43819df6e9fa5438e56afb0fc2
      https://github.com/varnishcache/varnish-cache/commit/57a5b9c78f669f43819df6e9fa5438e56afb0fc2
  Author: Dridi Boukelmoune <dridi.boukelmoune at gmail.com>
  Date:   2015-12-05 (Sat, 05 Dec 2015)

  Changed paths:
    M bin/varnishd/cache/cache_vcl.c

  Log Message:
  -----------
  Introduce a new "busy" VCL temperature

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.


  Commit: 28eec51b3d1c4d3a6d4da947bb7fea73028af19c
      https://github.com/varnishcache/varnish-cache/commit/28eec51b3d1c4d3a6d4da947bb7fea73028af19c
  Author: Dridi Boukelmoune <dridi.boukelmoune at gmail.com>
  Date:   2015-12-05 (Sat, 05 Dec 2015)

  Changed paths:
    M lib/libvmod_debug/vmod_debug.c

  Log Message:
  -----------
  Make event handling more readable in vmod-debug


  Commit: 8bf2b0aee5da016125b5ddd007b9b0d040f1a535
      https://github.com/varnishcache/varnish-cache/commit/8bf2b0aee5da016125b5ddd007b9b0d040f1a535
  Author: Dridi Boukelmoune <dridi.boukelmoune at gmail.com>
  Date:   2015-12-05 (Sat, 05 Dec 2015)

  Changed paths:
    M lib/libvmod_debug/vmod.vcc
    M lib/libvmod_debug/vmod_debug.c

  Log Message:
  -----------
  Hold a VCL reference in the debug vmod

By default the reference is released as soon as the VCL goes cold, which
doesn't harm the existing tests yet allows to cover the new VRT_ref_vcl
and VRT_rel_vcl functions.

It is possible to ask the vmod to release the reference after a delay.


  Commit: 502a871051ccf7a9037f7c5aad3977618e2355c6
      https://github.com/varnishcache/varnish-cache/commit/502a871051ccf7a9037f7c5aad3977618e2355c6
  Author: Dridi Boukelmoune <dridi.boukelmoune at gmail.com>
  Date:   2015-12-05 (Sat, 05 Dec 2015)

  Changed paths:
    A bin/varnishtest/tests/v00045.vtc

  Log Message:
  -----------
  Coverage for the cooling state


  Commit: 89ce06aa305f577fd140dd35b6adf5d20a7444f0
      https://github.com/varnishcache/varnish-cache/commit/89ce06aa305f577fd140dd35b6adf5d20a7444f0
  Author: Dridi Boukelmoune <dridi.boukelmoune at gmail.com>
  Date:   2015-12-05 (Sat, 05 Dec 2015)

  Changed paths:
    M bin/varnishtest/tests/v00045.vtc

  Log Message:
  -----------
  Wording


Compare: https://github.com/varnishcache/varnish-cache/compare/697fd4448b36...89ce06aa305f


More information about the varnish-commit mailing list