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

(Updated March 19, 2015, 1:21 p.m.)


Review request for drill, Jacques Nadeau and Jason Altekruse.


Changes
-------

Addressed Jacques last review comments. It should only be necessary to review 
DeferredException (new), FragmentContext and FragmentExecutor for the first, 
and Foreman (Foreman.ForemanResult and Foreman.moveToState()) for the second.


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


Repository: drill-git


Description
-------

DRILL-2245-core: Clean up query setup and execution kickoff in 
Foreman/WorkManager in order to ensure consistent handling, and avoid hangs and 
races, with the goal of improving Drillbit robustness.

    I did my best to keep these clean when I split them up, but this core commit
    may depend on some minor changes in the hygiene commit that is also
    associated with this bug, so either both should be applied, or neither.
    The core commit should be applied first.

    AutoCloseables
    - created org.apache.drill.common.AutoCloseables to handle closing these
      quietly

    BaseTestQuery, and derivatives
    - factored out pieces into QueryTestUtil so they can be reused

    Drillbit
    - uses AutoCloseables for the WorkManager and for the storeProvider
    - allow start() to take a RemoteServiceSet
    - private, final, formatting

    Foreman
       - does not need to implement Comparable
    - does not need to implement Closeable
    - thread blocking fixes
    - add resultSent flag
    - add code to log plan fragments with endpoint assignments
    - added finals, cleaned up formatting
    - do queue management in acquireQuerySemaphore; local tests pass
    - rename getContext() to getQueryContext()
    - retain DrillbitContext
    - a couple of exception injections for testing
    - minor formatting
    - TODOs

    FragmentExecutor
    - eliminated CancelableQuery
    - common subexpression elimination
    - cleaned up

    QueryContext
    - removed unnecessary functions (with some outside classes tweaked for this)
    - finals, formatting

    QueryManager
    - merge in QueryStatus
      - affects Foreman, ../batch/ControlHandlerImpl,
        and ../../server/rest/ProfileResources
    - made some methods private
    - removed unused imports
    - add finals and formatting
    - variable renaming to improve readability
    - formatting
    - comments
    - TODOs

    QueryStatus
    - getAsInfo() private
    - member renaming
    - member access changes
    - formatting
    - TODOs

    QueryTestUtil, BaseTestQuery, TestDrillbitResilience
    - make maxWidth a parameter to server startup

    SelfCleaningRunnable
    - created org.apache.drill.common.SelfCleaningRunnable

    SingleRowListener
    - created org.apache.drill.SingleRowListener results listener
    - use in TestDrillbitResilience
    
    TestDrillbitResilience
    - created org.apache.drill.exec.server.TestDrillbitResilience to test drillb
      resilience in the face of exceptions and failures during queries

    TestWithZookeeper
    - factor out work into ZookeeperHelper so that it can be reused by
      TestDrillbitResilience

    UserBitShared
    - get rid of unused UNKNOWN_QUERY

    WorkEventBus
    - rename methods, affects Foreman and ControlHandlerImpl
    - remove unused WorkerBee reference
    - most members final
    - formatting

    WorkManager
    - Closeable to AutoCloseable
    - removed unused incomingFragments Set
    - eliminated unnecessary eventThread and pendingTasks by posting Runnables
      directly to executor
    - use SelfCleaningRunnable for Foreman management
    - FragmentExecutor management uses SelfCleaningRunnable
    - runningFragments to be a ConcurrentHashMap; TestTpchDistributed passes
    - other improvements due to bee no longer needed in various places
    - most members final
    - minor formatting
    - comments
    - TODOs

    (*) Created exception injection classes to simulate exceptions for testing
    - ExceptionInjection
    - ExceptionInjector
    - ExceptionInjectionUtil
    - TestExceptionInjection


Diffs (updated)
-----

  common/src/main/java/org/apache/drill/common/AutoCloseables.java PRE-CREATION 
  common/src/main/java/org/apache/drill/common/DeferredException.java 
PRE-CREATION 
  common/src/main/java/org/apache/drill/common/SelfCleaningRunnable.java 
PRE-CREATION 
  common/src/main/java/org/apache/drill/common/config/DrillConfig.java e8b2478 
  exec/java-exec/src/main/java/org/apache/drill/exec/ExecConstants.java 93d06f0 
  exec/java-exec/src/main/java/org/apache/drill/exec/client/DrillClient.java 
04b955b 
  
exec/java-exec/src/main/java/org/apache/drill/exec/compile/ClassTransformer.java
 5c65724 
  
exec/java-exec/src/main/java/org/apache/drill/exec/coord/local/LocalClusterCoordinator.java
 035c1aa 
  exec/java-exec/src/main/java/org/apache/drill/exec/ops/FragmentContext.java 
2a6660e 
  exec/java-exec/src/main/java/org/apache/drill/exec/ops/QueryContext.java 
fb6b4aa 
  exec/java-exec/src/main/java/org/apache/drill/exec/opt/BasicOptimizer.java 
9f89f24 
  exec/java-exec/src/main/java/org/apache/drill/exec/opt/IdentityOptimizer.java 
979c5e2 
  exec/java-exec/src/main/java/org/apache/drill/exec/opt/Optimizer.java 34d0622 
  
exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/BaseRootExec.java
 412da85 
  
exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/RootExec.java 
a644c34 
  
exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/ScreenCreator.java
 d884200 
  
exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/SendingAccountor.java
 3920f9c 
  
exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/materialize/QueryWritableBatch.java
 e6c3fba 
  
exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/orderedpartitioner/OrderedPartitionRecordBatch.java
 352e7ae 
  
exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/producer/ProducerConsumerBatch.java
 4c9b33b 
  
exec/java-exec/src/main/java/org/apache/drill/exec/planner/fragment/Fragment.java
 2436a0e 
  
exec/java-exec/src/main/java/org/apache/drill/exec/planner/fragment/SimpleParallelizer.java
 eebd40e 
  
exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/SetOptionHandler.java
 b5d3f4a 
  exec/java-exec/src/main/java/org/apache/drill/exec/rpc/BasicClient.java 
f358097 
  exec/java-exec/src/main/java/org/apache/drill/exec/rpc/BasicServer.java 
c00df4e 
  
exec/java-exec/src/main/java/org/apache/drill/exec/rpc/NamedThreadFactory.java 
2b49579 
  
exec/java-exec/src/main/java/org/apache/drill/exec/rpc/ReconnectingConnection.java
 f214c4d 
  exec/java-exec/src/main/java/org/apache/drill/exec/rpc/RemoteConnection.java 
3a139f8 
  exec/java-exec/src/main/java/org/apache/drill/exec/rpc/RpcBus.java 5eab16a 
  
exec/java-exec/src/main/java/org/apache/drill/exec/rpc/control/Controller.java 
7f84a2b 
  
exec/java-exec/src/main/java/org/apache/drill/exec/rpc/control/ControllerImpl.java
 f8f6fd7 
  
exec/java-exec/src/main/java/org/apache/drill/exec/rpc/control/WorkEventBus.java
 d6b8637 
  
exec/java-exec/src/main/java/org/apache/drill/exec/rpc/data/DataConnectionCreator.java
 33f0d09 
  
exec/java-exec/src/main/java/org/apache/drill/exec/rpc/data/DataResponseHandlerImpl.java
 e0392fd 
  exec/java-exec/src/main/java/org/apache/drill/exec/rpc/data/DataTunnel.java 
5aa4aa6 
  exec/java-exec/src/main/java/org/apache/drill/exec/rpc/user/UserClient.java 
4e7fc92 
  exec/java-exec/src/main/java/org/apache/drill/exec/rpc/user/UserServer.java 
dffb9a1 
  exec/java-exec/src/main/java/org/apache/drill/exec/server/Drillbit.java 
6521303 
  
exec/java-exec/src/main/java/org/apache/drill/exec/server/DrillbitContext.java 
1b35aec 
  
exec/java-exec/src/main/java/org/apache/drill/exec/server/options/DrillConfigIterator.java
 5c2aede 
  
exec/java-exec/src/main/java/org/apache/drill/exec/server/options/SessionOptionManager.java
 45c0ce8 
  
exec/java-exec/src/main/java/org/apache/drill/exec/server/options/SystemOptionManager.java
 fa4725d 
  
exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/profile/ProfileResources.java
 ae04bad 
  exec/java-exec/src/main/java/org/apache/drill/exec/service/ServiceEngine.java 
ff6e13c 
  
exec/java-exec/src/main/java/org/apache/drill/exec/store/sys/local/FilePStore.java
 baa998d 
  
exec/java-exec/src/main/java/org/apache/drill/exec/testing/ExceptionInjection.java
 PRE-CREATION 
  
exec/java-exec/src/main/java/org/apache/drill/exec/testing/ExceptionInjector.java
 PRE-CREATION 
  exec/java-exec/src/main/java/org/apache/drill/exec/testing/InjectionSite.java 
PRE-CREATION 
  
exec/java-exec/src/main/java/org/apache/drill/exec/testing/SimulatedExceptions.java
 PRE-CREATION 
  exec/java-exec/src/main/java/org/apache/drill/exec/work/CancelableQuery.java 
5b11943 
  exec/java-exec/src/main/java/org/apache/drill/exec/work/QueryWorkUnit.java 
9743d6e 
  exec/java-exec/src/main/java/org/apache/drill/exec/work/StatusProvider.java 
6086f74 
  exec/java-exec/src/main/java/org/apache/drill/exec/work/WorkManager.java 
125c56d 
  
exec/java-exec/src/main/java/org/apache/drill/exec/work/batch/ControlHandlerImpl.java
 3228da9 
  
exec/java-exec/src/main/java/org/apache/drill/exec/work/batch/SpoolingRawBatchBuffer.java
 f0b4983 
  
exec/java-exec/src/main/java/org/apache/drill/exec/work/batch/UnlimitedRawBatchBuffer.java
 3d5b948 
  
exec/java-exec/src/main/java/org/apache/drill/exec/work/foreman/DrillbitStatusListener.java
 ca52f0c 
  exec/java-exec/src/main/java/org/apache/drill/exec/work/foreman/Foreman.java 
8e0780b 
  
exec/java-exec/src/main/java/org/apache/drill/exec/work/foreman/FragmentData.java
 52fd0a9 
  
exec/java-exec/src/main/java/org/apache/drill/exec/work/foreman/FragmentStatusListener.java
 6a719d2 
  
exec/java-exec/src/main/java/org/apache/drill/exec/work/foreman/QueryManager.java
 2de3592 
  
exec/java-exec/src/main/java/org/apache/drill/exec/work/foreman/QueryStatus.java
 4e18da6 
  
exec/java-exec/src/main/java/org/apache/drill/exec/work/fragment/FragmentExecutor.java
 e2f7bbf 
  
exec/java-exec/src/main/java/org/apache/drill/exec/work/fragment/NonRootFragmentManager.java
 3671804 
  
exec/java-exec/src/main/java/org/apache/drill/exec/work/fragment/RootFragmentManager.java
 54fc8c4 
  exec/java-exec/src/test/java/org/apache/drill/BaseTestQuery.java 775bccb 
  exec/java-exec/src/test/java/org/apache/drill/PlanTestBase.java 36091af 
  exec/java-exec/src/test/java/org/apache/drill/QueryTestUtil.java PRE-CREATION 
  exec/java-exec/src/test/java/org/apache/drill/SingleRowListener.java 
PRE-CREATION 
  exec/java-exec/src/test/java/org/apache/drill/TestBuilder.java 978e565 
  exec/java-exec/src/test/java/org/apache/drill/TestTpchDistributed.java 
e0f830d 
  exec/java-exec/src/test/java/org/apache/drill/exec/DrillSystemTestBase.java 
75ba3a9 
  exec/java-exec/src/test/java/org/apache/drill/exec/TestWithZookeeper.java 
bb69c9a 
  exec/java-exec/src/test/java/org/apache/drill/exec/ZookeeperHelper.java 
PRE-CREATION 
  
exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/SimpleRootExec.java
 0277876 
  
exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestComparisonFunctions.java
 609bc14 
  
exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestOptiqPlans.java
 2a0aedc 
  
exec/java-exec/src/test/java/org/apache/drill/exec/server/TestDrillbitResilience.java
 PRE-CREATION 
  
exec/java-exec/src/test/java/org/apache/drill/exec/testing/ExceptionInjectionUtil.java
 PRE-CREATION 
  
exec/java-exec/src/test/java/org/apache/drill/exec/testing/TestExceptionInjection.java
 PRE-CREATION 
  exec/jdbc/src/main/java/org/apache/drill/jdbc/DrillConnectionImpl.java 
2c51ec0 
  exec/jdbc/src/test/java/org/apache/drill/jdbc/test/JdbcAssert.java b88d880 
  protocol/pom.xml 8c3e9b0 
  protocol/src/main/java/org/apache/drill/common/types/TypeProtos.java 74ac444 
  protocol/src/main/java/org/apache/drill/exec/proto/BitControl.java 813d961 
  protocol/src/main/java/org/apache/drill/exec/proto/BitData.java 5de0a07 
  protocol/src/main/java/org/apache/drill/exec/proto/CoordinationProtos.java 
177e560 
  protocol/src/main/java/org/apache/drill/exec/proto/ExecProtos.java 7ca17f1 
  protocol/src/main/java/org/apache/drill/exec/proto/GeneralRPCProtos.java 
f47e719 
  protocol/src/main/java/org/apache/drill/exec/proto/SchemaDefProtos.java 
d7f3536 
  protocol/src/main/java/org/apache/drill/exec/proto/UserBitShared.java 5682a3b 
  protocol/src/main/java/org/apache/drill/exec/proto/UserProtos.java 048bd20 
  protocol/src/main/java/org/apache/drill/exec/proto/beans/QueryResult.java 
d8841e8 
  protocol/src/main/protobuf/UserBitShared.proto 8f05c45 

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


Testing
-------

mvn install
Functional - Passing - New
Advanced - TPCH SF100 - Parquet


Thanks,

Chris Westin

Reply via email to