Your scaling plans should consider all these elements. The only reliable
figures on which to base performance expectations are those obtained by
benchmarking the storage unit under realistic load conditions.
A storage system that is running near saturation is more likely to experience
unplanned interactions between delayed acknowledgments implemented
in different levels of hardware and software. Since multiple layers
might be performing in-layer caching, buffering, and pipelining, the saturation
conditions increase the likelihood of encountering boundary conditions,
among them overflowing buffers and updating caches before their contents
can be written. As mentioned earlier, implementers are likely to be relying on
the unlikelihood of encountering such boundary condition; how these types
of events are handled is usually specific to a particular vendor’s firmware
implementation.