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

Jonathan Lawlor commented on HBASE-13262:
-----------------------------------------

[~elserj] This is looking good, I like the introduction of the new flag. Some 
quick review below:

When setting the flag inside RSRpcServices, I think we should be checking the 
size limit and the caching (i.e. row) limit. Currently the batch limit and size 
limit are being checked, but the batch limit should be replaced with a check 
against {{i >= rows}}. 

The reason behind replacing the batch limit check with a caching limit check is 
that the batch is a limit on the number of cells per Result. So reaching the 
batch limit doesn't necessarily mean we are done with the scan but rather that 
we have accumulated enough cells necessary for a Result to be formed. On the 
other hand, it would be worthwhile to add a check against the caching limit 
(i.e. {{i >= rows}}). I think your intention was probably to check the caching 
limit it's just that the terminology surrounding batch is a little misleading 
(even the javadoc on {{Scan#setBatch}} is misleading; "values" instead of 
"cells").

Also, just a note on backporting to 0.98 and branch-1.0. Because NextState is 
only in branch-1+, the corresponding check for size limit will simply be 
{{currentScanResultSize >= maxResultSize}} (looks like you have it covered in 
this patch actually) and the cache limit check will still be {{i>=rows}}.

> ResultScanner doesn't return all rows in Scan
> ---------------------------------------------
>
>                 Key: HBASE-13262
>                 URL: https://issues.apache.org/jira/browse/HBASE-13262
>             Project: HBase
>          Issue Type: Bug
>          Components: Client
>    Affects Versions: 2.0.0, 1.1.0
>         Environment: Single node, pseduo-distributed 1.1.0-SNAPSHOT
>            Reporter: Josh Elser
>            Assignee: Josh Elser
>            Priority: Blocker
>             Fix For: 2.0.0, 1.1.0, 0.98.13
>
>         Attachments: 13262-0.98-testpatch.txt, HBASE-13262-branch-1-v2.patch, 
> HBASE-13262-branch-1-v3.patch, HBASE-13262-branch-1.patch, 
> HBASE-13262-v1.patch, HBASE-13262-v2.patch, HBASE-13262-v3.patch, 
> HBASE-13262-v4.patch, HBASE-13262.patch, regionserver-logging.diff, 
> testrun_0.98.txt, testrun_branch1.0.txt
>
>
> Tried to write a simple Java client again 1.1.0-SNAPSHOT.
> * Write 1M rows, each row with 1 family, and 10 qualifiers (values [0-9]), 
> for a total of 10M cells written
> * Read back the data from the table, ensure I saw 10M cells
> Running it against {{04ac1891}} (and earlier) yesterday, I would get ~20% of 
> the actual rows. Running against 1.0.0, returns all 10M records as expected.
> [Code I was 
> running|https://github.com/joshelser/hbase-hwhat/blob/master/src/main/java/hbase/HBaseTest.java]
>  for the curious.



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

Reply via email to