drill-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DRILL-4841) Use user server event loop group for web clients
Date Thu, 06 Oct 2016 22:08:21 GMT

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

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

Github user paul-rogers commented on a diff in the pull request:

    https://github.com/apache/drill/pull/565#discussion_r82266904
  
    --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/client/DrillClient.java ---
    @@ -688,4 +802,142 @@ public DrillBuf getBuffer() {
           return null;
         }
       }
    +
    +  /**
    +   * Return a new {@link DrillClient.Builder Drill client builder}.
    +   * @return a new builder
    +   */
    +  public static Builder newBuilder() {
    +    return new Builder();
    +  }
    +
    +  /**
    +   * Helper class to construct a {@link DrillClient Drill client}.
    +   */
    +  public static class Builder {
    +
    +    private DrillConfig config;
    +    private BufferAllocator allocator;
    +    private ClusterCoordinator clusterCoordinator;
    +    private EventLoopGroup eventLoopGroup;
    +    private ExecutorService executor;
    +
    +    // defaults
    +    private boolean supportComplexTypes = true;
    +    private boolean isDirectConnection = false;
    +
    +    /**
    +     * Sets the {@link DrillConfig configuration} for this client.
    +     *
    +     * @param drillConfig drill configuration
    +     * @return this builder
    +     */
    +    public Builder setConfig(DrillConfig drillConfig) {
    +      this.config = drillConfig;
    +      return this;
    +    }
    +
    +    /**
    +     * Sets the {@link DrillConfig configuration} for this client based on the given
file.
    +     *
    +     * @param fileName configuration file name
    +     * @return this builder
    +     */
    +    public Builder setConfigFromFile(final String fileName) {
    +      this.config = DrillConfig.create(fileName);
    +      return this;
    +    }
    +
    +    /**
    +     * Sets the {@link BufferAllocator buffer allocator} to be used by this client.
    +     * If this is not set, an allocator will be created based on the configuration.
    --- End diff --
    
    But, what if I don't provide a config? Or, create my own? What do I have to set in that
config to make it work?
    
    More to the point, WHEN do I have to provide my own root? When I do multiple clients in
a single app? If so, can we provide a short example showing how this works?
    
    Even easier, can the builder itself create a static allocator that it shares across connections?


> Use user server event loop group for web clients
> ------------------------------------------------
>
>                 Key: DRILL-4841
>                 URL: https://issues.apache.org/jira/browse/DRILL-4841
>             Project: Apache Drill
>          Issue Type: Improvement
>          Components: Client - HTTP
>            Reporter: Sudheesh Katkam
>            Assignee: Sorabh Hamirwasia
>            Priority: Minor
>
> Currently we spawn an event loop group for handling requests from clients. This group
should also be used to handles responses (from server) for web clients.



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

Mime
View raw message