HTCP CLR operation for purging clustered reverse proxy cache

Ben Truitt btruitt at
Wed Jul 6 17:37:28 CEST 2011

Good question!

In my opinion, invalidating cache entries is an essential operation of a cache. Varnish already supports HTTP PURGE without a separate process, so invalidating entries is supported in Varnish directly.  What is not supported directly is invalidating entries across a cluster. This requires listening on a separate port, but that doesn't seem like a very strong reason for breaking the functionality into a separate program.

It also seems as though keeping the code for HTCP alongside the rest of Varnish will promote maintainability.

Adding this to Varnish proper should lead to a good start for supporting the other operations in HTCP, specifically the ability for a server to query its peers to determine whether they have a cached representation available.

Furthermore, Squid supports HTCP out of the box, so feature parity in this area will make it easier to gain market share.



On Jul 6, 2011, at 10:44 AM, Per Buer wrote:


Why should this be in Varnish directly? Whats wrong with having it in a separate program?


On Wed, Jul 6, 2011 at 4:38 PM, Ben Truitt <btruitt at<mailto:btruitt at>> wrote:
I was able to find the location of the source code for the HTCP plugin I referred to in the below email (thanks, Artur Bergman):

I'm still curious to know whether there are any plans to incorporate this or similar functionality for purging a clustered cache into Varnish going forward.


On Jul 5, 2011, at 4:56 PM,  wrote:

> Hi -
> Thanks for the great work on Varnish!
> My team at Rackspace is considering adopting Varnish for some RESTful services we're creating. We're planning to have a cluster of reverse proxy cache servers in front of our origin servers. One of the issues that is important to us is the ability to keep the cache consistent with the origin server's data store as much as possible.
> I realize that Varnish supports HTTP PURGE operation, but we'd prefer to use something like HTCP's CLR operation for a multicast purge.  I came across a fairly old varnish-dev mailing list item related to this:
> That post indicates that HTCP CLR would be incorporated into Varnish, but I don't see that it has been.
> I'd love to know:
> 1) Are there plans to include HTCP CLR in Varnish any time soon?
> 2) Is there a plugin (such as the one Artur Bergman created) available that I can use today?
> Thanks in advance for your time!
> Best,
> Benjamin Truitt

This email may include confidential information. If you received it in error, please delete it.

varnish-misc mailing list
varnish-misc at<mailto:varnish-misc at>

Per Buer, CEO
Phone: +47 21 98 92 61 / Mobile: +47 958 39 117 / Skype: per.buer
Varnish makes websites fly!
Whitepapers<> | Video<> | Twitter<>

This email may include confidential information. If you received it in error, please delete it.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the varnish-misc mailing list