[ 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)