Commit f4068c8f authored by Dridi Boukelmoune's avatar Dridi Boukelmoune

whats-new: Clarify changes to bits parameters

Quick attempt to address 3f69805f.

The remaining TODO in the changes needs to be addressed, and upgrade
notes are empty.
parent 75a6f67d
...@@ -19,41 +19,10 @@ varnishd ...@@ -19,41 +19,10 @@ varnishd
Parameters Parameters
~~~~~~~~~~ ~~~~~~~~~~
**XXX changes in -p parameters**
The default value of ``cli_limit`` has been increased from 48KB to The default value of ``cli_limit`` has been increased from 48KB to
64KB to avoid truncating the ``param.show -j`` output for common use 64KB to avoid truncating the ``param.show -j`` output for common use
cases. cases.
The ``vsl_mask`` parameter accepts a new special value "all" that enables
logging of all VSL tags, the counterpart of "none".
.. I am not sure if "absolute value" is the best name here. It is
"relative to all", but I do not have a better idea
This allows all bits parameters to be set atomically to an absolute
value, as in::
param.set vsl_mask all,-Debug,-ExpKill
The ``param.show`` output prints the absolute value. This enables
operations to atomically set a bits parameter, relative or absolute,
and collect the absolute value::
param.show vsl_mask
200
vsl_mask
Value is: all,-Debug,-ExpKill
[...]
The ``param.set`` command in JSON mode (``-j argument``) prints the
``param.show`` JSON output after successfully updating a
parameter. The ``param.reset`` command now shares the same behavior.
The special value ``default`` for bits parameters was deprecated in
favor of the generic ``param.reset`` command. It will be removed in a
future release.
A new ``pipe_task_deadline`` specifies the maximum duration of a pipe A new ``pipe_task_deadline`` specifies the maximum duration of a pipe
transaction. The default value is the special value "never" to align with the transaction. The default value is the special value "never" to align with the
former lack of such timeout:: former lack of such timeout::
...@@ -77,6 +46,65 @@ All the timeout parameters that can be disabled accept the "never" value: ...@@ -77,6 +46,65 @@ All the timeout parameters that can be disabled accept the "never" value:
The :ref:`varnishd(1)` manual advertises the ``timeout`` flag for these The :ref:`varnishd(1)` manual advertises the ``timeout`` flag for these
parameters. parameters.
Bits parameters
~~~~~~~~~~~~~~~
In Varnish 7.1.0 the ``param.set`` command grew a new ``-j`` option that
displays the same output as ``param.show -j`` for the parameter that is
successfully updated.
The goal was to atomically change a value and communicate how a subsequent
``param.show`` would render it. This could be used for consistency checks,
to ensure that a parameter was not changed by a different party. Collecting
how the parameter is displayed can be important for example for floating-point
numbers parameters that could be displayed with different resolutions, or
parameters that can take units and have multiple representations.
Here is a concrete example::
$ varnishadm param.set -j workspace_client 16384 | jq '.[3].value'
16384
$ varnishadm param.set -j workspace_client 128k | jq '.[3].value'
131072
However, this could not work with bits parameters::
$ varnishadm param.set -j feature +http2 | jq -r '.[3].value'
+http2,+validate_headers
If the ``feature`` parameter is changed, reusing the output of ``param.set``
cannot guarantee the restoration that exact value::
$ varnishadm param.set -j feature +http2,+validate_headers | jq -r '.[3].value'
+http2,+no_coredump,+validate_headers
To fill this gap, bits parameters are now displayed as absolute values,
relative to none of the bits being set. A list of bits can start with the
special value ``none`` to clear all the bits, followed by specific bits to
raise::
$ varnishadm param.set -j feature +http2 | jq -r '.[3].value'
none,+http2,+validate_headers
$ varnishadm param.set -j feature none,+http2,+validate_headers | jq -r '.[3].value'
none,+http2,+validate_headers
The output of ``param.show`` and ``param.set`` is now idempotent for bits
parameters, and can be used by a consistency check system to restore a
parameter to its desired value.
Almost all bits parameters are displayed as bits set relative to a ``none``
value. The notable exception is ``vsl_mask`` that is expressed with bits
cleared. For this purpose the ``vsl_mask`` parameter is now displayed as
bits cleared relative to an ``all`` value::
$ varnishadm param.set -j vsl_mask all,-Debug | jq -r '.[3].value'
all,-Debug
The special value ``default`` for bits parameters was deprecated in
favor of the generic ``param.reset`` command. It might be removed in a
future release.
Other changes in varnishd Other changes in varnishd
~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~
...@@ -109,8 +137,6 @@ Changes to VCL ...@@ -109,8 +137,6 @@ Changes to VCL
VCL variables VCL variables
~~~~~~~~~~~~~ ~~~~~~~~~~~~~
**XXX new, deprecated or removed variables, or changed semantics**
A new ``bereq.task_deadline`` variable is available in ``vcl_pipe`` to A new ``bereq.task_deadline`` variable is available in ``vcl_pipe`` to
override the ``pipe_task_deadline`` parameter. override the ``pipe_task_deadline`` parameter.
...@@ -158,16 +184,9 @@ Other changes to VCL ...@@ -158,16 +184,9 @@ Other changes to VCL
The new ``+fold`` flag for ACLs merges adjacent subnets together and optimize The new ``+fold`` flag for ACLs merges adjacent subnets together and optimize
out subnets for which there exist another all-encompassing subnet. out subnets for which there exist another all-encompassing subnet.
VMODs
=====
**XXX changes in the bundled VMODs**
varnishlog varnishlog
========== ==========
**XXX changes concerning varnishlog(1) and/or vsl(7)**
When a ``BackendClose`` record includes a reason field, it now shows the When a ``BackendClose`` record includes a reason field, it now shows the
reason tag (for example ``RX_TIMEOUT``) instead of its description (Receive reason tag (for example ``RX_TIMEOUT``) instead of its description (Receive
timeout) to align with ``SessClose`` records. See :ref:`vsl(7)`. timeout) to align with ``SessClose`` records. See :ref:`vsl(7)`.
...@@ -192,16 +211,9 @@ without having to repeat it:: ...@@ -192,16 +211,9 @@ without having to repeat it::
varnishncsa -F ``%{Varnish:default_format}x %{Varnish:handling}x`` varnishncsa -F ``%{Varnish:default_format}x %{Varnish:handling}x``
varnishadm
==========
**XXX changes concerning varnishadm(1) and/or varnish-cli(7)**
varnishstat varnishstat
=========== ===========
**XXX changes concerning varnishstat(1) and/or varnish-counters(7)**
A new counter ``MAIN.n_superseded`` adds visibility on how many objects are A new counter ``MAIN.n_superseded`` adds visibility on how many objects are
inserted as the replacement of another object in the cache. This can give inserted as the replacement of another object in the cache. This can give
insights regarding the nature of churn in a cache. insights regarding the nature of churn in a cache.
...@@ -209,8 +221,6 @@ insights regarding the nature of churn in a cache. ...@@ -209,8 +221,6 @@ insights regarding the nature of churn in a cache.
varnishtest varnishtest
=========== ===========
**XXX changes concerning varnishtest(1) and/or vtc(7)**
When an HTTP/2 stream number does not matter and the stream is handled in a When an HTTP/2 stream number does not matter and the stream is handled in a
single block, the automatic ``next`` identifier can be used:: single block, the automatic ``next`` identifier can be used::
...@@ -231,9 +241,6 @@ include command itself. There are no guards against recursive includes. ...@@ -231,9 +241,6 @@ include command itself. There are no guards against recursive includes.
Changes for developers and VMOD authors Changes for developers and VMOD authors
======================================= =======================================
**XXX changes concerning VRT, the public APIs, source code organization,
builds etc.**
The ``VSB_tofile()`` function can work with VSBs larger than ``INT_MAX`` and The ``VSB_tofile()`` function can work with VSBs larger than ``INT_MAX`` and
tolerate partial writes. tolerate partial writes.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment