[
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