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

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_r151003788
  
    --- Diff: 
exec/java-exec/src/main/java/org/apache/drill/exec/server/DrillbitContext.java 
---
    @@ -157,10 +157,29 @@ public DrillConfig getConfig() {
         return context.getConfig();
       }
     
    -  public Collection<DrillbitEndpoint> getBits() {
    +  public Collection<DrillbitEndpoint> getAvailableBits() {
         return coord.getAvailableEndpoints();
       }
     
    +  public Collection<DrillbitEndpoint> getBits() {
    +    return coord.getOnlineEndPoints();
    +  }
    +  
    +  public boolean isOnline(DrillbitEndpoint endpoint) { return 
endpoint.getState().equals(DrillbitEndpoint.State.ONLINE); }
    +
    +  public boolean isForemanOnline() {
    +    DrillbitEndpoint foreman = getEndpoint();
    +    Collection<DrillbitEndpoint> dbs = getAvailableBits();
    +    for( DrillbitEndpoint db : dbs) {
    +      if( db.getAddress().equals(foreman.getAddress()) && db.getUserPort() 
== foreman.getUserPort()) {
    --- End diff --
    
    Can you please explain the logic in isForemanOnline(). Why do you have to 
get the list of endpoints from ZK and then check for foreman in that list 
before making the isOnline test ? Why can't it be done on the foreman object? 
Is this to make sure that the state is updated in ZK before refusing to take 
queries ?
    Why do you assume that the foreman is online if the foreman is not found in 
the list of endPoints? 
    i.e. if it is not in the dbs list
    why do you return true in that case ?


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