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

stack commented on HBASE-17294:
-------------------------------

Hey [~eshcar]. On the patch:

HColumnDescriptor is a public-facing class.  The enums in MemoryCompaction and 
the new methods need javadoc. This will be where operators configure Accordion 
so needs a bit of heft I'd say, more than is here.

Its ok removing these defines because they have not been part of a release yet?

56        // Configuration options for MemStore compaction              
57        static final String INDEX_COMPACTION_CONFIG = "index-compaction";     
        
58        static final String DATA_COMPACTION_CONFIG  = "data-compaction";      
        
59                      
60        // The external setting of the compacting MemStore behaviour          
61        // Compaction of the index without the data is the default            
62        static final String COMPACTING_MEMSTORE_TYPE_KEY = 
"hbase.hregion.compacting.memstore.type";          
63        static final String COMPACTING_MEMSTORE_TYPE_DEFAULT = 
INDEX_COMPACTION_CONFIG;


Should the  String.valueOf(BASIC) in the below be 
COMPACTING_MEMSTORE_TYPE_DEFAULT?

277         String compType = compactingMemStore.getConfiguration().get(
278             CompactingMemStore.COMPACTING_MEMSTORE_TYPE_KEY,
279             String.valueOf(BASIC));


Yeah,  no to * imports. We don't do that.

You don't want to take arg here?

378         if(opts.inMemoryCompaction) {
379           family.setInMemoryCompaction(true);       379           
family.setInMemoryCompaction(HColumnDescriptor.MemoryCompaction.BASIC);
380         }   380         }
381         desc.addFamily(family);     381         de

... i.e. let user set NONE, BASIC, EAGER? Would help testing the options.

On setting NONE in tests, is that because test fail otherwise? Would be cool to 
parameterize tests so they ran three times -- NONE, BASIC, and EAGER -- but 
that can be another issue.

I haven't tried it but does allow me set any of the three options from the 
shell?

family.setInMemoryCompaction(
819                       
JBoolean.valueOf(arg.delete(org.apache.hadoop.hbase.HColumnDescriptor::IN_MEMORY_COMPACTION)))
 if 
arg.include?(org.apache.hadoop.hbase.HColumnDescriptor::IN_MEMORY_COMPACTION)   
    819               
org.apache.hadoop.hbase.HColumnDescriptor.MemoryCompaction.valueOf(arg.delete(org.apache.hadoop.hbase.HColumnDescriptor::IN_MEMORY_COMPACTION)))
 if 
arg.include?(org.apache.hadoop.hbase.HColumnDescriptor::IN_MEMORY_COMPACTION)

... or do you need to add some new defines?

Thanks [~eshcar] 



> External Configuration for Memory Compaction 
> ---------------------------------------------
>
>                 Key: HBASE-17294
>                 URL: https://issues.apache.org/jira/browse/HBASE-17294
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Eshcar Hillel
>            Assignee: Eshcar Hillel
>         Attachments: HBASE-17294-V01.patch, HBASE-17294-V02.patch
>
>
> We would like to have a single external knob to control memstore compaction.
> Possible memstore compaction policies are none, basic, and eager.
> This sub-task allows to set this property at the column family level at table 
> creation time:
> {code}
> create ‘<tablename>’,
>    {NAME => ‘<cfname>’, 
>     IN_MEMORY_COMPACTION => ‘<NONE|BASIC|EAGER>’}
> {code}
> or to set this at the global configuration level by setting the property in 
> hbase-site.xml, with BASIC being the default value:
> {code}
> <property>
>       <name>hbase.hregion.compacting.memstore.type</name>
>       <value><NONE|BASIC|EAGER></value>
> </property>
> {code}
> The values used in this property can change as memstore compaction policies 
> evolve over time.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to