Question on network and bandwidth utilization

Context:

  1. Going thru design a photo service app indicated in the PDF - https://www.docdroid.net/AjAdPyt/how-to-design-a-distributed-system-in-3-hours-google-sre-pdf.pdf
  2. Key scale – there are 1 million users that upload 50 photos each day. Each photo is 4MB.

Design element on which my query is based:

  1. I have an upload micro-service that will take the photos from the user, and then save it on back-end disks.

Dimensioning:

  1. Processing wise – Per day we have - 1 Million users * 50 Photos * 4 MB each * 2 Pipes (1 Pipe coming from user to the upload micro-service, and another pipe going from upload micro-service to back-end disks).
  2. Calculation comes to – 4000 * 10 ^ 12 bits / day.
  3. This is – 40 Giga bits per second.
  4. If I have a machine that does 1 Gbps on the NIC, and I have a network of 1Gbps, then I need 40 machines.

Query:

  1. Is my thinking of – You need 2 pipes, one for user to send phots to upload micro-service, and one for upload micro-service to back-end , correct?
  2. Also, would we ever run into situation where NIC speed is different from the network
    a. Example – NIC is 1Gbps, and network is 10Gbps?
Comments (2)