You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Zheng Hu (JIRA)" <ji...@apache.org> on 2017/04/27 03:11:04 UTC

[jira] [Comment Edited] (HBASE-17953) VerifyReplication should read all versions other than the latest version by default.

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

Zheng Hu edited comment on HBASE-17953 at 4/27/17 3:11 AM:
-----------------------------------------------------------

[~tedyu], Thanks for your reply. 

bq.  Is there a way to align the versions used by verifyrep and the versions defined in the table ?

Actually,  user pass a scan with Integer.MAX_VALUE versions although,  RegionServer will adjust scanner's maxVersions to column familly's max version in following code (UserScanQueryMatcher.create() method): 
{code}
int maxVersions = scan.isRaw() ? scan.getMaxVersions()
        : Math.min(scan.getMaxVersions(), scanInfo.getMaxVersions());

// here:  scanInfo = new ScanInfo(conf, family, ttl, timeToPurgeDeletes, this.comparator). 
{code}

So, I think it's OK to create scan with Integer.MAX_VALUE maxVersions, because it 's aligned to the versions defined in the table.  

bq. Can you experiment with verifyrep using your patch on a table which has large number of versions to see whether there is impact on performance ?
Performance loss is inevitable for large number of version, but I think we still have to compare all the version for a row by default.  Later, I'll make a performance test for it.






was (Author: openinx):
[~tedyu], Thanks for your reply. 

bq.  Is there a way to align the versions used by verifyrep and the versions defined in the table ?

Actually,  user pass a scan with Integer.MAX_VALUE versions although,  RegionServer will adjust scanner's maxVersions to column familly's max version in following code (UserScanQueryMatcher.create() method): 
{code}
int maxVersions = scan.isRaw() ? scan.getMaxVersions()
        : Math.min(scan.getMaxVersions(), scanInfo.getMaxVersions());

// here:  scanInfo = new ScanInfo(conf, family, ttl, timeToPurgeDeletes, this.comparator). 
{code}

So, I think it's OK to create scan with Integer.MAX_VALUE maxVersions, because it 's aligned to the versions defined in the table.  

bq. Can you experiment with verifyrep using your patch on a table which has large number of versions to see whether there is impact on performance ?
Performance loss is inevitable for large number of version, but I think we have to compare all the version for a row by default.  Later, I'll make a performance test for it.





> VerifyReplication should read all versions other than the latest version by default.
> ------------------------------------------------------------------------------------
>
>                 Key: HBASE-17953
>                 URL: https://issues.apache.org/jira/browse/HBASE-17953
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Zheng Hu
>            Assignee: Zheng Hu
>         Attachments: HBASE-17953.v1.patch
>
>
> Two  problems for VerifyReplication.java: 
> 1.  With the default versions ( DO NOT set --versions option) ,  we will  read the latest version other than all version,  because Scan.maxVersions is 1.   Actuallly, I think we should compare all version by default.
> 2.   In logFailRowAndIncreaseCounter() method ,  we should set  familly/TimeRange/maxVersions attrs for a Get. 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)