Design a 200-Terabyte Media Migration and Training Input Pipeline

Quick Overview

Design a one-time transfer of 200 TB of images and videos from an on-premises environment to a cloud GPU training cluster. Connect data and model choices to serving architecture, latency and throughput, evaluation, monitoring, failure modes, and iteration.

Design a 200-Terabyte Media Migration and Training Input Pipeline

Company: Apple

Role: Software Engineer

Category: ML System Design

Difficulty: hard

Interview Round: Technical Screen

# Design a 200-Terabyte Media Migration and Training Input Pipeline Design a one-time transfer of 200 TB of images and videos from an on-premises environment to a cloud GPU training cluster. The data may consist of many small files. The transfer may use a 1, 10, or 100 Gbps path, and the deadline is measured in days. First choose between network transfer and physical transfer using quantitative estimates. Then design the cloud landing and GPU input path. ### Constraints & Assumptions - Use 200 TB = 1.6 million gigabits for idealized bandwidth arithmetic. - Real transfer throughput should include a stated efficiency factor rather than assume perfect line rate. - The compute cluster must not use one machine's local disk as the durable source of truth. - Integrity, encryption, resumability, and bounded impact on production networking are required. ### Clarifying Questions to Ask - Is the transfer one-time or recurring, and what is the exact completion deadline? - Where are the source and cloud region, and is a private link already available? - How many files exist, what are their size distribution and codecs, and which preprocessing is required? ### Part 1 — Choose and Execute the Migration Estimate ideal and realistic transfer times at the supplied link speeds. Select a network or physical-transfer plan, including partitioning, parallelism, resumability, checksums, and security. #### What This Part Should Cover - Correct unit conversion and a decision tied to the measured deadline and available bandwidth. - Object storage as a landing zone, multipart transfer, manifests, checksums, retries, and final reconciliation. ### Part 2 — Feed the GPU Training Cluster Design how data moves from object storage through preprocessing into repeated training reads without starving GPUs. #### What This Part Should Cover - Offline validation and preprocessing, large training shards, streaming reads, prefetch, and multiple data-loader workers. - Bottleneck measurement across network, object-store request rate, CPU decode, and GPU compute. ```hint Calculate before choosing Divide total bits by link bits per second, then account for efficiency and compare with physical-device logistics. ``` ```hint Avoid tiny-file training reads Package validated examples into bounded sequential shards so workers amortize metadata and request overhead. ``` ### What a Strong Answer Covers - A quantitative migration choice, durable decoupling through object storage, end-to-end integrity, and an input pipeline whose throughput is measured rather than assumed. - Clear separation between the one-time migration path and any future recurring ingestion path. ### Follow-up Questions - How would the design change for a daily incremental feed after the initial migration? - How would you recover if checksums show that one percent of uploaded objects are missing or corrupt?

Quick Answer: Design a one-time transfer of 200 TB of images and videos from an on-premises environment to a cloud GPU training cluster. Connect data and model choices to serving architecture, latency and throughput, evaluation, monitoring, failure modes, and iteration.

|Home/ML System Design/Apple
Apple logo
Apple
Aug 10, 2026, 12:00 AM
hardSoftware EngineerTechnical ScreenML System Design
0
0

Design a 200-Terabyte Media Migration and Training Input Pipeline

Design a one-time transfer of 200 TB of images and videos from an on-premises environment to a cloud GPU training cluster. The data may consist of many small files. The transfer may use a 1, 10, or 100 Gbps path, and the deadline is measured in days. First choose between network transfer and physical transfer using quantitative estimates. Then design the cloud landing and GPU input path.

Constraints & Assumptions

  • Use 200 TB = 1.6 million gigabits for idealized bandwidth arithmetic.
  • Real transfer throughput should include a stated efficiency factor rather than assume perfect line rate.
  • The compute cluster must not use one machine's local disk as the durable source of truth.
  • Integrity, encryption, resumability, and bounded impact on production networking are required.

Clarifying Questions to Ask Guidance

  • Is the transfer one-time or recurring, and what is the exact completion deadline?
  • Where are the source and cloud region, and is a private link already available?
  • How many files exist, what are their size distribution and codecs, and which preprocessing is required?

Part 1 — Choose and Execute the Migration

Estimate ideal and realistic transfer times at the supplied link speeds. Select a network or physical-transfer plan, including partitioning, parallelism, resumability, checksums, and security.

What This Part Should Cover Guidance

  • Correct unit conversion and a decision tied to the measured deadline and available bandwidth.
  • Object storage as a landing zone, multipart transfer, manifests, checksums, retries, and final reconciliation.

Part 2 — Feed the GPU Training Cluster

Design how data moves from object storage through preprocessing into repeated training reads without starving GPUs.

What This Part Should Cover Guidance

  • Offline validation and preprocessing, large training shards, streaming reads, prefetch, and multiple data-loader workers.
  • Bottleneck measurement across network, object-store request rate, CPU decode, and GPU compute.

What a Strong Answer Covers Guidance

  • A quantitative migration choice, durable decoupling through object storage, end-to-end integrity, and an input pipeline whose throughput is measured rather than assumed.
  • Clear separation between the one-time migration path and any future recurring ingestion path.

Follow-up Questions Guidance

  • How would the design change for a daily incremental feed after the initial migration?
  • How would you recover if checksums show that one percent of uploaded objects are missing or corrupt?

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...