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

stack commented on HBASE-9272:
------------------------------

Looks great.  +1

Minor stuff to address on commit.

nit: try/finally for this bit

+    List<HRegionLocation> locs = t.getRegionsInRange(scan.getStartRow(), 
scan.getStopRow());
+    t.close();

nit: presize +    Map<HRegionLocation, Queue<Scan>> tasks = new 
HashMap<HRegionLocation, Queue<Scan>>(); -- you know how many regions

nit: +   * doesn't wait until the threapool actually closes  -- spelling

You mean volatile here? +  private transient double parallelScaling = 0;

Agree it should be in HTable.  I like addtion to the shell.

'Task' is too generic a name for the class and the ReaderWriter looks like a 
Queue but as long as these classes are kept private should be fine.

MyResult is a bit hokey for a class name.  Done or DoneMarker?    Bit more doc 
on its operation (it makes sense when you take a look but not reading the class 
alone).

> A simple parallel, unordered scanner
> ------------------------------------
>
>                 Key: HBASE-9272
>                 URL: https://issues.apache.org/jira/browse/HBASE-9272
>             Project: HBase
>          Issue Type: New Feature
>            Reporter: Lars Hofhansl
>            Assignee: Lars Hofhansl
>            Priority: Minor
>         Attachments: 9272-0.94.txt, 9272-0.94-v2.txt, 9272-0.94-v3.txt, 
> 9272-0.94-v4.txt, 9272-trunk.txt, 9272-trunk-v2.txt, 
> ParallelClientScanner.java, ParallelClientScanner.java
>
>
> The contract of ClientScanner is to return rows in sort order. That limits 
> the order in which region can be scanned.
> I propose a simple ParallelScanner that does not have this requirement and 
> queries regions in parallel, return whatever gets returned first.
> This is generally useful for scans that filter a lot of data on the server, 
> or in cases where the client can very quickly react to the returned data.
> I have a simple prototype (doesn't do error handling right, and might be a 
> bit heavy on the synchronization side - it used a BlockingQueue to hand data 
> between the client using the scanner and the threads doing the scanning, it 
> also could potentially starve some scanners long enugh to time out at the 
> server).
> On the plus side, it's only a 130 lines of code. :)



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to