elonazoulay commented on a change in pull request #5717:
URL: https://github.com/apache/incubator-pinot/pull/5717#discussion_r460430593



##########
File path: 
pinot-server/src/main/java/org/apache/pinot/server/starter/grpc/PinotQueryHandler.java
##########
@@ -18,18 +18,258 @@
  */
 package org.apache.pinot.server.starter.grpc;
 
+import com.google.common.base.Preconditions;
 import io.grpc.stub.StreamObserver;
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.pinot.common.exception.QueryException;
+import org.apache.pinot.common.metrics.ServerMeter;
+import org.apache.pinot.common.metrics.ServerMetrics;
+import org.apache.pinot.common.metrics.ServerQueryPhase;
 import org.apache.pinot.common.proto.PinotQueryServerGrpc;
 import org.apache.pinot.common.proto.Server;
+import org.apache.pinot.common.utils.CommonConstants;
+import org.apache.pinot.common.utils.DataTable;
+import org.apache.pinot.core.common.datatable.DataTableImplV2;
+import org.apache.pinot.core.common.datatable.DataTableUtils;
+import org.apache.pinot.core.data.manager.InstanceDataManager;
+import org.apache.pinot.core.data.manager.SegmentDataManager;
+import org.apache.pinot.core.data.manager.TableDataManager;
+import org.apache.pinot.core.indexsegment.IndexSegment;
+import org.apache.pinot.core.indexsegment.mutable.MutableSegment;
+import org.apache.pinot.core.plan.Plan;
+import org.apache.pinot.core.plan.maker.InstancePlanMakerImplV2;
+import org.apache.pinot.core.plan.maker.PlanMaker;
+import org.apache.pinot.core.query.config.QueryExecutorConfig;
+import org.apache.pinot.core.query.exception.BadQueryRequestException;
+import org.apache.pinot.core.query.pruner.SegmentPrunerService;
+import org.apache.pinot.core.query.request.ServerQueryRequest;
+import org.apache.pinot.core.query.request.context.QueryContext;
+import org.apache.pinot.core.query.request.context.TimerContext;
+import org.apache.pinot.core.segment.index.metadata.SegmentMetadata;
+import org.apache.pinot.core.util.QueryOptions;
+import org.apache.pinot.core.util.trace.TraceContext;
+import org.apache.pinot.spi.env.PinotConfiguration;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ExecutorService;
 
 /**
  * Handler for grpc server requests.
  * As data becomes available server responses will be added to the result 
stream.
  * Once the request is complete the client will aggregate the result metadata.
  */
 public class PinotQueryHandler extends 
PinotQueryServerGrpc.PinotQueryServerImplBase {
+  private static final Logger LOGGER = 
LoggerFactory.getLogger(PinotQueryHandler.class);
+
+  private InstanceDataManager _instanceDataManager = null;
+  private SegmentPrunerService _segmentPrunerService = null;
+  private PlanMaker _planMaker = null;
+  private long _defaultTimeOutMs = 
CommonConstants.Server.DEFAULT_QUERY_EXECUTOR_TIMEOUT_MS;
+  private ServerMetrics _serverMetrics;
+
+  public synchronized void init(PinotConfiguration config, InstanceDataManager 
instanceDataManager,
+                                ServerMetrics serverMetrics)
+      throws ConfigurationException {
+    _instanceDataManager = instanceDataManager;
+    _serverMetrics = serverMetrics;
+    QueryExecutorConfig queryExecutorConfig = new QueryExecutorConfig(config);
+    if (queryExecutorConfig.getTimeOut() > 0) {
+      _defaultTimeOutMs = queryExecutorConfig.getTimeOut();
+    }
+    LOGGER.info("Default timeout for query executor : {}", _defaultTimeOutMs);
+    LOGGER.info("Trying to build SegmentPrunerService");
+    _segmentPrunerService = new 
SegmentPrunerService(queryExecutorConfig.getPrunerConfig());
+    LOGGER.info("Trying to build QueryPlanMaker");
+    _planMaker = new InstancePlanMakerImplV2(queryExecutorConfig);
+    LOGGER.info("Trying to build QueryExecutorTimer");
+  }
+
+  /**
+   * Submit a streaming request to the server
+   * @param request
+   * @param responseObserver
+   */
   @Override
   public void submit(Server.ServerRequest request, 
StreamObserver<Server.ServerResponse> responseObserver) {
+    // TODO: implement, follow up whether to use ServerQueryRequest
+  }
+
+  public DataTable processQuery(ServerQueryRequest queryRequest,

Review comment:
       Will be pushing an update for this as well.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org
For additional commands, e-mail: commits-h...@pinot.apache.org

Reply via email to