Popularity-Based (Uncoded) Caching
The Natural First Answer
Suppose we are asked to cache files per user and then serve the users' requests over a shared link. If we ignore coding entirely β each user can only hold entire files, and the delivery phase sends uncoded file fragments β what is the best we can do?
The answer, long before coded caching was discovered, is to populate every cache with the most popular files. Users who happen to request any of those files find them locally, and the server only needs to deliver the remaining (rarer) requests. This is what Akamai, Netflix's Open Connect, and every commercial CDN still do.
We now compute exactly how well popularity caching performs, so that we have a concrete baseline to beat.
Definition: Popularity Caching (LFU)
Popularity Caching (LFU)
Let the demand distribution of each user be , with files ordered so that . Popularity caching places the most popular files in every user's cache. In the delivery phase, the server sends to each user whose requested file is not in the cache (a miss), using unicast transmissions.
Popularity caching is sometimes called least-frequently-used (LFU) placement; the dynamic version, which tracks request frequencies online, reduces to this static rule in the limit of infinite observation time.
Definition: Cache-Hit Ratio
Cache-Hit Ratio
The cache-hit ratio is the probability that a random user's request is served from its local cache: Under popularity caching, the expected load on the shared link (in file units per delivery round) is
Example: Hit Ratio Under Zipf Demands
Empirical studies of web and streaming traffic show demand follows a Zipf distribution with exponent : Compute the cache-hit ratio under popularity caching for , (so ), and .
Set up the sum
The hit ratio is where is the generalized harmonic number.
Compute for each $\alpha$
- (uniform): .
- : .
- : .
- : .
Interpret
The more concentrated the popularity, the better popularity caching performs. For β aggressive power-law decay seen in video streaming β caching 10% of the library catches 78% of requests. For uniform demand, caching 10% catches only 10% of requests. The key dependence is not on the cache size alone, but on the shape of the demand distribution.
Cache-Hit Ratio Under Zipf Demands
Adjust the Zipf exponent and the library size . The curve shows the cache-hit ratio for popularity caching. The dashed diagonal is the uniform-demand baseline: caching a fraction of a uniform library yields exactly that fraction in hit ratio. Heavy-tailed demand distributions benefit disproportionately from popularity caching β but only at small .
Parameters
0 = uniform, ~0.8 = video streaming, ~1.2 = news articles
Theorem: Optimality of Popularity Caching Under Uncoded Placement
For the shared-link network with i.i.d. demands following distribution , and with the restriction that each cache store whole files only (uncoded placement) and that the delivery phase transmit whole file fragments (uncoded delivery with unicast messages), popularity caching of the most popular files minimizes the expected delivery rate: No uncoded strategy (even a randomized one) can do strictly better.
Under uncoded placement + uncoded delivery, each user's cache is a "free copy" of specific files and every miss costs one unicast transmission. To minimize misses, we must cache the files that are requested most often. This is classical: it's the LFU rule, optimal for static demand distributions under the uncoded-caching restriction.
Reduce to a set-cover argument
Fix any placement strategy. Without coding, user 's cache is a subset with . The probability of a hit for user is .
Maximize each user's hit probability
Because user 's demand is independent of the demands of other users, and because the only way to serve a miss is an individual unicast, the expected delivery rate decouples across users: Each user's contribution is minimized by choosing to be the most-probable files. Because the 's are the same for every user, the optimal choice is identical across users.
Conclude
Hence for every , and the optimal expected rate is .
Key Takeaway
Under the uncoded-caching restriction, popularity caching is optimal. But this optimality is conditional on a specific restriction β that we neither code the cache contents nor the delivery messages. Once we lift either restriction, a strictly better strategy exists. This is the central message of coded caching, and the reason we are writing this book.
Shared-Link Load Under Popularity vs. Coded Caching
Compare the expected shared-link load under popularity caching (red, for Zipf demands) with the coded-caching upper bound (blue dashed, a preview of the Maddah-AliβNiesen scheme from Chapter 2). The coded bound is demand-agnostic: it applies for any demands, including worst-case ones. Popularity caching beats the coded bound only for very concentrated demand (high ) and small .
Parameters
Common Mistake: The Hit Ratio Is Per-Request, Not Per-File
Mistake:
Reading "90% cache-hit ratio" as "the cache contains 90% of the library".
Correction:
The hit ratio measures the fraction of requests served locally, not the fraction of the library stored. With Zipf demands of exponent , a cache of 10% of the library already achieves a hit ratio near 78%. This is why commercial CDNs operate at very small cache fractions but still deliver most traffic from the edge. Conversely, in scientific or archival workloads where demand is close to uniform, a 10% cache yields exactly 10% hit ratio β and popularity caching buys you nothing.