This is a story about how to scale better and faster by keeping it simple. Two prototypes, 0MQ vs HTTP, and one winner. The story is told through our marquee high performance Varnish Cache invalidation product, written in Java, that is capable of 45 thousand cache invalidations per second with ease using only basic HTTP. We aim to share some experience, lessons and fun along the way.
This is a story about how to scale better and faster by keeping it simple, told through our marquee high performance Varnish Cache invalidation product, written in Java.
The cache invalidation product, known as the “Super Fast Purger”, is a RESTful API that is designed to deliver purge requests to multiple geographically distributed Varnish Cache installations. The current implementation is capable of receiving and distributing 45 000 thousand cache invalidation requests per second with ease. It is believed that the upper limit of the throughput is yet to be determined for the Super Fast Purger as the software implementation was limited to network and hardware capabilities during benchmarking.
The Super Fast Purger was conceived as a plugin for the Varnish Administration Console. Prior to the commercial release of the cache invalidation product, two prototypes were developed internally. The first was a highly concurrent and sophisticated prototype with 0MQ, Protobuffer and Disruptor as key components. The second prototype was development without any external packages, APIs or frameworks. By utilising only native Java 1.6 SE, a subset of HTTP 1.1 protocol was implemented and a simple HTTP server was conceived as the RESTful platform to handle purge requests.
With stark contrast in development approach and technology choices, the two prototypes were benchmarked, tested and compared. The findings is that the simple HTTP server as a RESTful platform out performed the highly sophisticated and concurrent prototype by a factor of 100.
This presentation aims to share the findings, lessons, and the fun experience that was the Super Fast Purger.
Yves lives in Oslo, with his awesome partner and two brilliant children.