Skip to content
About
Main content
Model

Zipf: what the hottest items carry

The benefit is logarithmic in the cache size: the last slice of hit rate costs the most.

Hot items
the top k items (what you cache)
Items
all items
Share
the fraction of accesses that go to the top k
Exponent
the item ranked r is accessed in proportion to 1/r^α

Recurring principle: Power laws and skew

How it behaves

One input on the horizontal axis, the others held fixed.

N = 10⁶N = 10⁹
Data table
Share of accesses to the hottest items, by the fraction cached (α ≈ 1)
Fraction of items cached k/NseriesAccesses served
0N = 10⁶16.7%
0N = 10⁶17.7%
0N = 10⁶18.8%
0N = 10⁶19.8%
0N = 10⁶20.8%
0N = 10⁶21.9%
0N = 10⁶22.9%
0N = 10⁶24%
0N = 10⁶25%
0N = 10⁶26%
0N = 10⁶27.1%
0N = 10⁶28.1%
0N = 10⁶29.2%
0N = 10⁶30.2%
0N = 10⁶31.3%
0N = 10⁶32.3%
0N = 10⁶33.3%
0N = 10⁶34.4%
0N = 10⁶35.4%
0N = 10⁶36.5%
0N = 10⁶37.5%
0N = 10⁶38.5%
0N = 10⁶39.6%
0N = 10⁶40.6%
0N = 10⁶41.7%
0N = 10⁶42.7%
0N = 10⁶43.8%
0N = 10⁶44.8%
0.001N = 10⁶45.8%
0.001N = 10⁶46.9%
0.001N = 10⁶47.9%
0.001N = 10⁶49%
0.001N = 10⁶50%
0.001N = 10⁶51%
0.001N = 10⁶52.1%
0.002N = 10⁶53.1%
0.002N = 10⁶54.2%
0.002N = 10⁶55.2%
0.002N = 10⁶56.3%
0.003N = 10⁶57.3%
0.003N = 10⁶58.3%
0.004N = 10⁶59.4%
0.004N = 10⁶60.4%
0.005N = 10⁶61.5%
0.006N = 10⁶62.5%
0.006N = 10⁶63.5%
0.008N = 10⁶64.6%
0.009N = 10⁶65.6%
0.01N = 10⁶66.7%
0.012N = 10⁶67.7%
0.013N = 10⁶68.8%
0.015N = 10⁶69.8%
0.018N = 10⁶70.8%
0.021N = 10⁶71.9%
0.024N = 10⁶72.9%
0.027N = 10⁶74%
0.032N = 10⁶75%
0.037N = 10⁶76%
0.042N = 10⁶77.1%
0.049N = 10⁶78.1%
0.056N = 10⁶79.2%
0.065N = 10⁶80.2%
0.075N = 10⁶81.3%
0.087N = 10⁶82.3%
0.1N = 10⁶83.3%
0.115N = 10⁶84.4%
0.133N = 10⁶85.4%
0.154N = 10⁶86.5%
0.178N = 10⁶87.5%
0.205N = 10⁶88.5%
0.237N = 10⁶89.6%
0.274N = 10⁶90.6%
0.316N = 10⁶91.7%
0.365N = 10⁶92.7%
0.422N = 10⁶93.8%
0.487N = 10⁶94.8%
0.562N = 10⁶95.8%
0.649N = 10⁶96.9%
0.75N = 10⁶97.9%
0.866N = 10⁶99%
1N = 10⁶100%
0N = 10⁹44.4%
0N = 10⁹45.1%
0N = 10⁹45.8%
0N = 10⁹46.5%
0N = 10⁹47.2%
0N = 10⁹47.9%
0N = 10⁹48.6%
0N = 10⁹49.3%
0N = 10⁹50%
0N = 10⁹50.7%
0N = 10⁹51.4%
0N = 10⁹52.1%
0N = 10⁹52.8%
0N = 10⁹53.5%
0N = 10⁹54.2%
0N = 10⁹54.9%
0N = 10⁹55.6%
0N = 10⁹56.3%
0N = 10⁹56.9%
0N = 10⁹57.6%
0N = 10⁹58.3%
0N = 10⁹59%
0N = 10⁹59.7%
0N = 10⁹60.4%
0N = 10⁹61.1%
0N = 10⁹61.8%
0N = 10⁹62.5%
0N = 10⁹63.2%
0.001N = 10⁹63.9%
0.001N = 10⁹64.6%
0.001N = 10⁹65.3%
0.001N = 10⁹66%
0.001N = 10⁹66.7%
0.001N = 10⁹67.4%
0.001N = 10⁹68.1%
0.002N = 10⁹68.8%
0.002N = 10⁹69.4%
0.002N = 10⁹70.1%
0.002N = 10⁹70.8%
0.003N = 10⁹71.5%
0.003N = 10⁹72.2%
0.004N = 10⁹72.9%
0.004N = 10⁹73.6%
0.005N = 10⁹74.3%
0.006N = 10⁹75%
0.006N = 10⁹75.7%
0.008N = 10⁹76.4%
0.009N = 10⁹77.1%
0.01N = 10⁹77.8%
0.012N = 10⁹78.5%
0.013N = 10⁹79.2%
0.015N = 10⁹79.9%
0.018N = 10⁹80.6%
0.021N = 10⁹81.3%
0.024N = 10⁹81.9%
0.027N = 10⁹82.6%
0.032N = 10⁹83.3%
0.037N = 10⁹84%
0.042N = 10⁹84.7%
0.049N = 10⁹85.4%
0.056N = 10⁹86.1%
0.065N = 10⁹86.8%
0.075N = 10⁹87.5%
0.087N = 10⁹88.2%
0.1N = 10⁹88.9%
0.115N = 10⁹89.6%
0.133N = 10⁹90.3%
0.154N = 10⁹91%
0.178N = 10⁹91.7%
0.205N = 10⁹92.4%
0.237N = 10⁹93.1%
0.274N = 10⁹93.8%
0.316N = 10⁹94.4%
0.365N = 10⁹95.1%
0.422N = 10⁹95.8%
0.487N = 10⁹96.5%
0.562N = 10⁹97.2%
0.649N = 10⁹97.9%
0.75N = 10⁹98.6%
0.866N = 10⁹99.3%
1N = 10⁹100%

Worked examples, recomputed

Every number the mechanisms quote for this relationship is recomputed from it, so none of them disagrees with it.

Where it appears

Each mechanism states it in its own names. The general symbol each name stands for is shown with it.

  • Caching

    What happens when we deliberately keep a second copy of data that no protocol forces to be correct?

    C (cache size) =

    Read it in place →

  • Caching

    What happens when we deliberately keep a second copy of data that no protocol forces to be correct?

    C (cache size) =

    Read it in place →

  • Caching

    What happens when we deliberately keep a second copy of data that no protocol forces to be correct?

    k (nodes pooling one keyspace) =

    Read it in place →