[ 
https://issues.apache.org/jira/browse/HBASE-13711?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stephen Yuan Jiang updated HBASE-13711:
---------------------------------------
    Summary: Provide an API to set min and max versions in HColumnDescriptor  
(was: Provide an API to set min and max versions in )

> Provide an API to set min and max versions in HColumnDescriptor
> ---------------------------------------------------------------
>
>                 Key: HBASE-13711
>                 URL: https://issues.apache.org/jira/browse/HBASE-13711
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 2.0.0, 1.1.0, 1.2.0
>            Reporter: Stephen Yuan Jiang
>            Assignee: Stephen Yuan Jiang
>            Priority: Minor
>
> In org.apache.hadoop.hbase.chaos.actions.ChangeVersionsAction#perform(), it 
> tries to update the max and min versions in a column descriptor: 
> {code}
>      for(HColumnDescriptor descriptor:columnDescriptors) {
>        descriptor.setMaxVersions(versions);
>        descriptor.setMinVersions(versions);
>      }
> {code}
> If the current minimum version is greater than the new max version, an 
> IllegalArgumentException would throw from 
> org.apache.hadoop.hbase.HColumnDescriptor#setMaxVersions().  
> Here is an example (trying to set max version to 1 while currently min 
> version is 2):
> {noformat}
> java.lang.IllegalArgumentException: Set MaxVersion to 1 while minVersion is 
> 2. Maximum versions must be >= minimum versions
> at 
> org.apache.hadoop.hbase.HColumnDescriptor.setMaxVersions(HColumnDescriptor.java:634)
> at 
> org.apache.hadoop.hbase.chaos.actions.ChangeVersionsAction.perform(ChangeVersionsAction.java:62)
> {noformat}
> One solution is to change the order of set - set min version first and then 
> set max version (note: the current implement of 
> org.apache.hadoop.hbase.HColumnDescriptor#setMinVersions() does not check the 
> min version value and blindly set the version.  Not sure whether this is 
> by-design).
> Another solution is to provide an API to set both min and max version in one 
> function call.  



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

Reply via email to