MemoryMapState 是trident中定义的一种state,用来保存storm trident算出的数据。java
看一下MemoryMapState 和 State的关系安全
MemoryMapState 将全部的数据存放在内部静态属性ide
static ConcurrentHashMap<String, Map<List<Object>, Object>> _dbs = new ConcurrentHashMap<String, Map<List<Object>, Object>>();
关于ConcurrentHashMap,能够看成一个线程安全的mapspa
public class ConcurrentHashMap<K, V> extends AbstractMap<K, V> implements ConcurrentMap<K, V>, Serializable
MemoryMapState 对ConcurrentHashMap的操做,主要依靠内部类 MemoryMapStateBacking进行。线程
static class MemoryMapStateBacking<T> implements IBackingMap<T>, ITupleCollection
storm学到如今,感受里面都是套子,一个类的方法实际上是调用本身一个属性的方法,不少层。code