Engineering
Page 8
Cache hit issues? Fix it | Fastly.
The cache hit ratio (or hit ratio for short) is the ratio of hits to cacheable requests (hits and misses combined). There's also cache coverage, the ratio of cacheable requests to all requests (cacheable requests and passes). In most cases, you'll want both to be as high as possible, since misses and passes cause load on your origins, and are slower than cache hits.
Boost Cache Efficiency with Origin Log Analysis
If you want to increase the efficiency of your Varnish (or Fastly) cache, you need to figure out what traffic is not cached. By definition, any traffic that reaches your origin is not cached, and thus worthy of investigation.
Normalizing the Host Header
In the continued quest to increase cache hit ratios, the chant is: "Normalize, normalize, normalize." Less variation in your requests means you have a higher chance of getting hits. This month's highlight is the Host header.
Overriding Origin TTL in Varnish, or My Beginner's Mistake
A long time ago, I was helping out at a gaming conference where there was an intranet CMS using a Twitter search plugin. Unfortunately, the rather saturated Internet connection was slowing down all of the Twitter search requests. Each page needed 4 searches, at 500ms each, for a total of 2-3 seconds per page.
Best practices for using the Vary header
Vary is one of the most powerful HTTP response headers. However, if used incorrectly, it can cause problems for developers. Understand vary header best practices to reduce mistakes and improve performance.
Build Your Own Network
At Fastly, we’ve been steadily building the world’s most advanced CDN. Since our founding, we’ve expanded the public network to include 17 globally distributed points of presence (POPs) and are now serving more than 20 billion requests per day.
Surrogate Keys: Part 2
One of my favorite computer science jokes is that there are only two truly difficult problems in computer science: naming things, cache invalidation, and off-by-one errors. At Fastly, we deal with these sorts of difficult problems every day. In our previous post on surrogate keys, we discussed how this feature can help you solve the problem of invalidating dynamic content. In this post, we’ll take a look under the hood at how we efficiently represented this system.