public class ExponentiallyDecayingReservoir extends java.lang.Object implements Reservoir
long
s. Uses Cormode et al's
forward-decaying priority reservoir sampling method to produce a statistically representative
sampling reservoir, exponentially biased towards newer entries.Constructor and Description |
---|
ExponentiallyDecayingReservoir()
Creates a new
ExponentiallyDecayingReservoir of 1028 elements, which offers a 99.9%
confidence level with a 5% margin of error assuming a normal distribution, and an alpha
factor of 0.015, which heavily biases the reservoir to the past 5 minutes of measurements. |
ExponentiallyDecayingReservoir(int size,
double alpha)
Creates a new
ExponentiallyDecayingReservoir . |
ExponentiallyDecayingReservoir(int size,
double alpha,
Clock clock)
Creates a new
ExponentiallyDecayingReservoir . |
Modifier and Type | Method and Description |
---|---|
Snapshot |
getSnapshot()
Returns a snapshot of the reservoir's values.
|
int |
size()
Returns the number of values recorded.
|
void |
update(long value)
Adds a new recorded value to the reservoir.
|
void |
update(long value,
long timestamp)
Adds an old value with a fixed timestamp to the reservoir.
|
public ExponentiallyDecayingReservoir()
ExponentiallyDecayingReservoir
of 1028 elements, which offers a 99.9%
confidence level with a 5% margin of error assuming a normal distribution, and an alpha
factor of 0.015, which heavily biases the reservoir to the past 5 minutes of measurements.public ExponentiallyDecayingReservoir(int size, double alpha)
ExponentiallyDecayingReservoir
.size
- the number of samples to keep in the sampling reservoiralpha
- the exponential decay factor; the higher this is, the more biased the reservoir
will be towards newer valuespublic ExponentiallyDecayingReservoir(int size, double alpha, Clock clock)
ExponentiallyDecayingReservoir
.size
- the number of samples to keep in the sampling reservoiralpha
- the exponential decay factor; the higher this is, the more biased the reservoir
will be towards newer valuesclock
- the clock used to timestamp samples and track rescalingpublic int size()
Reservoir
public void update(long value)
Reservoir
public void update(long value, long timestamp)
value
- the value to be addedtimestamp
- the epoch timestamp of value
in secondspublic Snapshot getSnapshot()
Reservoir
getSnapshot
in interface Reservoir
"Copyright © 2010 - 2020 Adobe Systems Incorporated. All Rights Reserved"