Why can one latency pass rule not judge a long steady hold, a sudden step in arrival rate and a deliberate overload run?
answer
- Different shapes ask different questions
- A long hold is judged at its end
- An abrupt increase is judged on recovery
- Past the intended rate, judge refusal
- Same bound, wrong outcome
basics
~20 sEach shape asks a different question. A long hold must still meet the bound in its final intervals; an abrupt increase in arrival rate is judged on recovery time; a run past the intended rate is judged on refusal, not latency.
solid answer
~50 sOne bound written for a long steady hold measures the wrong thing on the other two shapes. In a **long hold** the interesting failure is deterioration, so the rule should require the bound in the closing intervals as strictly as the opening ones, and pin the data volume accumulated by then. In a run with an **abrupt increase in arrival rate**, the system is expected to breach briefly; the rule must state how far it may exceed the bound and by when it must be back under, so it judges the transient rather than forbidding it. In a run **deliberately pushed past the rate the system is built for**, latency bounds are unwinnable; the rule instead requires accepted work to stay within a bound, excess work to be refused promptly rather than queued indefinitely, and normal service to return within a stated time once load drops. Same numbers, three rules.
code
pseudocode · 19 linesshared clauses (all shapes):
operation = "submit order"; vantage = calling client
intervals = 1 minute; breach accepted by = service owner
judgement clause, LONG STEADY HOLD:
bound holds in every interval, opening to closing
closing interval <= opening interval + 10%
accumulated data at end >= 8 hours of writes
judgement clause, ABRUPT INCREASE IN ARRIVAL RATE:
during 2 minutes after the increase: response time <= 3 x bound
after 2 minutes: bound holds in every 15-second interval
judgement clause, DELIBERATE OVERLOAD:
accepted work: bound holds
excess work: refused within 50 ms, never queued unbounded
accepted work is never lost
after load returns to normal: bound holds within 5 minutes,
with no manual interventiongo deeper
Recall that performance runs come in different shapes and that each is judged differently: a brief slowdown right after load jumps is expected behaviour, not automatically a failure.
Explain what each shape's rule must contain: an end-of-run check for a long hold, an excursion ceiling and a recovery time for an abrupt increase, and refusal and recovery clauses past the intended rate.
Demonstrate judgement about the numbers themselves: how you set a recovery time that is achievable yet still meaningful, and how you tell a controlled refusal apart from a collapse in the reported results.
Own the policy: which shapes a product must run before a significant change, how strict each rule is, and what happens organisationally when a system passes the hold and fails the recovery clause.
## Three shapes, three questions A pass rule encodes the question a run is asking. Three run shapes ask three different questions, so one rule cannot judge all three, however convenient a shared report format makes that look. | Run shape | What it is asking | What the rule must say | | --- | --- | --- | | Long steady hold | Does behaviour survive time and accumulation? | The bound holds in the closing intervals as strictly as the opening ones | | Abrupt increase in arrival rate | How is a sudden change absorbed? | How far the bound may be exceeded, and by when it must hold again | | Deliberate overload | What happens past the rate it is built for? | Excess work is refused rather than queued forever, and normal service returns | ## The long steady hold Load is applied at a rate the system is meant to sustain and held there for hours. The interesting failure is not the first minute; it is deterioration - memory that is never returned, a cache that grows without bound, a table that gets slower as it fills, a pool that leaks a handle on each error path. So the rule has to be written about the end of the run, not the start: - The bound must hold in the closing intervals, judged exactly as the opening ones are. - The relationship between the opening and closing figures should itself be bounded: the closing figure may not exceed the opening one by more than a stated amount. - The volume of data accumulated by the end belongs in the rule, because a hold that finishes with a small dataset has not exercised what the shape exists to exercise. Reusing this rule for the other two shapes looks harmless and is not, because in both of them a breach is expected and this rule forbids it. ## The abrupt increase in arrival rate Arrival rate jumps sharply - say from one hundred to five hundred per second with no gradual increase. Every real system breaches briefly here: pools grow, caches hold nothing for the new mix, extra capacity arrives late. Judging the run with the steady bound makes it unpassable and, worse, hides the property under test, which is the **transient**. The rule needs three agreed numbers: 1. The **ceiling** response time may reach during the excursion. 2. The **recovery time** within which the steady bound must hold again. 3. The **interval size** the check is read at, since a ninety-second excursion is invisible in five-minute intervals. "Recovers quickly" is not a clause. "Never above three times the steady bound, and back under it within two minutes, read in fifteen-second intervals" is a clause, because two people can apply it to the same result and agree. ## The deliberate overload Load is pushed past the rate the system is built for, on purpose. Latency clauses become unwinnable - the system is being asked to do more than it can, and the honest expectation is not that it stays fast but that it stays **controlled**. The pass rule changes subject: - Work that is accepted is still served within a stated bound. - Work beyond capacity is **refused promptly** rather than queued indefinitely; a fast refusal is a better outcome for a caller than an unbounded wait. - Nothing already accepted is lost or corrupted while the excess is applied. - Once load returns to normal, the system returns under the steady bound within a stated time, with no manual intervention. That final clause catches the most common real failure. A system behaves acceptably during the excess and then never comes back: pools stay exhausted, queues stay full, retries generated during the excess keep arriving, and only a restart clears it. A rule that stops at the moment the load stops never sees any of that. ## Writing three rules without triplicating everything The parts that do not vary - which operation is timed, where timings are taken, how intervals are reported, who may accept a breach - can be written once and shared across the three. What has to be per shape is the **judgement clause**: what this run must show for a pass. A useful habit is to open each shape's rule with the question that shape asks, so no reader has to reconstruct the intent from the numbers alone. The failure this prevents is quiet. A team runs all three shapes diligently, judges them all against the steady bound, and concludes that the system fails under a sudden increase and fails under overload. Both conclusions are consequences of the rule rather than facts about the system: the run with the abrupt increase was behaving exactly as designed, and the overload run was never in scope for that bound at all. The reverse error is just as common - passing an overload run because response time stayed inside the bound, while every request beyond capacity sat in an unbounded queue that nobody measured.
- How do you write the recovery clause for a run with an abrupt increase in arrival rate without making it unfalsifiable?Give it three numbers agreed beforehand: the ceiling response time may reach during the excursion, the time within which it must be back under the steady bound, and the interval size the check is read at. "Recovers quickly" is not a clause; "under the steady bound within two minutes and never above three times it, read in fifteen-second intervals" is.
- What should an overload run's rule say about the state the system is left in?That it returns under the steady bound within a stated time after load drops back, with no manual intervention and nothing accepted then lost. Many systems satisfy every clause during the excess and fail here: pools stay exhausted, queues stay full, retries keep arriving, and only a restart clears it. Recovery is the clause that catches it.
A steady jog, a sprint from standing and a run past exhaustion are all running, and none of the three is judged by the same stopwatch rule.
saying these in an interview costs you the question
- Judging an overload run by the steady latency bound
- Treating a brief breach after a sudden increase as failure
- Passing a long hold on its opening intervals alone
- Calling recovery quick with no time stated
- Reusing one rule because the report format is shared