| Power | Exact Value | Approx Value | Bytes |
|---|---|---|---|
| 7 | 128 | 1/2 | |
| 8 | 256 | 1 | |
| 10 | 1024 | 1 thousand | 1 KB |
| 16 | 65,536 | 64 KB | |
| 20 | 1,048,576 | 1 million | 1 MB |
| 30 | 1,073,741,824 | 1 billion | 1 GB |
| 32 | 4,294,967,296 | 4 GB | |
| 40 | 1,099,511,627,776 | 1 trillion | 1 TB |
| Action | Latency | Notes |
|---|---|---|
| L1 cache reference | 0.5 ns | |
| Branch mispredict | 5 ns | |
| L2 cache reference | 7 ns | 14x L1 cache |
| Mutex lock/unlock | 25 ns | |
| Main memory reference | 100 ns | 20x L2 cache, 200x L1 cache |
| Compress 1K bytes with Zippy | 10^5 ns 10 us | |
| Send 1 KB bytes over 1 Gbps network | 10^5 ns 10 us | |
| Read 4 KB randomly from SSD | 1.5*10^5 ns 150 us | ~1GB/sec SSD |
| Read 1 MB sequentially from memory | 2.5*10^5 ns 250 us | |
| Round trip within same datacenter | 5*10^5 ns 500 us | |
| Read 1 MB sequentially from SSD | 10^6 ns 10^3 us 1 ms | ~1GB/sec SSD, 4X memory |
| HDD seek | 10^7 ns 10^4 us 10 ms | 20x datacenter roundtrip |
| Read 1 MB sequentially from 1 Gbps | 10^7 ns 10^4 us 10 ms | 40x memory, 10X SSD |
| Read 1 MB sequentially from HDD | 3 * 10^7 ns 3*10^4 us 30 ms | 120x memory, 30X SSD |
| Send packet CA->Netherlands->CA | 1.5 * 10^8 ns 1.5*10^5 us 150 ms |
| Time | Exponent |
|---|---|
| 1ns | 10^-9 seconds |
| 1us | 10^-6 seconds = 1,000 ns |
| 1 ms | 10^-3 seconds = 1,000 us = 1,000,000 ns |
| Count | Document | Picture (SD) | Picture (HD) Video (LQ)/min | Video (NQ)/min | Video (HD)/min |
|---|---|---|---|---|---|
| 1 | 5 KB | 250 KB | 1 MB | 5 MB | 50 MB |
| 1K | 5 MB | 250 MB | 1 GB | 5 GB | 50 GB |
| 1M | 5 GB | 250 GB | 1 TB | 5 TB | 50 TB |
| 1B | 5 TB | 250 TB | 1 PB | 5 PB | 50 PB |
| 1T | 5 PB | 250 PB | 1 EB | 5 EB | 50 EB |
| Memory | CPU | RAM | SSD | Disk/BLOB/Network |
|---|---|---|---|---|
| 1 GB | $10 | $1 | $0.10 | $0.01 |
| 1 TB | $10k | $1K | $100 | $10 |
| 1 PB | $10M | $1M | $100k | $10k |
| 1 EB | $10B | $1B | $100M | $10M |
| Time | Exact | Approx |
|---|---|---|
| Hour | 3600 | 10^3 |
| Day | 86400 | 10^5 |
| Month | 2592000 | 10^6 |
| What | Compression |
|---|---|
| HTML | 2-3x |
| English | 2-4x |
| Source Code | 2-4x |
| Executables | 2-3x |
| RPC | 5-10x |
| Operation | Latency | Throughput | 1 MiB | 1 GiB |
|---|---|---|---|---|
| Sequential Memory R/W (64 bytes) | 5 ns | 10 GiB/s | 100 μs | 100 ms |
| Hashing, not crypto-safe (64 bytes) | 25 ns | 2 GiB/s | 500 μs | 500 ms |
| Random Memory R/W (64 bytes) | 50 ns | 1 GiB/s | 1 ms | 1 s |
Fast Serialization [8] [9] † |
N/A | 1 GiB/s | 1 ms | 1s |
Fast Deserialization [8] [9] † |
N/A | 1 GiB/s | 1 ms | 1s |
| System Call | 500 ns | N/A | N/A | N/A |
| Hashing, crypto-safe (64 bytes) | 500 ns | 200 MiB/s | 10 ms | 10s |
| Sequential SSD read (8 KiB) | 1 μs | 4 GiB/s | 200 μs | 200 ms |
Context Switch [1] [2] |
10 μs | N/A | N/A | N/A |
| Sequential SSD write, -fsync (8KiB) | 10 μs | 1 GiB/s | 1 ms | 1 s |
| TCP Echo Server (32 KiB) | 10 μs | 4 GiB/s | 200 μs | 200 ms |
| Sequential SSD write, +fsync (8KiB) | 1 ms | 10 MiB/s | 100 ms | 2 min |
| Sorting (64-bit integers) | N/A | 200 MiB/s | 5 ms | 5 s |
| Random SSD Seek (8 KiB) | 100 μs | 70 MiB/s | 15 ms | 15 s |
Compression [3] |
N/A | 100 MiB/s | 10 ms | 10s |
Decompression [3] |
N/A | 200 MiB/s | 5 ms | 5s |
Serialization [8] [9] † |
N/A | 100 MiB/s | 10 ms | 10s |
Deserialization [8] [9] † |
N/A | 100 MiB/s | 10 ms | 10s |
| Proxy: Envoy/ProxySQL/Nginx/HAProxy | 50 μs | ? | ? | ? |
Network within same region [6] |
250 μs | 100 MiB/s | 10 ms | 10s |
| {MySQL, Memcached, Redis, ..} Query | 500 μs | ? | ? | ? |
| Random HDD Seek (8 KiB) | 10 ms | 70 MiB/s | 15 ms | 15 s |
Network between regions [6] |
[Varies][i] | 25 MiB/s | 40 ms | 40s |
| Network NA East <-> West | 60 ms | 25 MiB/s | 40 ms | 40s |
| Network EU West <-> NA East | 80 ms | 25 MiB/s | 40 ms | 40s |
| Network NA West <-> Singapore | 180 ms | 25 MiB/s | 40 ms | 40s |
| Network EU West <-> Singapore | 160 ms | 25 MiB/s | 40 ms | 40s |