[ 
https://issues.apache.org/jira/browse/HBASE-10648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13924402#comment-13924402
 ] 

stack commented on HBASE-10648:
-------------------------------

bq. KeyValueScanner snapshotScanner

Should it be CellScanner?

MemStore#size is not heapSize or is?  FYI, HBASE-10514 adds a method to 
MemStore.

Is the snapshot info a good idea?  We need to pass it alongside a scanner?  
Should the two be combined; a class that implements CellScanner and from which 
you can get snapshot info?  You ask SnapshotInfo for the CellScanner when you 
need one? What happens if a MemStore implementation has N snapshots?  This 
scanner + info implementation will allow hiding these details?  (It should be 
able to...).

And oh, it took me a while... yeah, a class in an Interface as per Andrew is 
ahem, 'unorthodox' ... smile.  It should be an Interface too?

Can this be about Cells rather than KVs since you are making a change:

-      for (KeyValue kv : ((HStore) region.getStore(fam1)).memstore.kvset) {
+      for (KeyValue kv : memstore.kvset) {

WHy does this go away? testUpsertMSLAB

Is MSLAB an implementation detail on DefaultMemStore?

Patch lgtm where the 'g' in the previous is 'great', not 'good'.






> 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
>         Attachments: HBASE-10648.patch, HBASE-10648_V2.patch, 
> HBASE-10648_V3.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