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

Paul Rogers commented on DRILL-4286:
------------------------------------

Thanks for the ideas. This is tricky stuff! To see where I'm coming from, 
assume an indefinte delay below:

* Get list of active Drillbits (those in RUN state)
* Do planning (assume very long delay here)
* Submit query to active drill bits

Then, assume some drillbit transitions to DRAINING during the planning step. If 
the planning is short (1 sec), then a grace period works. But, if the system is 
busy, what if the delay is 10s? 100s? At some point, a busy system will exceed 
the grace period in the draining drillbit. The longer the grace period, the 
longer a Drillbit must want to transition from DRAINING to exit (it must wait 
for stragglers.) Shorter grace periods result in more failures at submit time.

My thought is to turn this from a probablistic solution into a definite one by 
either 1) stating intentions to drillbits before doing planning, or 2) handling 
the grace period timeout and retrying. Either can work. If we have something 
that fails 1 time in 100, or 1 time in 1000, that just makes for more hair 
pulling for the engineer who has to track down the problem. So, we need 
something that works all the time, even in outlier situations.

I think we've got a good sketch. Now we just need to identify someone who can 
take this to a detailed design. As they say, the devil is always in the details.

> Have an ability to put server in quiescent mode of operation
> ------------------------------------------------------------
>
>                 Key: DRILL-4286
>                 URL: https://issues.apache.org/jira/browse/DRILL-4286
>             Project: Apache Drill
>          Issue Type: New Feature
>          Components: Execution - Flow
>            Reporter: Victoria Markman
>
> I think drill will benefit from mode of operation that is called "quiescent" 
> in some databases. 
> From IBM Informix server documentation:
> {code}
> Change gracefully from online to quiescent mode
> Take the database server gracefully from online mode to quiescent mode to 
> restrict access to the database server without interrupting current 
> processing. After you perform this task, the database server sets a flag that 
> prevents new sessions from gaining access to the database server. The current 
> sessions are allowed to finish processing. After you initiate the mode 
> change, it cannot be canceled. During the mode change from online to 
> quiescent, the database server is considered to be in Shutdown mode.
> {code}
> This is different from shutdown, when processes are terminated. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to