AI Infra Interviews logo
Networking, Interconnects & Storage / 10
mediumNewCrusoeMetaDatabricks

Parallel filesystem or object storage for training data? Make the call and explain the two-tier pattern most clusters end up with.

One gives you POSIX semantics and hundreds of gigabytes per second at a price per terabyte that hurts at petabyte scale. The other is cheap and durable and answers a first byte in tens of milliseconds. The cost arithmetic that makes most clusters run both, and the metadata limit that decides how you shard.

Updated Sep 2026 · Grounded in real AI infrastructure interview loops and written to a senior-engineer editorial bar, with every number worked and every diagram hand-built.

TL;DR: Object storage is durable, effectively unlimited, and costs on the order of $20 per terabyte-month, but its first-byte latency is tens of milliseconds and it has no POSIX semantics. A parallel filesystem gives POSIX and hundreds of gigabytes per second of aggregate throughput at roughly $100 to $200 per terabyte-month, and its practical limit is usually metadata operations rather than bandwidth: millions of small files will exhaust the metadata servers long before the data path saturates. Most clusters therefore run both. The object store is the durable source of truth holding every dataset, the parallel filesystem or local NVMe holds the working set for jobs currently running, and a copy step moves data between them. The design decisions that follow are shard size, which must be large enough to amortize object latency, and what lives in the hot tier, which is a capacity plan rather than a preference.

How to approach it

Compare on the three axes that decide it, which are cost per terabyte, latency and semantics, and give numbers on each. Then say what the parallel filesystem's real limit is, since candidates usually name bandwidth and the answer is metadata. Then describe the two-tier pattern as the conclusion rather than as a compromise, and finish with the two design decisions it forces.

A strong answer

A typical situation: a team puts a 15 trillion token dataset on a parallel filesystem as several hundred million small files, one document each. Throughput on a large sequential read is excellent. Training jobs stall anyway, because every epoch opens hundreds of millions of files and the metadata servers become the cluster's slowest component.

The comparison, on the axes that matter:

                       parallel filesystem            object storage
cost per TB-month      roughly $100 to $200           roughly $20
first-byte latency     under a millisecond            20 to 100 ms
aggregate throughput   100 to 500 GB/s for a cluster  scales with concurrency, effectively
                                                      unlimited for large sequential reads
semantics              POSIX: open, seek, partial      GET an object, PUT an object; no
                       write, rename, permissions      partial writes, no rename semantics
durability             replicated within the cluster   many nines, across failure domains
practical limit        metadata operations             per-request latency

worked cost, 5 PB of training data:
  object storage       5,000 TB x $20  =  $100,000 per month
  parallel filesystem  5,000 TB x $150 =  $750,000 per month
  difference           $650,000 per month, or $7.8M a year, for data that is mostly cold
sanity: this arithmetic is why nobody keeps a full dataset on the fast tier, and it is the
        entire argument for two tiers rather than a preference about interfaces

The metadata limit, which is the part that surprises people:

a parallel filesystem's metadata servers handle open, stat, create and lookup
capability: on the order of 100,000 to 500,000 metadata operations per second for a cluster
a dataset stored as one file per document, 300 million documents:
  one epoch = 300 million opens, plus stats and lookups
  at 200,000 ops/s that is 1,500 seconds of pure metadata work per epoch, during which the
  data path is mostly idle
the same data as 30,000 shards of 10,000 documents each:
  one epoch = 30,000 opens, 0.15 seconds of metadata work
sanity: a factor of 10,000 in metadata load for the same bytes. Shard size is the single
        most consequential storage decision a training pipeline makes, and it is usually
        made by whoever wrote the preprocessing script

Parallel Filesystems vs Object Storage covers both systems; the shard-size consequence is the same one that makes object storage usable at all, since a 20 to 100 millisecond first byte is only tolerable when amortized over a large object.

The two-tier pattern, which is where most clusters land:

rendering diagram…
tier 1, object storage      every dataset ever produced, all checkpoints past the recent few,
                            model artifacts. Cheap, durable, slow to first byte.
tier 2, fast local          the shards a running job needs, staged before or during the run.
                            Either a parallel filesystem shared across the cluster or NVMe on
                            each node with the shards it will read.
staging cost                30 TB of tokenized shards at 5 GB/s takes about 100 minutes, so it
                            is scheduled ahead of the job rather than at its start
what decides the tier size  concurrent jobs times their working sets, plus headroom, which is
                            a capacity plan rather than a guess

For pre-tokenized text the working set is often small enough that node-local NVMe is the whole answer and no shared filesystem is needed: 15 trillion tokens stored as uint16 is 30 TB, which fits across a modest cluster's local drives. That is worth saying because it is a cheaper design than the shared filesystem it replaces, and it removes a component that has its own failure modes.

Watching for the metadata limit is one number rather than an investigation. Every parallel filesystem exposes metadata operations per second at its metadata servers, and that counter climbing toward its ceiling while the data path sits at a fraction of its bandwidth is the exact signature of the small-file problem. Put it on the same dashboard as throughput, because a team watching only bandwidth will see an idle filesystem and a stalled job and have no way to connect them. Data Loading Pipelines for Training covers what the loader does with the shards once the layout is right.

The reversal condition: a shared parallel filesystem earns its cost when many jobs read overlapping data, when the working set is far larger than local storage, or when POSIX semantics are required by tooling that cannot be changed. It stops earning it when the pipeline has been reorganized into large sequential shards, because then object storage plus local NVMe delivers the same read pattern at a fraction of the cost. Teams often keep the filesystem because it predates the shard format, which is a reason to revisit rather than a reason to keep.

What interviewers probe next

  • "How large should a shard be?" Large enough that the object's first-byte latency is a small fraction of the time to read it: at 50 ms of latency and 1 GB/s per stream, a 1 GB shard spends 5% of its time waiting, and a 100 MB shard spends a third of it.
  • "How do you shuffle if the data is in large shards?" Shuffle at two levels: the order of shards, and a buffer of samples held in memory across several shards. That gives good mixing without random reads.
  • "What about checkpoints?" A different access pattern entirely, bursty writes rather than streaming reads, which is why checkpoints go to local NVMe first and then asynchronously to object storage.
  • "Does a caching layer change the answer?" A read-through cache in front of object storage gives much of the two-tier benefit with less operational surface, and it is a reasonable middle path when the working set is stable.

Common mistakes

  • Storing a dataset as one file per document, which turns a bandwidth problem into a metadata problem.
  • Keeping a full multi-petabyte dataset on the fast tier, at several times the cost of the cold tier.
  • Sizing the fast tier from the dataset rather than from the concurrent working set.
  • Assuming a parallel filesystem is required, when large sequential shards make object storage plus local NVMe equivalent and cheaper.

Key takeaways

  • Roughly $20 per terabyte-month against $100 to $200, which at 5 PB is $7.8M a year of difference.
  • Object storage answers a first byte in 20 to 100 ms, so shards must be large enough to amortize it.
  • A parallel filesystem's practical limit is metadata operations: 300 million small files is 1,500 seconds of metadata work per epoch against 0.15 seconds for 30,000 shards.
  • The usual answer is two tiers, with the object store as truth and a staged working set on the fast tier.
That one was free — and so are 10 answers per topic without an account. Signing in doubles that to 20, opens the Plus lessons in the courses, and remembers which topics you keep getting wrong.no card · Google sign-in · nothing to cancel
HOW DID IT GO?
0
READING SIGNED OUT

Signing in doubles your free answers, from 10 to 20 per topic, and the site starts remembering you: mastery per topic, bookmarks, and a next-focus recommendation. Free, no card.

Sign in free

The concepts behind this question

Ranked by how closely each one overlaps this question's topic, so the first card is the thing to read if the answer above moved too fast.

Core
🔌 Networking & StorageSign in
Parallel Filesystems vs Object StorageA training cluster's storage has two very different jobs: stream terabytes of training data to thousands of GPUs at a steady rate, and absorb a multi-terabyte checkpoint burst every few minutes. Parallel filesystems (Lustre, GPFS, WEKA, VAST, FSx) give POSIX semantics and hundreds of GB/s of aggregate throughput; object storage (S3 and its equivalents) gives durability and cost at a fraction of the price with high first-byte latency. Almost every real cluster uses both, and the interview question is which job goes where and how big each tier has to be.
Advanced
🔌 Networking & Storage🔒 Premium
Data Loading Pipelines for TrainingThe dataloader is the only part of a training job that runs on the CPU, the disk and the network at once, and it is the part most often found starving the GPUs. A pipeline that keeps 1,024 accelerators fed has to read sharded files sequentially, decode and tokenize in parallel workers, prefetch several batches ahead, pin memory for the PCIe copy, and do it deterministically enough to resume mid-epoch. The symptom of failure is a GPU at 30% utilization with nothing wrong on the GPU.
Foundational
🧮 Open Weights & Serving Engines
Capacity Planning for Open-Weights FleetsPlanning a fleet for a sparse open-weights model works differently from planning one for a dense model, because memory follows total parameters and throughput follows active parameters, and those now differ by more than twenty times. The sizing goes in one direction only: from a traffic forecast to tokens per second, to replicas at a measured operating point, to GPUs, to racks and kilowatts. Doing it in the other direction, from an available GPU count, produces a fleet that fits the hardware rather than the demand.
Foundational
🧭 Ownership & Judgment
Talking About Cost and Capacity with LeadershipInfrastructure engineers are asked to justify large numbers to people who do not share their vocabulary, and the conversations go wrong in predictable ways: a technical objection with no alternative, a forecast with no assumptions, or a cost quoted in a unit the listener cannot act on. What works is a small number of costed options, a stated recommendation, the decision needed by a date, and every figure expressed in whatever the listener actually controls.
UP NEXT ON YOUR JOURNEY
FEDITOR'S NOTE

Scored on the cost-per-terabyte and latency comparison with numbers, on the two-tier pattern as the usual answer, and on naming metadata operations rather than throughput as the parallel filesystem's real limit.

DISCUSSION · 0

No comments yet — be the first to share your approach.