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

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

Hi John,

ZK works by maintaining a heartbeat from ZK client to ZK server. That's how ZK 
implements that nifty feature where the ZK registrations for a Drillbit 
automagically disapper when the Drillbit dies: using "ephemeral" nodes that die 
as soon as the heartbeat stops. So, don't worry about performance.

Given that, having the Drillbit listen on a "cancellation" node could work. To 
address security, perhaps require that the content of the node be some special 
value or some such.

Generalizing, the Drillbit could have a "pluggable" shutdown mechnism with 
listeners for SIGTERM, ZK and REST.

To address the states, let's add an OFFLINE state between DRAINING and STOP. As 
you suggest, we can support two messages: one triggers the RUN --> DRAINING --> 
OFFLINE transition (or optionally, on to the STOP and exit states.) The other 
goes from OFFLINE --> RUN. This allows pausing a drillbit.

You asked about other SQL tools. The originator of this bug worked at Informix 
(where I also worked at a different time). The term "quiescent" in the bug 
title comes from a mode that Informix had: the DB would do roughly the same 
transitions as described here. The purpose was to put the DB files in a safe 
state to take a backup.

The race condition is addressed in a separate node below: we need changes to 
the query submission/query planning stages to solve that problem.

> 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