01 · 2/6

The Latency Numbers Worth Knowing by Heart

Memory, SSD, network, cross-region: the ratios between them decide most designs. The numbers worth memorizing, and the two comparisons that matter.

6 min readAug 22, 20262 figures

The previous lesson turned a product description into a volume of work. This one turns volume into time, because every design argument eventually reduces to the same question: how long does this operation take, and what else could you have done instead?

The famous version of this list is Jeff Dean's, circulated for two decades and reprinted in Peter Norvig's Teach Yourself Programming in Ten Years. The absolute figures have moved since: SSDs got faster, memory got cheaper, networks got better. The ratios have barely moved at all, and the ratios are the part you use.

The ladder

Latency ladder drawn as bars: L1 cache 1 nanosecond, main memory 100 nanoseconds, SSD random read 100 microseconds, same-datacenter round trip 500 microseconds, disk seek 10 milliseconds, and a US to Europe round trip at 150 milliseconds, each annotated with its human-scale equivalent from one second to five years.

Each step down is roughly two orders of magnitude. That spacing, not the exact numbers, is what you are memorizing.
OperationTimeIn human terms
L1 cache reference~1 ns1 second
Main memory reference~100 ns1.5 minutes
Read 1 MB sequentially from memory~10 µs3 hours
SSD random read~100 µs1 day
Round trip within a datacenter~500 µs6 days
Read 1 MB sequentially from SSD~1 ms2 weeks
Disk seek (spinning)~10 ms4 months
Round trip, one coast to the other~70 ms2 years
Round trip, US to Europe~150 ms5 years

The right-hand column is the trick that makes the ladder stick: scale one nanosecond up to one second and read the rest as human durations. A memory access is a minute and a half. A cross-continent request is two years. When someone proposes a design that makes four sequential cross-region calls, they are proposing eight years of waiting, and the human scale makes that obvious in a way "280ms" does not.

Two comparisons that decide arguments

You almost never need the whole ladder. You need two comparisons.

A network hop versus a local read. A same-datacenter round trip is roughly 500µs against 100ns for memory, so one call to a service that reads one row costs about 5,000 memory accesses, nearly all of it network rather than work. That is why N+1 queries are fatal: a hundred round trips to do what one could have batched.

A cache hit versus a cross-region call. Microseconds against 70 to 150ms, a factor of a thousand. That ratio is why read-heavy systems get a cache before a bigger database, and why one misplaced cross-region dependency dominates an otherwise local request.

Sequential beats random, at every layer

The ladder has a second axis. At every level of storage, reading data that sits next to other data is dramatically cheaper than jumping around.

Sequential access

  • Memory: prefetchers see the pattern and stay ahead of you
  • SSD: large reads amortize the per-operation overhead
  • Disk: no seek, so throughput is 100x random
  • Database: one index range scan, one set of pages

Random access

  • Memory: a cache miss per access, so 100ns each
  • SSD: per-operation cost dominates, IOPS becomes the limit
  • Disk: a seek per read, roughly 10ms each
  • Database: index lookup plus a heap fetch per row

This is why an array of structs beats a linked list of pointers, why a covering index beats an index plus heap fetches, and why a batched write of 5,000 rows beats 5,000 writes. Same total bytes, different access pattern, order-of-magnitude different time. It is also why random UUID primary keys cost more than they look: they convert sequential inserts into random ones.

The numbers that changed, and the ones that did not

Being honest about which figures age matters, because quoting a 2010 number as current is a credibility problem in a design review.

Moved a lot: spinning disks left the serving path, so the 10ms seek is now a cold-storage story, and NVMe random reads are closer to 20 to 100µs.

Barely moved: memory latency has been flat near 100ns for fifteen years, same-datacenter round trips are still hundreds of microseconds (kernel, driver and switch hops, not link speed), and cross-region latency is set by geography.

That last group is the useful one. A design whose cost is dominated by memory latency, network round trips, or distance will not be rescued by newer hardware. A design whose cost is disk throughput often will.

Where these numbers enter a design

How many round trips a request may make is usually the largest single lever you have on latency.

Ten internal calls at 20 milliseconds each drawn twice against a 200 millisecond budget line: sequentially they tile end to end and exactly consume the budget, while in parallel they overlap and finish at the slowest call, about 20 milliseconds.

Sequential hops add up; parallel hops cost the slowest one. Same ten calls, same dependencies, one design fits the budget and the other does not.

Where data lives is the second one. A 150ms cross-region read cannot be hidden by anything except a local copy: a replica, a cache, or a CDN. All three introduce staleness, so "how close" and "how fresh" are one trade in two phrasings.

Whether a number is plausible is the third. An endpoint reporting 4ms while making two database queries and an HTTP call is either wrong or cached. The ladder is a lie detector for telemetry.

The one thing it will not tell you is what your users experience, because the ladder describes typical operations and users live in the tail. A p50 of 8ms and a p99 of 2 seconds is a normal, common, and terrible outcome, and that is the next lesson.

Key takeaways

  • Memorize the ladder as ratios, not absolutes: each step is roughly two orders of magnitude, and the ratios outlive the hardware.
  • Scale 1ns to 1 second when you need intuition. A cross-Atlantic round trip is five years.
  • Two comparisons carry most arguments: a network hop costs about 5,000 memory reads, and a cache hit is about 1,000 times cheaper than a cross-region call.
  • Sequential access beats random access at every layer, which is one fact behind batching, covering indexes, and sequential keys.
  • Distance and memory latency do not improve with newer hardware. Disk throughput does.
  • In a design review, count round trips and note which are sequential. That is usually the biggest lever you have.

Checkpoint · lesson 2 of 6

You can now:

  • Recall the latency ladder from L1 cache to a cross-region round trip
  • Reason in ratios, so the numbers stay useful as hardware improves
  • Spot the two comparisons that decide most architecture arguments