public class ExponentiallyDecayingReservoir extends java.lang.Object implements Reservoir
longs. 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()
Reservoirpublic void update(long value)
Reservoirpublic void update(long value,
long timestamp)
value - the value to be addedtimestamp - the epoch timestamp of value in secondspublic Snapshot getSnapshot()
ReservoirgetSnapshot in interface Reservoir"Copyright © 2010 - 2020 Adobe Systems Incorporated. All Rights Reserved"