hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Srikanth Srungarapu (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-11876) RegionScanner.nextRaw(...) should not update metrics
Date Tue, 02 Sep 2014 23:12:51 GMT

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

Srikanth Srungarapu commented on HBASE-11876:
---------------------------------------------

+1 (non-binding). But just a small question about this block
-                for (; i < rows
-                    && currentScanResultSize < maxResultSize; ) {
+                for (; i < rows; i++) {
+                  // Stop collecting results if maxScannerResultSize is set and we have exceeded
it
+                  if ((maxScannerResultSize < Long.MAX_VALUE) &&
+                      (currentScanResultSize >= maxResultSize)) {
+                    break;
+                  }
                   // Collect values to be returned here
                   boolean moreRows = scanner.nextRaw(values);
                   if (!values.isEmpty()) {
-                    if (maxScannerResultSize < Long.MAX_VALUE){
-                      for (Cell kv : values) {
-                        currentScanResultSize += KeyValueUtil.ensureKeyValue(kv).heapSize();
-                      }
+                    for (Cell cell : values) {
+                      KeyValue kv = KeyValueUtil.ensureKeyValue(cell);
+                      currentScanResultSize += kv.heapSize();
+                      totalKvSize += kv.getLength();
                     }
                     results.add(Result.create(values, null, stale));
-                    i++;
                   }
{code}
The increment for variable to i moved out of the  if (!values.isEmpty()) block. Does this
mean that values is never going to be empty? If so, then can we do away without it?


> RegionScanner.nextRaw(...) should not update metrics
> ----------------------------------------------------
>
>                 Key: HBASE-11876
>                 URL: https://issues.apache.org/jira/browse/HBASE-11876
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.98.6
>            Reporter: Lars Hofhansl
>            Assignee: Andrew Purtell
>             Fix For: 0.99.0, 2.0.0, 0.98.6
>
>         Attachments: HBASE-11876.patch
>
>
> I added the RegionScanner.nextRaw(...) to allow "smart" client to avoid some of the default
work that HBase is doing, such as {start|stop}RegionOperation and synchronized(scanner) for
each row.
> Metrics should follow the same approach. Collecting them per row is expensive and a caller
should have the option to collect those later or to avoid collecting them completely.
> We can also save some cycles in RSRcpServices.scan(...) if we updated the metric only
once/batch instead of each row.



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

Mime
View raw message