Capacity Estimation
Assume:
- DAU = 100 M users
- MAU = 2.5 B users
A. Throughput [requests per unit of time]
Throughput can be further divided into write-throughput and read-throughput.
So, Let's start with what all operations user can perform:
- Uploading Content [Write-Operation]
- Sreaming Content [Read-Operation]
A.1: Read-Throughput
Assume every user sees an average of 10 videoes per day.
Total Read operations per day = DAU * 10 = 100 M * 10 = 1 B read-request per day.
A.2 Write-Throughput
Assume 0.4 of users uploads content everyday.
Total Write operations per day = 0.4% of DAU = 0.4 * 100M/100 = 0.4M write requests per day
B. Storage [Bytes per unit of time]
Assume Average size of content is 600 Mb.
Average Content-Size = 600 Mb
Total Storage per day = Write-throughput * Average Content-Size
= 0.4M * 600 Mb
= 240 M Mb
= 240 Tb per day
Storage for 10 years = 240 Tb * 365 * 10
= 876000 Tb
= 876 Pb
C. Cache-Memory
Cache Memory is generally 1% of total storage per day
Cache-Memory = 1% of daily Storage = 0.01 * 240 Tb = 2.4Tb per day
D. Network Bandwidth
D.1: Ingress Traffic
Traffic coming into the system i.e. write traffic
Ingress = Write per second
= (Total Writing requests per second) * (Average Content size)
= (0.4M / 24/ 60/ 60) * (600 Mb)
= (4.6 requests/sec) * (600 Mb)
= 2.7 Gbps
D.2: Egress Traffic
Traffic going out of the system i.e. read traffic
Egress = read per second
= (Total read requests per second) * (Average Content size)
= (1B / 24/ 60/ 60) * (600 Mb)
= (11.57 K/sec) * (600 Mb)
= 6.9 Tbps