STORAGE
STORAGE = 'storage'
Which limit a projection is closest to using up.
Whether a projection fits inside what a provider gives away, and how big a site could.
The question an operator actually asks first is not what it costs but whether it costs anything, and on R2 the answer is usually no. The free allowance is three separate limits and only one of them binds: storage. Write requests never come close at any interval of five seconds or slower, because the request count depends on the flush interval rather than on the size of the site, and reads are only generated by verification and restore.
So the headline is a storage headline, and the capacity figure is found by searching rather than by a formula. Stored bytes are a monotone function of user count with several components that do not scale together - churn scales with active users, the tree scales with subjects, code does not scale at all - so a bisection over the projection is both simpler and more honest than inverting a model that has no inverse.
$prices : \Drupal\strata\Estimate\PriceTable
$projection : \Drupal\strata\Estimate\Projection
__construct(\Drupal\strata\Estimate\PriceTable $prices, \Drupal\strata\Estimate\Projection $projection) : mixed
Constructs a verdict.
| \Drupal\strata\Estimate\PriceTable | $prices | The provider being measured against. |
| \Drupal\strata\Estimate\Projection | $projection | What was projected. |
capacity(\Drupal\strata\Estimate\Estimator $estimator, \Drupal\strata\Estimate\Measurement $shape, \Drupal\strata\Estimate\PriceTable $prices) : int
The largest user count that still fits in the free tier.
Everything else about the shape is held still and the user count is varied, because that is the dial an operator recognises. Nodes and rows are scaled with it in the same proportion the measurement already has, so a site with ten nodes per user keeps ten nodes per user.
| \Drupal\strata\Estimate\Estimator | $estimator | The estimator to project with. |
| \Drupal\strata\Estimate\Measurement | $shape | The shape to vary. Its user count is the starting point and is ignored otherwise. |
| \Drupal\strata\Estimate\PriceTable | $prices | The provider. |
Users, or zero when even one user does not fit.