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

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

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

    https://github.com/apache/drill/pull/396#discussion_r55112202
  
    --- Diff: contrib/native/client/example/pooledConnections.cpp ---
    @@ -0,0 +1,300 @@
    +/*
    + * Licensed to the Apache Software Foundation (ASF) under one
    + * or more contributor license agreements.  See the NOTICE file
    + * distributed with this work for additional information
    + * regarding copyright ownership.  The ASF licenses this file
    + * to you under the Apache License, Version 2.0 (the
    + * "License"); you may not use this file except in compliance
    + * with the License.  You may obtain a copy of the License at
    + *
    + * http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +
    +#include <fstream>
    +#include <iostream>
    +#include <stdio.h>
    +#include <stdlib.h>
    +#include <boost/thread.hpp>
    +#include "drill/drillc.hpp"
    +
    +int nOptions=5;
    +
    +struct Option{
    +    char name[32];
    +    char desc[128];
    +    bool required;
    +}qsOptions[]= {
    +    {"query", "Query strings, separated by semicolons", true},
    +    {"connectStr", "Connect string", true},
    +    {"logLevel", "Logging level [trace|debug|info|warn|error|fatal]", 
false},
    +    {"numConnections", "Number of simultaneous connections", true},
    +    {"numIterations", "Number of iterations to run. Each query is sent to 
each connection this many times", true}
    +};
    +
    +std::map<std::string, std::string> qsOptionValues;
    +
    +const char* exceptionInject="alter session set 
`drill.exec.testing.controls` = '{ \"injections\" : [{ 
\"type\":\"exception\",\"siteClass\":\"org.apache.drill.exec.work.fragment.FragmentExecutor\",\"desc\":\"fragment-execution\",\"nSkip\":0,\"nFire\":1,\"exceptionClass\":\"java.lang.OutOfMemoryError\"}]}'";
    +
    +Drill::status_t SchemaListener(void* ctx, Drill::FieldDefPtr fields, 
Drill::DrillClientError* err){
    +    if(!err){
    +        printf("SCHEMA CHANGE DETECTED:\n");
    +        for(size_t i=0; i<fields->size(); i++){
    +            std::string name= fields->at(i)->getName();
    +            printf("%s\t", name.c_str());
    +        }
    +        printf("\n");
    +        return Drill::QRY_SUCCESS ;
    +    }else{
    +        std::cerr<< "ERROR: " << err->msg << std::endl;
    +        return Drill::QRY_FAILURE;
    +    }
    +}
    +
    +boost::mutex listenerMutex;
    +Drill::status_t QueryResultsListener(void* ctx, Drill::RecordBatch* b, 
Drill::DrillClientError* err){
    +    boost::lock_guard<boost::mutex> listenerLock(listenerMutex);
    +    if(!err){
    +        if(b!=NULL){
    +            b->print(std::cout, 0); // print all rows
    +            std::cout << "DATA RECEIVED ..." << std::endl;
    +            delete b; // we're done with this batch, we can delete it
    +            return Drill::QRY_FAILURE;
    +        }else{
    +            std::cout << "Query Complete." << std::endl;
    +            return Drill::QRY_SUCCESS;
    +           }
    +    }else{
    +        assert(b==NULL);
    +        switch(err->status) {
    +            case Drill::QRY_COMPLETED:
    +            case Drill::QRY_CANCELED:
    +                std::cerr<< "INFO: " << err->msg << std::endl;
    +                return Drill::QRY_SUCCESS;
    --- End diff --
    
    Confusing, since query succeeds when error != null ?


> C++ client - Improve method of drillbit selection from cluster
> --------------------------------------------------------------
>
>                 Key: DRILL-4313
>                 URL: https://issues.apache.org/jira/browse/DRILL-4313
>             Project: Apache Drill
>          Issue Type: Improvement
>            Reporter: Parth Chandra
>            Assignee: Parth Chandra
>             Fix For: 1.6.0
>
>
> The current C++ client handles multiple parallel queries over the same 
> connection, but that creates a bottleneck as the queries get sent to the same 
> drillbit.
> The client can manage this more effectively by choosing from a configurable 
> pool of connections and round robin queries to them.



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

Reply via email to