SysPad › Examples › S3-like object storage
S3-like object storage
An Object API separates Metadata Store lookups from a Placement Service that routes bytes to replicated data nodes (S3 itself stands in for that layer), plus a background compaction job.
Metadata/placement/data-node separation - the same three-layer split S3 itself uses internally.
- Throughput: 5,000 req/sec
- First to saturate: Nothing at this load
- Estimated cost: $57k/mo
How it works
- Metadata Store
- Bucket/object/version bookkeeping only - tiny records, never the bytes. Separating it from the data path is what lets a metadata lookup stay fast while the object itself is potentially gigabytes.
- Placement Service
- Decides which data nodes hold a given object (consistent hashing, embedded here rather than a separate component) and routes the bytes there. The metadata store never sees the payload.
- Compaction / GC
- Background reclaim of space from deleted/overwritten versions. Runs on a schedule, not on the request path - a client PUT should never wait on compaction.
Request flows
PUT an object
- Client
- Object API
- Metadata Store
- Placement Service
- Data Nodes
GET an object
- Client
- Object API
- Metadata Store
- Placement Service
- Data Nodes
Scheduled compaction
- Compaction Schedule
- Compaction / GC
- Data Nodes