[ https://issues.apache.org/jira/browse/HBASE-7495?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13566692#comment-13566692 ]
Ted Yu commented on HBASE-7495: ------------------------------- {code} + * A flag that enables StoreFileScanner parallel-seeking in StoreScanner + */ + public static final String STORESCANNER_SEEK_PARALLEL_ENABLED = + "hbase.storescanner.seek.parallel.enabled"; {code} The constant is only used in StoreScanner.java Please move it there. Maybe name it "hbase.storescanner.parallel.seek.enable" {code} + * seek storefile in parallel to optimize IO latency as much as possible + * @throws IOException + */ + private void parallelSeek(final List<? extends KeyValueScanner> + scanners, final KeyValue keyValue) throws IOException { {code} 'seek storefile' -> 'seek storefiles' Please add javadoc for parameters. {code} + List<Future<Void>> futures = seekExecutor.invokeAll(tasks); {code} Why not call seekExecutor.submit(task) in the loop ? {code} + } catch (InterruptedException ie) { + LOG.error(""); + throw new IOException(ie); {code} Please use InterruptedIOException. If you don't have custom error log, you can omit LOG.error() statement. > 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, > HBASE-7495-v5.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