-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/34014/
-----------------------------------------------------------

(Updated May 9, 2015, 5:42 p.m.)


Review request for drill, Chris Westin and Jacques Nadeau.


Changes
-------

* addressed review comments
* fixed potential concurrency issue with myThread variable in FragmentExecutor


Bugs: DRILL-2755
    https://issues.apache.org/jira/browse/DRILL-2755


Repository: drill-git


Description
-------

DRILL-2755: Use and handle InterruptedException during query processing.

    - Interrupt FragmentExecutor thread as part of FragmentExecutor.cancel()
    - Handle InterruptedException in ExternalSortBatch.newSV2(). If the 
fragment status says
      should not continue, then throw the InterruptedException to caller which 
returns IterOutcome.STOP
    - Add comments reg not handling of InterruptedException in 
SendingAccountor.waitForSendComplete()
    - Handle InterruptedException in 
OrderedPartitionRecordBatch.getPartitionVectors()
    - If interrupted in Thread.sleep calls and fragment status says should not 
run, then
      return IterOutcome.STOP downstream.
    - Interrupt partitioner threads if PartitionerRecordBatch is interrupted 
while waiting for
      partitioner threads to complete.
    - Preserve interrupt status if not handled
    - Handle null RecordBatches returned by RawBatchBuffer.getNext() in 
MergingRecordBatch.buildSchema()
    - Change timeout in Foreman to be proportional to the number of 
intermediate fragments sent instead
      of hard coded limit of 90s.
    - Change TimedRunnable to enforce a timeout of 15s per runnable.
      Total timeout is (5s * numOfRunnableTasks) / parallelism.


Diffs (updated)
-----

  common/src/main/java/org/apache/drill/common/concurrent/ExtendedLatch.java 
a75ac32 
  exec/java-exec/src/main/java/org/apache/drill/exec/ops/SendingAccountor.java 
0cb5fbf 
  
exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/mergereceiver/MergingRecordBatch.java
 ce683cb 
  
exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/orderedpartitioner/OrderedPartitionRecordBatch.java
 63b7eba 
  
exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/partitionsender/PartitionerDecorator.java
 c3261dc 
  
exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/partitionsender/PartitionerTemplate.java
 cbea267 
  
exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/unorderedreceiver/UnorderedReceiverBatch.java
 66a2092 
  
exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/xsort/ExternalSortBatch.java
 e88bc67 
  
exec/java-exec/src/main/java/org/apache/drill/exec/record/RawFragmentBatchProvider.java
 d4dfe96 
  exec/java-exec/src/main/java/org/apache/drill/exec/rpc/BasicClient.java 
1661f81 
  exec/java-exec/src/main/java/org/apache/drill/exec/rpc/BasicServer.java 
a148436 
  
exec/java-exec/src/main/java/org/apache/drill/exec/rpc/ReconnectingConnection.java
 9948d3e 
  exec/java-exec/src/main/java/org/apache/drill/exec/rpc/RemoteConnection.java 
0f095c0 
  exec/java-exec/src/main/java/org/apache/drill/exec/rpc/data/DataTunnel.java 
11f5496 
  exec/java-exec/src/main/java/org/apache/drill/exec/server/Drillbit.java 
e7a9a3c 
  exec/java-exec/src/main/java/org/apache/drill/exec/store/TimedRunnable.java 
0fb778b 
  
exec/java-exec/src/main/java/org/apache/drill/exec/testing/CountDownLatchInjection.java
 PRE-CREATION 
  
exec/java-exec/src/main/java/org/apache/drill/exec/testing/CountDownLatchInjectionImpl.java
 PRE-CREATION 
  
exec/java-exec/src/main/java/org/apache/drill/exec/testing/ExecutionControlsInjector.java
 4b1cd0c 
  
exec/java-exec/src/main/java/org/apache/drill/exec/testing/NoOpControlsInjector.java
 80d9790 
  
exec/java-exec/src/main/java/org/apache/drill/exec/testing/PauseInjection.java 
e5f9c9c 
  exec/java-exec/src/main/java/org/apache/drill/exec/work/WorkManager.java 
a3ceb8f 
  
exec/java-exec/src/main/java/org/apache/drill/exec/work/batch/SpoolingRawBatchBuffer.java
 2a79e42 
  
exec/java-exec/src/main/java/org/apache/drill/exec/work/batch/UnlimitedRawBatchBuffer.java
 d23655c 
  exec/java-exec/src/main/java/org/apache/drill/exec/work/foreman/Foreman.java 
49d0c94 
  
exec/java-exec/src/main/java/org/apache/drill/exec/work/fragment/FragmentExecutor.java
 ddb828c 
  
exec/java-exec/src/test/java/org/apache/drill/exec/server/TestDrillbitResilience.java
 da69e9e 
  
exec/java-exec/src/test/java/org/apache/drill/exec/store/TestTimedRunnable.java 
PRE-CREATION 
  exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/DrillResultSetImpl.java 
8ef2af3 

Diff: https://reviews.apache.org/r/34014/diff/


Testing
-------

- Add unit tests
      * Testing cancelling a query interrupts the query fragments which are 
currently blocked
      * Testing interrupting the partitioner sender which in turn interrupts 
its helper threads
      * Testing TimedRunanble enforeces timeout for the whole task list.


Thanks,

Venki Korukanti

Reply via email to