[ https://issues.apache.org/jira/browse/HBASE-10648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13935079#comment-13935079 ]
Yu Li commented on HBASE-10648: ------------------------------- Hi [~anoop.hbase], {quote} It won't be good to directly use some impl here. We use flushed variable for logging purpose only right? In trunk it is. Can you use the size available in MemStoreSnapshot? {quote} Yes, the flushedSize is for logging purpose, or say monitoring purpose. Actually this is kind of a necessary metrics for our monitoring system and we think it useful for analyzing online problem when there's any. >From the code segment of the heapSizeChange method, it's for computing the >heapsize change when adding/removing a previously-non-existing kv, so I don't >think any size available in MemStoreSnapshot can be used here. If we decided >to keep the flushedSize metrics, I think it's even better to put >heapSizeChange method into the MemStore interface, since different impl of >MemStore might have different heap size to store one kv, depending on the >structure(not only CSLM) we use to store it. What's your opinion? {code} static long heapSizeChange(final KeyValue kv, final boolean notpresent) { return notpresent ? ClassSize.align(ClassSize.CONCURRENT_SKIPLISTMAP_ENTRY + kv.heapSize()): 0; } {code} ---- {quote} Make snapshotSize = keySize(). Any way once HBASE-10514 is in to 94, will need some change here and snapshotSize will come as an instance member. {quote} Make sense. Let me make the change in one go after HBASE-10514 goes into 94. > Pluggable Memstore > ------------------ > > Key: HBASE-10648 > URL: https://issues.apache.org/jira/browse/HBASE-10648 > Project: HBase > Issue Type: Sub-task > Reporter: Anoop Sam John > Assignee: Anoop Sam John > Fix For: 0.99.0 > > Attachments: HBASE-10648-0.94_v1.patch, HBASE-10648.patch, > HBASE-10648_V2.patch, HBASE-10648_V3.patch, HBASE-10648_V4.patch, > HBASE-10648_V5.patch, HBASE-10648_V6.patch > > > Make Memstore into an interface implementation. Also make it pluggable by > configuring the FQCN of the impl. > This will allow us to have different impl and optimizations in the Memstore > DataStructure and the upper layers untouched. -- This message was sent by Atlassian JIRA (v6.2#6252)