For #1, in branch-1, please take a look at DefaultMemStore.java where you would see:
// MemStore. Use a CellSkipListSet rather than SkipListSet because of the // better semantics. The Map will overwrite if passed a key it already had // whereas the Set will not add new Cell if key is same though value might be // different. Value is not important -- just make sure always same // reference passed. volatile CellSkipListSet cellSet; // Snapshot of memstore. Made for flusher. volatile CellSkipListSet snapshot; For #2, MemStoreFlusher#flushRegion() -> HRegion#flush() -> HRegion#internalFlushCacheAndCommit() Please take a look at HStore#commit(). On Sun, May 1, 2016 at 3:36 AM, Shushant Arora <[email protected]> wrote: > 1.Does Hbase uses ConcurrentskipListMap(CSLM) to store data in memstore? > > 2.When mwmstore is flushed to HDFS- does it dump the memstore > Concurrentskiplist as Hfile2? Then How does it calculates blocks out of > CSLM and dmp them in HDFS. > > 3.After dumping the inmemory CSLM of memstore to HFILe does memstore > content is discarded and if while dumping memstore any read request comes > will it be responded by copy of memstore or discard of memstore will be > blocked until read request is completed? > > 4.When a read request comes does it look in inmemory CSLM and then in > HFile? And what is LogStructuredMerge tree and its usage in Hbase. > > Thanks! >
