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)