December 6, 2012
2 min read time

VAC 2.0.3 with high performance cache invalidation API (aka the Super Fast Purger)

Whilst Varnish is the go-to product for high performance and high availability caching, we often overlook the importance of its counterpart, cache invalidation. When serving the newest and latest content is a business requirement, coupled with the constraint that this content is delivered at a lightning pace, you need high-performance cache invalidation. The high-performance cache invalidation API, introduced at the sixth Varnish user group meeting (VUG6) in London earlier this year, is now bundled with the VAC 2.0.3 release. The high-performance cache invalidation API is also known as the “Super Fast Purger”. It is therefore fitting to give a shout out to Kristian Lyngstøl, our beloved Product Specialist, for providing the best in-house solution for the Super Fast Purger. You’ve done us proud Kristian! Huzza!

What exactly does the Super Fast Purger do?

The Super Fast Purger does one thing and one thing only, purging Varnish caches, and lots of Varnish caches at a blazing speed. The curl example below illustrates how easy it is to utilize and incorporate this API into your own application stack.

curl -X PURGE -H 'X-Cache-Group: Production' -H 'X-HMAC: key' -H 'X-Timestamp: 1212' http://vac-server:8088/i-want-to-purge

For security, the Super Fast Purger uses a hash-based message authentication code (HMAC) to ensure that the purge request is valid. HMAC is supported in the libdigest vmod as part of all our subscriptions. Naturally, you can still use your existing access control list (ACL) in the VCL for purging.

So how fast is the Super Fast Purger?

Kristian nonchalantly mentioned that the Super Fast Purger did 60,000 requests per second, on a 6 core Xeon with 36GB memory, traffic over a gigabit network to a single Varnish Cache server, with httperf as test client. But we believe the Super Fast Purger can do a lot more with a little love and tuning.

Image (c) 2013 from Wikimedia Commons used under Creative Commons 3.0 license.