[Varnish] #1799: Backend request coalescing fail
Varnish
varnish-bugs at varnish-cache.org
Mon Oct 12 15:19:31 CEST 2015
#1799: Backend request coalescing fail
----------------------+--------------------
Reporter: martin | Owner:
Type: defect | Status: new
Priority: normal | Milestone:
Component: varnishd | Version: trunk
Severity: normal | Resolution:
Keywords: |
----------------------+--------------------
Comment (by martin):
This was discussed during bugwash today. The sketched solution looks like:
* A return(miss) from vcl_hit without a busy OC will give the expired OC
an OC_F_DONTUSE flag. The request thread runs STP_LOOKUP again (instead of
falling back to pass). This flag acts like a signal to subsequent lookups
that we didn't like this expired object, and subsequent attempts at using
it should be prevented.
* During HSH_Lookup, if the expired OC selected (the newest expired
option) has the OC_F_DONTUSE flag, we will continue as if we don't have an
expired option. If then busy_found is true (OC with OC_F_BUSY on OH),
we'll go to waitinglist as before.
* bgfetch threads will on failed fetches clear the OC_F_DONTUSE flag if
the expired OC it holds a reference too has this set (on successful
fetches the object is purged as normal). This will reenable the object for
use as an IMS candidate when fetching again, or as an expanded grace
candidate for requests after e.g. the backend is marked sick.
We will ponder the issue for a day to make sure the strategy is viable.
Martin
--
Ticket URL: <https://www.varnish-cache.org/trac/ticket/1799#comment:2>
Varnish <https://varnish-cache.org/>
The Varnish HTTP Accelerator
More information about the varnish-bugs
mailing list