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

ChiaPing Tsai updated HBASE-17034:
----------------------------------
    Description: 
{code:title=HTable.java|borderStyle=solid}
private Result get(Get get, final boolean checkExistenceOnly) throws 
IOException {
    if (get.isCheckExistenceOnly() != checkExistenceOnly || 
get.getConsistency() == null) {
      get = ReflectionUtils.newInstance(get.getClass(), get);
      get.setCheckExistenceOnly(checkExistenceOnly);
      if (get.getConsistency() == null){
        get.setConsistency(defaultConsistency);
      }
    }
  ...
}
{code}
Can the passed Get be modified? If so, we can just change the passed Get. If 
not, we can record the values returned by isCheckExistenceOnly() and 
getConsistency() for avoiding the Get copy.

It seems to me that it is ok to modify the passed Get.

Any comment? Thanks.

  was:
# HTable#exist apply the default consistency, but HTable#existAll dosen’t
# HTable#existAll may change the passed Gets , but HTable#exist dosen’t. 
(HTable#get(Get, boolean) clones the passed Get)

So we have some issues outlined below.
# Can the passed Get be modified? If so, we can save the clone of Get. If not, 
the HTable#getScanner() modify the passed Scan for some unset variables, so it 
is ok to modify the passed Get I guess. 
# Should we assign the default Consistency to the passed Get which has an null 
value of Consistency?

This jira may be solved by 
[HBASE-16623|https://issues.apache.org/jira/browse/HBASE-16623].

Any comment? Thanks.


> avoid unnecessary Get copy in HTable#exist
> ------------------------------------------
>
>                 Key: HBASE-17034
>                 URL: https://issues.apache.org/jira/browse/HBASE-17034
>             Project: HBase
>          Issue Type: Bug
>            Reporter: ChiaPing Tsai
>            Priority: Minor
>
> {code:title=HTable.java|borderStyle=solid}
> private Result get(Get get, final boolean checkExistenceOnly) throws 
> IOException {
>     if (get.isCheckExistenceOnly() != checkExistenceOnly || 
> get.getConsistency() == null) {
>       get = ReflectionUtils.newInstance(get.getClass(), get);
>       get.setCheckExistenceOnly(checkExistenceOnly);
>       if (get.getConsistency() == null){
>         get.setConsistency(defaultConsistency);
>       }
>     }
>   ...
> }
> {code}
> Can the passed Get be modified? If so, we can just change the passed Get. If 
> not, we can record the values returned by isCheckExistenceOnly() and 
> getConsistency() for avoiding the Get copy.
> It seems to me that it is ok to modify the passed Get.
> Any comment? Thanks.



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

Reply via email to