[ https://issues.apache.org/jira/browse/HBASE-7495?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13565477#comment-13565477 ]
Ted Yu commented on HBASE-7495: ------------------------------- In my opinion, one loop should be enough for the task. You can create latch with initial count of scanners.size(). In the loop, after finding StoreFileScanner, a worker is created and started. We still maintain storeFileScannerCount. For non-StoreFileScanner, seek() is called. Outside the loop, first count down the latch by scanners.size()-storeFileScannerCount. Then wait for the latch. If you prefer, you can extract calling non-StoreFileScanner's seek() in a second loop. > parallel seek in StoreScanner > ----------------------------- > > Key: HBASE-7495 > URL: https://issues.apache.org/jira/browse/HBASE-7495 > Project: HBase > Issue Type: Bug > Components: Scanners > Affects Versions: 0.94.3, 0.96.0 > Reporter: Liang Xie > Assignee: Liang Xie > Attachments: HBASE-7495.txt, HBASE-7495.txt, HBASE-7495.txt, > HBASE-7495-v2.txt, HBASE-7495-v3.txt, HBASE-7495-v4.txt, HBASE-7495-v4.txt > > > seems there's a potential improvable space before doing scanner.next: > {code:title=StoreScanner.java|borderStyle=solid} > if (explicitColumnQuery && lazySeekEnabledGlobally) { > for (KeyValueScanner scanner : scanners) { > scanner.requestSeek(matcher.getStartKey(), false, true); > } > } else { > for (KeyValueScanner scanner : scanners) { > scanner.seek(matcher.getStartKey()); > } > } > {code} > we can do scanner.requestSeek or scanner.seek in parallel, instead of current > serialization, to reduce latency for special case. > Any ideas on it ? I'll have a try if the comments/suggestions are positive:) -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira