Step 3 of 8 - Storage
Pay for bytes, not boxes
One change drives the next three pages: the persistent state stops living on the node.
1 cluster x 10 GB = 10 GB of logical data becomes 60 GB of provisioned capacity, plus 10 GB held in object storage.
| Step | Working | Result |
|---|---|---|
| Logical data | 1 cluster x 10 GB | 10 GB |
| Provisioned capacity | 10 GB x 6 bytes on disk per logical byte | 60 GB |
| Backstop in object storage | 10 GB x 1 copy | 10 GB |
| Metered as used | 10 GB x 4 copies on disk per logical byte | 40 GB |
| Not billed | capacity the estate holds and nobody pays for: 30 GB of 70 GB | 30 GB |
| Storage bill | every one of the 40 GB bills at the one rate | 100% |
3 shared copies at 50% utilization (3/0.5 = 6), plus 1 copy in S3. Consolidate to lift utilization to 75%. Billed as used: the 40 GB on disk, not the 70 GB of capacity holding them.
What reaches the bill
Plenum bills what you hold: what reaches the bill is bytes the estate is actually holding, and the 30 GB of capacity that isn't holding any doesn't. The capacity is unchanged - what's changed is who carries the idle part of it.
Metered by the hour, not by the month: the figure above is a month of holding this much, and a volume that arrives halfway through the month is charged for half of it. Each window is reduced to its lowest reading, so compaction and rebalancing don't land on the bill.
You won't see a storage estimate for Plenum in the console: usage-based bytes aren't known when a cluster is sized, so what's quoted there is compute and storage arrives on the invoice. The storage figures here are this demo's model of what the meter would read.
Single region, and not on a Private Host Cluster: a host provisions the capacity its virtual clusters draw from, so the host itself isn't a Plenum cluster. Metered but not charged while it's in preview.
The ratio is the point, not the size: the volume is the one you described on the front page, and every figure on the following pages follows it, including what a rebalance moves and what a dead node has to re-read.
Where the saving actually comes from
- Double replication eliminated. Hard links let all Raft replicas of a range share one copy, so Raft's 3x stops stacking on the storage layer's own replication. Plenum still replicates across zones.
- Local NVMe instead of network block storage. Reserved EC2 discounts run around 50%, EBS around 25%. Instance-local NVMe takes the better rate.
- Storage utilization. Provisioning storage independently of compute: about 50% to about 75%.
- Compute auto-scaling. Stateless KV nodes come and go freely: 10-15% average CPU to 30-45%.
On a used meter the third of these has already happened as far as the bill is concerned: lifting utilization fills capacity nobody was charged for, so it improves what the estate costs to run rather than what it costs to buy.