NVMe Storage

NVMe vs Object Storage: Block vs S3

NVMe block storage and S3-compatible object storage are not competing technologies — they solve fundamentally different problems. NVMe provides a raw device interface for the OS to format and mount; object storage provides an HTTP key-value API for arbitrary-size blobs. Using the wrong type for your workload leads to either severe performance problems or runaway cost.

Quick Verdict

NVMe vs Object Storage: Key Differences

Attribute NVMe Block Storage Object Storage (S3)
API / Interface Block device (/dev/nvme0n1) HTTP REST (GET/PUT/DELETE)
Latency (read) 10–40µs 1–100ms (first byte)
Random 4K IOPS 500K–7M ~100–1,000 (request-based)
Consistency model Strong (block-level atomic) Eventual (S3) or strong read-after-write (AWS S3 2021+)
Partial update (4K) Yes (block I/O) No — must re-upload entire object
Mount as filesystem Yes (ext4, xfs, etc.) No (FUSE mounts exist but are slow)
Max object/volume size Up to 64TB per volume 5TB per object (AWS S3); unlimited total
Cost (hot tier) $0.10–$0.20/GB/month (cloud) $0.02–$0.025/GB/month (S3 Standard)
Scalability Manual volume provisioning; NVMe-oF pools scale horizontally Virtually unlimited; auto-scales
Concurrent writers One mount point (shared via POSIX or NVMe-oF) Unlimited concurrent clients

Why Databases Cannot Use Object Storage

Relational databases (PostgreSQL, MySQL, SQLite) require three things that object storage cannot provide:

  1. Partial updates — a database modifies 8KB pages inside a file. Object storage has no way to update 8KB inside a 1GB object without re-uploading it.
  2. Strong consistency — after a write commits, any read must see the new value immediately. Eventual consistency models cause data corruption under concurrent load.
  3. Sub-millisecond latency — even a 1ms read latency means a query touching 1,000 rows takes at least 1 second in I/O alone.

Some databases (CockroachDB, TiDB, Neon) use object storage as a write-ahead log or remote REDO log — not as the primary data path. The hot path still goes through local or NVMe-oF block storage.

Object Storage Strengths

Object storage wins decisively for use cases where data is written once and read sequentially as a whole object:

Tiered Architecture: NVMe + Object Storage Together

Modern cloud-native architectures use both storage types in a tiered model:

# Typical AI/ML pipeline storage tiers
Hot (training run active data): NVMe-oF block → 25–40µs latency
Warm (recent checkpoints): NVMe local SSD → 10–20µs latency
Cold (datasets, archives): S3 object → 1–50ms latency

The storage tiering decision is driven by access frequency and latency requirements, not by storage capacity alone. See the disaggregated storage glossary entry for more on shared NVMe-oF pool architectures.

More Comparisons