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

ASF GitHub Bot commented on DRILL-4286:
---------------------------------------

Github user bitblender commented on a diff in the pull request:

    https://github.com/apache/drill/pull/921#discussion_r148171637
  
    --- Diff: 
exec/java-exec/src/main/java/org/apache/drill/exec/coord/local/LocalClusterCoordinator.java
 ---
    @@ -85,13 +88,62 @@ public void unregister(final RegistrationHandle handle) 
{
         endpoints.remove(handle);
       }
     
    +  /**
    +   * Update drillbit endpoint state. Drillbit advertises its
    +   * state. State information is used during planning and initial
    +   * client connection phases.
    +   */
    +  @Override
    +  public RegistrationHandle update(RegistrationHandle handle, State state) 
{
    +    DrillbitEndpoint endpoint = handle.getEndPoint();
    +    endpoint = endpoint.toBuilder().setState(state).build();
    +    handle.setEndPoint(endpoint);
    +    endpoints.put(handle,endpoint);
    +    return handle;
    +  }
    +
       @Override
       public Collection<DrillbitEndpoint> getAvailableEndpoints() {
         return endpoints.values();
       }
     
    +  /**
    +   * Get a collection of ONLINE Drillbit endpoints by excluding the 
drillbits
    +   * that are in QUIESCENT state (drillbits shutting down). Primarily used 
by the planner
    +   * to plan queries only on ONLINE drillbits and used by the client 
during initial connection
    +   * phase to connect to a drillbit (foreman)
    +   * @return A collection of ONLINE endpoints
    +   */
    +  @Override
    +  public Collection<DrillbitEndpoint> getOnlineEndPoints() {
    +    Collection<DrillbitEndpoint> runningEndPoints = new ArrayList<>();
    +    for (DrillbitEndpoint endpoint: endpoints.values()){
    +      if(!endpoint.hasState() || endpoint.getState().equals(State.ONLINE)) 
{
    +        runningEndPoints.add(endpoint);
    +      }
    +    }
    +    return runningEndPoints;
    +  }
    +
       private class Handle implements RegistrationHandle {
         private final UUID id = UUID.randomUUID();
    +    private DrillbitEndpoint drillbitEndpoint;
    +
    +    /**
    +     * Get the drillbit endpoint associated with the registration handle
    +     * @return drillbit endpoint
    +     */
    +    public DrillbitEndpoint getEndPoint() {
    +      return drillbitEndpoint;
    +    }
    +
    +    public void setEndPoint( DrillbitEndpoint endpoint) {
    --- End diff --
    
    spacing


> 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
>            Assignee: Venkata Jyothsna Donapati
>            Priority: Major
>
> 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.4.14#64029)

Reply via email to