MetaBy Sidharth Bajaj, Venkatraghavan SrinivasanExplainer
Meta’s AI Storage Blueprint at Scale
Summary
Meta describes how its BLOB-storage architecture evolved to address AI workloads' storage bottlenecks, which can stall GPUs and slow research iteration as datasets and GPU deployments expand. Legacy requests traversed multiple stateful metadata layers, sometimes across regions, producing latencies of hundreds of milliseconds even when flash made millisecond access possible. The redesign consolidates metadata into a flat schema backed by ZippyDB for O(1) path resolution, removes the dataplane proxy in favor of a fat client SDK, and deploys regional BLOB-storage stacks beside GPUs. For data loading, Meta combines host memory and flash with regional flash and global HDD-backed storage as tiered caches, using ordinary and deep prefetch, on-demand hydration, and TTL or LRU eviction policies. Production rollout saw rapid adoption, while both data-loading paradigms remain supported.
Context
AI workloads require bursty, sustained throughput and predictable bounded latency, but the legacy BLOB-storage architecture used layered metadata services and global-by-default replication. Metadata lookups could cross regions and add hundreds of milliseconds, contributing to GPU stalls. Geo-distributed GPUs and massive datasets also made cross-region data ingestion a constraint on research iteration speed.
Approach / What changed
Meta unified metadata in a flat ZippyDB-backed schema, removed the dataplane proxy, and embedded a Tectonic BlockClient in a fat client SDK that streams directly from storage servers. Regional BLOB-storage stacks colocated with GPUs provide a flash-backed L3 cache, while host memory and flash serve as L1 and L2 caches. Dataloaders use regular and deep prefetch, on-demand hydration, metadata prewarming, and configurable TTL or LRU eviction.
Takeaways
The redesigned metadata subsystem maps paths to storage addresses with O(1) lookup per chunk, replacing lookups across the namelayer, volumeslayer, and containerlayer.
The fat client SDK streams bytes directly from Tectonic instead of using a dataplane proxy, supporting the goal of zero overhead on top of Tectonic while staying within the power budget.
The tiered data-loading model uses host memory, host flash, regional flash, and global HDD-backed storage, with prefetching and capacity- or quota-aware TTL and LRU eviction.
Source and freshness
- Source
- engineering.fb.com
- Published
- Added to Yomu
- Last updated
Summaries are generated from the original by a language model. Check the original before relying on it.
Keep reading
Related reading
The Good Stuff
Paid picks we use ourselves. Links carry a referral code — a subscription through one earns us a commission at no extra cost to you.
The best engineering reads, once a week
One useful email. Unsubscribe anytime.