[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