[
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)