Build1 distinct publisher3 min readPublished
Big Pineapple holds more than 250 billion cache entries, so one wasted byte per entry is 250GB of fleet RAM. Cloudflare's fix was mostly a choice of Rust container types, and fewer allocations made the cache quicker rather than slower.
The Engineer · Build desk

Compiled by The EngineerSomething wrong?How this is made
Do the division first. Roughly 100 terabytes recovered across more than 250 billion entries is about 400 bytes per entry, or 440 if those terabytes are binary [1]. The cut was more than half, so the entry it started from sat under 900 bytes [2]. The savings the post itemises come out of the container rather than the records: a capacity word that will never be read, heap slots reserved for records that never arrive, and pointers that could have been offsets [7][8][12].
Units are load-bearing at this size. Eight bytes on each of eight fields is 64 bytes per entry [10], and 64 bytes times 250 billion entries is 1.6e13 bytes, which is 16 TB decimal and 14.6 TiB binary [3]. Cloudflare puts the fields-plus-heap-slack figure at over 15 terabytes [11], and that reconciles cleanly only on the binary reading [5]. Same bytes either way, but the label decides how many servers you think you got back.
The mechanism is three machine words. A `Vec<T>` carries a pointer, a length, and a capacity, and every push compares length against capacity to decide whether it must reallocate [6]. A cached DNS response is written once and then read until it expires [7]. The comparison never fires, the capacity is never consulted, and the growth room the `Vec` reserved on the heap is never filled: eight slots allocated, five records stored, three paid for and empty [8]. `Box<[T]>` and `Box<str>` are the same data with the growth machinery deleted [9]. The section merge is the same argument applied to indirection. Three separate lists mean three 8-byte pointers; one list with `u16` offsets costs 2 bytes per section, because a DNS section's record count fits in 16 bits [12].
The throughput and latency gains were measured on a synthetic fill: 56% A records, 25% AAAA, 19% TXT, one to four records per entry, with TXT randomised between 64 and 224 bytes to stand in for every variable-length type [13][14]. For those gains to appear in your cache, the insert path has to be dominated by allocator calls rather than parsing or socket work, and the entry has to be a scatter of small allocations rather than one packed buffer. It also has to be immutable after insert. That last condition is the one that disqualifies most people. If anything appends to a stored entry later, `Box<[T]>` is unavailable and the capacity word comes back.
The part I would copy is the instrumentation. Cloudflare wrapped Rust's `System` allocator to record the count and size of allocations per cache entry [15], which turns "this struct is fat" into a number you can regress against in CI. The post also says plainly that the synthetic inputs approximate production rather than reproduce it, that resident memory moves with traffic mix, cache occupancy, allocator state and memory outside the cache, and that resident memory was tracked across production instances during the rollout [16]. That step is what makes the 100 terabytes a measurement instead of a multiplication. The arithmetic behind the server analogy survives contact too: 100 TB over 130 Gen 13 machines is about 769 GB each [4], a plausible configuration rather than a flattering one.
Ranked by verification strength, evidence, and original report placement.
Five successive changes to how cache entries are stored in memory cut the per-entry footprint by over 50%.
Across the fleet the changes freed roughly 100 terabytes of memory, which Cloudflare says is equivalent to the RAM in 130 of its Gen 13 servers.
Insert throughput rose 43% and lookup latency dropped 19%; Cloudflare attributes this to fewer allocations and better memory locality, saying it did not trade speed for space.
Box<[T]> cannot grow after creation, so it needs no capacity field and reserves no space for future elements; Box<str> likewise drops the capacity field that String carries.
Each cache entry stores 8 Vec and String fields, and replacing them with Box<[T]> and Box<str> saves 8 bytes per field, 64 bytes per entry.
Combining the removed capacity fields with the eliminated excess heap reservation, Cloudflare reports combined savings of over 15 terabytes across more than 250 billion cache entries.
Distinct publishers with included, body-backed reporting in this cluster.
1 article · August 27, 2026
Follow any of these and your For You feed starts watching them — no settings page required.
product
A 2x LLM bill is not a bug report: token spend is an observability problem1 distinct publisher
security
PavinLoader: the lures keep changing, the MSBuild stage does not1 distinct publisher
build
796 pages of semantic search with no vector database, and what it cost to skip one1 distinct publisher
build
Route leak prevention moves into the protocol, and two Tier-1s are stripping the signal1 distinct publisher
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Detailed first-party mechanism, self-reported outcomes
The causal mechanism is unusually well specified and independently checkable against Rust semantics: Vec's pointer/length/capacity layout, the redundancy of capacity for immutable cache entries, Box<[T]>/Box<str> substitution at 8 bytes per field, u16 section offsets replacing pointer+length pairs, and alignment-padding effects. Methodology is disclosed (synthetic record mix, custom wrapping allocator counting allocations per entry, throughput and latency measured on the same flow) and Cloudflare states its own limits, adding production resident-memory measurement during rollout. What holds the score down: a single first-party source, no raw data or harness code, no absolute per-entry byte sizes, and an unstated terabyte convention that leaves the 'over 15 terabytes' figure reconcilable only on binary units.
Shipped fleet-wide at one vendor, no external uptake
Adoption is real and large but singular: the changes are described as rolled out to production instances of the platform serving 1.1.1.1, Gateway DNS, DNS Firewall and AS112, with fleet resident memory measured during rollout and over 250 billion live cache entries as the scale baseline. There is no evidence in the cluster of anyone outside Cloudflare adopting these patterns, no released library or crate, and no third-party confirmation, so uptake is production-grade at exactly one operator.
Slightly overstated framing on a solid technical core
The engineering substance is well matched to the claims, and the post volunteers its own methodological limits, which pushes the gap near zero. Mild overstatement remains in the presentation layer: headline figures are self-measured with no independent check, the '130 Gen 13 servers' equivalence dramatises freed RAM without cost context, per-entry sizes are given only as a percentage, and the 'over 15 terabytes' capacity-field saving is inconsistent with the post's own 64-bytes-per-entry arithmetic unless binary terabytes are assumed. Cluster framing that shrinking entries 'made inserts 43% faster' also compresses a benchmark correlation into a causal headline.
Vendor engineering-brand post about its own wins
The sole source is Cloudflare publishing a favourable result about infrastructure it owns and markets, on its own blog: it promotes 1.1.1.1, Gateway DNS and DNS Firewall by name, showcases engineering depth of the kind used for recruiting and platform credibility, and reports only successful outcomes with no failed variants, regressions or engineering-cost accounting. Mitigating factors are genuine: the mechanism is verifiable against public Rust semantics, and the post discloses benchmark limitations rather than presenting synthetic numbers as production truth.
Solid on mechanism, thin on corroboration
Confidence is high for the technical claims that can be checked against Rust's documented container behaviour and for the fact of a production rollout, and moderate for the quantitative outcomes, which come from a single interested party with no raw data, no external replication and an ambiguous unit convention on one figure. One publisher means no cross-source triangulation is possible within the cluster.