[master] 0d1ab25 Add Obj* records to the default vsl_mask

Dridi Boukelmoune dridi.boukelmoune at gmail.com
Mon Mar 5 12:22:08 UTC 2018


commit 0d1ab2597f2bd4ccf5d66ab0ddfc4132b9e594d5
Author: Dridi Boukelmoune <dridi.boukelmoune at gmail.com>
Date:   Tue Feb 27 20:54:38 2018 +0100

    Add Obj* records to the default vsl_mask
    
    They add up to a considerable chunk of the VSL traffic, especially when
    cookies are involved, while providing little value when troubleshooting.
    In an effort to reduce VSL cycles on heavy workloads I found these to be
    good candidates for several reasons:
    
    - obj.* fields are immutable in VCL
    - after a hit, we initially get the same Resp* records in vcl_deliver
    - before vcl_backend_response returns, we can infer them from Beresp*
    
    The main difference would be ObjHeader:X-Varnish, but it would be the
    same as BerespHeader:X-Varnish, and be part of the RespHeader counterpart
    in the case of a hit. That, and cache-related headers adjusted to the
    current time.
    
    One case where they wouldn't appear is for example on a hit followed by
    a restart. I have yet to find a use case where I'd need to query them
    with varnishlog or some other VUT.

diff --git a/bin/varnishd/mgt/mgt_param_bits.c b/bin/varnishd/mgt/mgt_param_bits.c
index ad90a12..a6d7b92 100644
--- a/bin/varnishd/mgt/mgt_param_bits.c
+++ b/bin/varnishd/mgt/mgt_param_bits.c
@@ -131,6 +131,10 @@ tweak_vsl_mask(struct vsb *vsb, const struct parspec *par, const char *arg)
 			(void)bit(mgt_param.vsl_mask, SLT_H2TxHdr, BSET);
 			(void)bit(mgt_param.vsl_mask, SLT_H2RxBody, BSET);
 			(void)bit(mgt_param.vsl_mask, SLT_H2RxHdr, BSET);
+			(void)bit(mgt_param.vsl_mask, SLT_ObjHeader, BSET);
+			(void)bit(mgt_param.vsl_mask, SLT_ObjProtocol, BSET);
+			(void)bit(mgt_param.vsl_mask, SLT_ObjReason, BSET);
+			(void)bit(mgt_param.vsl_mask, SLT_ObjStatus, BSET);
 		} else {
 			return (bit_tweak(vsb, mgt_param.vsl_mask,
 			    SLT__Reserved, arg, VSL_tags,


More information about the varnish-commit mailing list