Details
-
Bug
-
Status: Resolved
-
Normal
-
Resolution: Fixed
-
None
-
Correctness
-
Normal
-
Normal
-
Adhoc Test
-
All
-
None
-
Description
`DecayingEstimatedHistogramReservoir` has a race condition between `update` and `rescaleIfNeeded`.
A sample which ends up (`update`) in an already scaled decayingBucket (`rescaleIfNeeded`) may still use a non-scaled weight because `decayLandmark` has not been updated yet at the moment of `update`.
The observed consequence was flooding of the cluster with speculative retries (we happened to hit low-percentile buckets with overweight samples, which drove p99 below true p50 for a long time).
Please note that despite the manifestation being similar to CASSANDRA-19330, these are two distinct bugs in their own right.
This bug affects versions 4.0+
On 3.11 there's locking in DEHR. I did not check earlier versions.
Attachments
Attachments
Issue Links
- links to