Cockroach Labs Estate economics What idle nodes, provisioned bytes and peak-sized bills cost, worked out from your estate.

Estate summary

  1. Nodes 30 baseline
  2. Avg CPU utilization 15.0% idle hardware
  3. Storage provisioned 600 GB 100 GB of data
  4. Est. monthly saving 0%

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.

Cold tier Tier 80% of data as cold

Cold tiering needs Plenum: block storage on the node has no colder place to keep a byte.

Capacity provisioned to hold 100 GB of dataBlock storage on each node600 GB on disk3 copies of the datafree space, bought and idle6xPlenum600 GB on disk + 100 GB in object storage3 copies of the datain S3free space, not on the bill7xbilled: the 400 GB on disk, not the 700 GB of capacity holding themCapacity provisioned per byte of dataBlock storage on each node provisions 6 bytes of capacity per byte of data, all of it on disk. Plenum provisions 7, of which 1 is a copy in object storage. Billed as used, 4 of those 7 bytes reach the bill: the copies on disk and the object storage backstop, but not the free space.
Block storage on each noden1n2n3diskdiskdiskThe bytes belong to the node:add, drain or lose one and they move.Plenumn1n2n3PlenumS3 backstop copyThe bytes belong to the layer:a node attaches to a store, then lets go.Where the bytes live under each storage modelWith Block storage on each node, each node owns the disk holding its store, so scaling and failure both copy data. With Plenum, the stores sit in a shared layer with a copy in object storage, and a node attaches to a store rather than holding it.

10 clusters x 10 GB = 100 GB of logical data becomes 600 GB of provisioned capacity.

StepWorkingResult
Logical data10 clusters x 10 GB100 GB
Provisioned capacity100 GB x 6 bytes on disk per logical byte600 GB
Metered as provisionedreserved capacity, billed used or not600 GB
Storage billevery one of the 600 GB is on it100%

3 Raft copies at 50% utilization (3/0.5 = 6), on top of the block store's own internal replication.

What reaches the bill

Block storage is provisioned: you size a disk and you pay for the disk. It isn't a setting alongside the layer, which is why switching to Plenum changes both at once.

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
  1. 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.
  2. Local NVMe instead of network block storage. Reserved EC2 discounts run around 50%, EBS around 25%. Instance-local NVMe takes the better rate.
  3. Storage utilization. Provisioning storage independently of compute: about 50% to about 75%.
  4. Compute auto-scaling. Stateless KV nodes come and go freely: 10-15% average CPU to 30-45%.