storm trident定义的内存结构MemoryMapState 详解

MemoryMapState trident中定义的一种state,用来保存storm trident算出的数据。

看一下MemoryMapState 和 State的关系

storm trident定义的内存结构MemoryMapState 详解_第1张图片


MemoryMapState 将所有的数据存放在内部静态属性

 static ConcurrentHashMap<String, Map<List<Object>, Object>> _dbs = new ConcurrentHashMap<String, Map<List<Object>, Object>>();

关于ConcurrentHashMap,可以当作一个线程安全的map

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学到现在,感觉里面都是套子,一个类的方法其实是调用自己一个属性的方法,很多层。


你可能感兴趣的:(storm trident定义的内存结构MemoryMapState 详解)