storm trident定義的內存結構MemoryMapState 詳解

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

相關文章
相關標籤/搜索