White RoomNEW

Ninety Millisecond Tail

A storage service allocates pages on the request path. The allocator is purely reactive:

frame = find_free_frame();
if (frame == NULL) {
    victim = pick_victim();
    if (victim.dirty) disk_write(victim);   // synchronous
    frame = reclaim(victim);
}
disk_read(needed_page, frame);

Under load, p50 request latency stays at 3 ms but p99 jumps to 90 ms. Adding a background daemon that keeps the free-frame count between a low watermark and a high watermark drops p99 back to 5 ms, with p50 unchanged. Which explanation fits the measurements?