Some quick numbers:
- Read sequentially from main memory: 4 GB/s (1Mb needs 0.25 ms)
- Read sequentially from SSD: 1 GB/s (1Mb needs 1 ms)
- Read sequentially from 1 Gbps Ethernet: 100 MB/s (1Mb needs 10 ms)
- Read sequentially from disk: 30 MB/s (1Mb needs 30 ms)
main memory 4x > SSD
SSD 10x > 1 Gbps Ethernet
1 Gbps Ethernet 3 > disk
more statistics:
- 6-7 world-wide round trips per second
- 2,000 round trips per second within a data center
- 1 RPS = 2.5 million requests per month
- 40 RPS = 100 million requests per month
- 400 RPS = 1 billion requests per month
Here is a detailed table:
1 | Latency Comparison Numbers |
Powers of two table
1 | Power Exact Value Approx Value Bytes |
Example Calculations
For example, if we are designing a financial transaction system, we need to calculate the data size of transactions:
Size per transaction:
- user_id - 8 bytes
- created_at - 5 bytes
- seller - 32 bytes
- amount - 5 bytes
Total: ~50 bytes/transaction
If the system has 5 billion transactions each month, the new transaction data size will be:
250 GB/month = 50 bytes * 5 billion /month, which will be
9 TB of new transaction content in 3 years
Assume most are new transactions instead of updates to existing ones, then we have:
2,000 transactions per second on average
200 read requests per second on average