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