Snapshot expiration: history costs space
How much storage does retained history cost, and why does compaction raise it?
Retained history is every file that was ever superseded and is still inside the retention window. If a fraction f of the table is rewritten per day and retention is R days:
RelationshipWhat retained snapshots cost →
- share of the table rewritten per day
- days of snapshots kept
light rewriting (5%/day)aggressive compaction (30%/day)
Data table
| Retention R (days) | series | Storage ÷ table size |
|---|---|---|
| 0 | light rewriting (5%/day) | 1× |
| 0.375 | light rewriting (5%/day) | 1.02× |
| 0.75 | light rewriting (5%/day) | 1.04× |
| 1.13 | light rewriting (5%/day) | 1.06× |
| 1.5 | light rewriting (5%/day) | 1.07× |
| 1.88 | light rewriting (5%/day) | 1.09× |
| 2.25 | light rewriting (5%/day) | 1.11× |
| 2.63 | light rewriting (5%/day) | 1.13× |
| 3 | light rewriting (5%/day) | 1.15× |
| 3.38 | light rewriting (5%/day) | 1.17× |
| 3.75 | light rewriting (5%/day) | 1.19× |
| 4.13 | light rewriting (5%/day) | 1.21× |
| 4.5 | light rewriting (5%/day) | 1.23× |
| 4.88 | light rewriting (5%/day) | 1.24× |
| 5.25 | light rewriting (5%/day) | 1.26× |
| 5.63 | light rewriting (5%/day) | 1.28× |
| 6 | light rewriting (5%/day) | 1.3× |
| 6.38 | light rewriting (5%/day) | 1.32× |
| 6.75 | light rewriting (5%/day) | 1.34× |
| 7.13 | light rewriting (5%/day) | 1.36× |
| 7.5 | light rewriting (5%/day) | 1.38× |
| 7.88 | light rewriting (5%/day) | 1.39× |
| 8.25 | light rewriting (5%/day) | 1.41× |
| 8.63 | light rewriting (5%/day) | 1.43× |
| 9 | light rewriting (5%/day) | 1.45× |
| 9.38 | light rewriting (5%/day) | 1.47× |
| 9.75 | light rewriting (5%/day) | 1.49× |
| 10.1 | light rewriting (5%/day) | 1.51× |
| 10.5 | light rewriting (5%/day) | 1.52× |
| 10.9 | light rewriting (5%/day) | 1.54× |
| 11.3 | light rewriting (5%/day) | 1.56× |
| 11.6 | light rewriting (5%/day) | 1.58× |
| 12 | light rewriting (5%/day) | 1.6× |
| 12.4 | light rewriting (5%/day) | 1.62× |
| 12.8 | light rewriting (5%/day) | 1.64× |
| 13.1 | light rewriting (5%/day) | 1.66× |
| 13.5 | light rewriting (5%/day) | 1.68× |
| 13.9 | light rewriting (5%/day) | 1.69× |
| 14.3 | light rewriting (5%/day) | 1.71× |
| 14.6 | light rewriting (5%/day) | 1.73× |
| 15 | light rewriting (5%/day) | 1.75× |
| 15.4 | light rewriting (5%/day) | 1.77× |
| 15.8 | light rewriting (5%/day) | 1.79× |
| 16.1 | light rewriting (5%/day) | 1.81× |
| 16.5 | light rewriting (5%/day) | 1.83× |
| 16.9 | light rewriting (5%/day) | 1.84× |
| 17.3 | light rewriting (5%/day) | 1.86× |
| 17.6 | light rewriting (5%/day) | 1.88× |
| 18 | light rewriting (5%/day) | 1.9× |
| 18.4 | light rewriting (5%/day) | 1.92× |
| 18.8 | light rewriting (5%/day) | 1.94× |
| 19.1 | light rewriting (5%/day) | 1.96× |
| 19.5 | light rewriting (5%/day) | 1.98× |
| 19.9 | light rewriting (5%/day) | 1.99× |
| 20.3 | light rewriting (5%/day) | 2.01× |
| 20.6 | light rewriting (5%/day) | 2.03× |
| 21 | light rewriting (5%/day) | 2.05× |
| 21.4 | light rewriting (5%/day) | 2.07× |
| 21.8 | light rewriting (5%/day) | 2.09× |
| 22.1 | light rewriting (5%/day) | 2.11× |
| 22.5 | light rewriting (5%/day) | 2.13× |
| 22.9 | light rewriting (5%/day) | 2.14× |
| 23.3 | light rewriting (5%/day) | 2.16× |
| 23.6 | light rewriting (5%/day) | 2.18× |
| 24 | light rewriting (5%/day) | 2.2× |
| 24.4 | light rewriting (5%/day) | 2.22× |
| 24.8 | light rewriting (5%/day) | 2.24× |
| 25.1 | light rewriting (5%/day) | 2.26× |
| 25.5 | light rewriting (5%/day) | 2.28× |
| 25.9 | light rewriting (5%/day) | 2.29× |
| 26.3 | light rewriting (5%/day) | 2.31× |
| 26.6 | light rewriting (5%/day) | 2.33× |
| 27 | light rewriting (5%/day) | 2.35× |
| 27.4 | light rewriting (5%/day) | 2.37× |
| 27.8 | light rewriting (5%/day) | 2.39× |
| 28.1 | light rewriting (5%/day) | 2.41× |
| 28.5 | light rewriting (5%/day) | 2.42× |
| 28.9 | light rewriting (5%/day) | 2.44× |
| 29.3 | light rewriting (5%/day) | 2.46× |
| 29.6 | light rewriting (5%/day) | 2.48× |
| 30 | light rewriting (5%/day) | 2.5× |
| 0 | aggressive compaction (30%/day) | 1× |
| 0.375 | aggressive compaction (30%/day) | 1.11× |
| 0.75 | aggressive compaction (30%/day) | 1.23× |
| 1.13 | aggressive compaction (30%/day) | 1.34× |
| 1.5 | aggressive compaction (30%/day) | 1.45× |
| 1.88 | aggressive compaction (30%/day) | 1.56× |
| 2.25 | aggressive compaction (30%/day) | 1.67× |
| 2.63 | aggressive compaction (30%/day) | 1.79× |
| 3 | aggressive compaction (30%/day) | 1.9× |
| 3.38 | aggressive compaction (30%/day) | 2.01× |
| 3.75 | aggressive compaction (30%/day) | 2.13× |
| 4.13 | aggressive compaction (30%/day) | 2.24× |
| 4.5 | aggressive compaction (30%/day) | 2.35× |
| 4.88 | aggressive compaction (30%/day) | 2.46× |
| 5.25 | aggressive compaction (30%/day) | 2.58× |
| 5.63 | aggressive compaction (30%/day) | 2.69× |
| 6 | aggressive compaction (30%/day) | 2.8× |
| 6.38 | aggressive compaction (30%/day) | 2.91× |
| 6.75 | aggressive compaction (30%/day) | 3.02× |
| 7.13 | aggressive compaction (30%/day) | 3.14× |
| 7.5 | aggressive compaction (30%/day) | 3.25× |
| 7.88 | aggressive compaction (30%/day) | 3.36× |
| 8.25 | aggressive compaction (30%/day) | 3.48× |
| 8.63 | aggressive compaction (30%/day) | 3.59× |
| 9 | aggressive compaction (30%/day) | 3.7× |
| 9.38 | aggressive compaction (30%/day) | 3.81× |
| 9.75 | aggressive compaction (30%/day) | 3.92× |
| 10.1 | aggressive compaction (30%/day) | 4.04× |
| 10.5 | aggressive compaction (30%/day) | 4.15× |
| 10.9 | aggressive compaction (30%/day) | 4.26× |
| 11.3 | aggressive compaction (30%/day) | 4.38× |
| 11.6 | aggressive compaction (30%/day) | 4.49× |
| 12 | aggressive compaction (30%/day) | 4.6× |
| 12.4 | aggressive compaction (30%/day) | 4.71× |
| 12.8 | aggressive compaction (30%/day) | 4.82× |
| 13.1 | aggressive compaction (30%/day) | 4.94× |
| 13.5 | aggressive compaction (30%/day) | 5.05× |
| 13.9 | aggressive compaction (30%/day) | 5.16× |
| 14.3 | aggressive compaction (30%/day) | 5.27× |
| 14.6 | aggressive compaction (30%/day) | 5.39× |
| 15 | aggressive compaction (30%/day) | 5.5× |
| 15.4 | aggressive compaction (30%/day) | 5.61× |
| 15.8 | aggressive compaction (30%/day) | 5.72× |
| 16.1 | aggressive compaction (30%/day) | 5.84× |
| 16.5 | aggressive compaction (30%/day) | 5.95× |
| 16.9 | aggressive compaction (30%/day) | 6.06× |
| 17.3 | aggressive compaction (30%/day) | 6.17× |
| 17.6 | aggressive compaction (30%/day) | 6.29× |
| 18 | aggressive compaction (30%/day) | 6.4× |
| 18.4 | aggressive compaction (30%/day) | 6.51× |
| 18.8 | aggressive compaction (30%/day) | 6.63× |
| 19.1 | aggressive compaction (30%/day) | 6.74× |
| 19.5 | aggressive compaction (30%/day) | 6.85× |
| 19.9 | aggressive compaction (30%/day) | 6.96× |
| 20.3 | aggressive compaction (30%/day) | 7.08× |
| 20.6 | aggressive compaction (30%/day) | 7.19× |
| 21 | aggressive compaction (30%/day) | 7.3× |
| 21.4 | aggressive compaction (30%/day) | 7.41× |
| 21.8 | aggressive compaction (30%/day) | 7.52× |
| 22.1 | aggressive compaction (30%/day) | 7.64× |
| 22.5 | aggressive compaction (30%/day) | 7.75× |
| 22.9 | aggressive compaction (30%/day) | 7.86× |
| 23.3 | aggressive compaction (30%/day) | 7.97× |
| 23.6 | aggressive compaction (30%/day) | 8.09× |
| 24 | aggressive compaction (30%/day) | 8.2× |
| 24.4 | aggressive compaction (30%/day) | 8.31× |
| 24.8 | aggressive compaction (30%/day) | 8.43× |
| 25.1 | aggressive compaction (30%/day) | 8.54× |
| 25.5 | aggressive compaction (30%/day) | 8.65× |
| 25.9 | aggressive compaction (30%/day) | 8.76× |
| 26.3 | aggressive compaction (30%/day) | 8.88× |
| 26.6 | aggressive compaction (30%/day) | 8.99× |
| 27 | aggressive compaction (30%/day) | 9.1× |
| 27.4 | aggressive compaction (30%/day) | 9.21× |
| 27.8 | aggressive compaction (30%/day) | 9.32× |
| 28.1 | aggressive compaction (30%/day) | 9.44× |
| 28.5 | aggressive compaction (30%/day) | 9.55× |
| 28.9 | aggressive compaction (30%/day) | 9.66× |
| 29.3 | aggressive compaction (30%/day) | 9.78× |
| 29.6 | aggressive compaction (30%/day) | 9.89× |
| 30 | aggressive compaction (30%/day) | 10× |
The non-obvious term is f: compaction is a rewrite, so it makes f larger. Aggressive compaction and deep time travel multiply each other. You pay storage for every intermediate file size tier for the whole retention window. Tuning these two settings independently is a mistake.