cache empties itself?

Ricardo Newbery ric at digitalmarbles.com
Tue Apr 8 09:09:18 CEST 2008


On Apr 7, 2008, at 10:30 PM, DHF wrote:

> Ricardo Newbery wrote:
>> On Apr 7, 2008, at 5:22 PM, Michael S. Fischer wrote:
>>
>>
>>> Sure, but this is also the sort of content that can be cached back
>>> upstream using ordinary HTTP headers.
>>>
>>
>>
>> No, it cannot.  Again, the use case is dynamically-generated  
>> content  that is subject to change at unpredictable intervals but  
>> which is  otherwise fairly "static" for some length of time, and  
>> where serving  stale content after a change is unacceptable.   
>> "Ordinary" HTTP headers  just don't solve that use case without  
>> unnecessary loading of the  backend.
>>
> Isn't this what if-modified-since requests are for?  304 not  
> modified is a pretty small request/response, though I can understand  
> the tendency to want to push it out to the frontend caches.  I would  
> think the management overhead of maintaining two seperate  
> expirations wouldn't be worth the extra hassle just to save yourself  
> some ims requests to a backend.  Unless of course varnish doesn't  
> support ims requests in a usable way, I haven't actually tested it  
> myself.


Unless things have changed recently, Varnish support for IMS is  
mixed.  Varnish supports IMS for cache hits but not for cache misses  
unless you tweak the vcl to pass them in vcl_miss.  Varnish will not  
generate an IMS to revalidate it's own cache.

Also it is not necessarily true that generating a 304 response is  
always light impact.  I'm not sure about the Drupal case, but at least  
for Plone there can be a significant performance hit even when just  
calculating the Last-Modified date.  The hit is usually lighter than  
that required for generating the full response but for high-traffic  
sites, it's still a significant consideration.

But the most significant issue is that IMS doesn't help in the  
slightest to lighten the load of *new* requests to your backend.  IMS  
requests are only helpful if you already have the content in your own  
browser cache -- or in an intermediate proxy cache server (for proxies  
that support IMS to revalidate their own cache).

Regarding the potential management overhead... this is not relevant to  
the question of whether this strategy would increase your site's  
performance.  Management overhead is a separate question, and not an  
easy one to answer in the general case.  The overhead might be a  
problem for some.  But I know in my own case, the overhead required to  
manage this sort of thing is actually pretty trivial.

Ric







More information about the varnish-misc mailing list