[ 
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)

Reply via email to