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