ArgMinStat
Tracks the minimum value seen across a stream together with the timestamp at which it occurred. On ties the first occurrence wins.
Use cases: best objective and when it was found, lowest latency and when it happened, locating the trough of a series in time.
Memory: O(1); a double cell, a long cell, and a lock.
Update: O(1) per observation.
Concurrency: Internal CAS spin-lock (category 3). The (value, timestamp) pair cannot be made elementwise atomic with a single-cell CAS; the lock keeps the pair consistent under any Concurrency level.
Constructors
ArgMinStat
Properties
concurrency
Thread-safety mode fixed at construction. See Concurrency for the shared contract and the implementation's KDoc for its cell and lock strategy.
Functions
create
Create an independent accumulator at the configured baseline. A null concurrency preserves this accumulator's mode; a non-null value overrides it. Modality subtypes narrow the return type to preserve the input shape.
merge
Fold a compatible snapshot values into this accumulator at timestampNanos. Implementations document whether the combine is exact or approximate and which state the snapshot omits. The source accumulator is unaffected.
Time-dependent statistics, such as windows, place the snapshot at timestampNanos, which must share the clock the caller uses for updates and reads. Time-independent statistics ignore it.
read
Return the current result evaluated at timestampNanos. Time-independent statistics ignore the timestamp. Reading does not add an observation.
Snapshot consistency depends on the implementation's synchronisation. Locks protect coupled state under Concurrency.Strict and Concurrency.HighWrite; independently updated cells and JVM striped adders can still yield a best-effort snapshot. Concurrency.Relaxed permits drift across coupled cells.
reset
Restore the configured baseline, including any prior seed. Preserves the configuration and concurrency.