backtype.storm.utils
Class RotatingMap<K,V>
java.lang.Object
backtype.storm.utils.RotatingMap<K,V>
public class RotatingMap<K,V>
- extends java.lang.Object
Expires keys that have not been updated in the configured number of seconds.
The algorithm used will take between expirationSecs and
expirationSecs * (1 + 1 / (numBuckets-1)) to actually expire the message.
get, put, remove, containsKey, and size take O(numBuckets) time to run.
The advantage of this design is that the expiration thread only locks the object
for O(1) time, meaning the object is essentially always available for gets/puts.
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
RotatingMap
public RotatingMap(int numBuckets,
RotatingMap.ExpiredCallback<K,V> callback)
RotatingMap
public RotatingMap(RotatingMap.ExpiredCallback<K,V> callback)
RotatingMap
public RotatingMap(int numBuckets)
rotate
public java.util.Map<K,V> rotate()
containsKey
public boolean containsKey(K key)
get
public V get(K key)
put
public void put(K key,
V value)
remove
public java.lang.Object remove(K key)
size
public int size()