sohami commented on a change in pull request #1677: DRILL-7068: Support memory adjustment framework for resource manageme… URL: https://github.com/apache/drill/pull/1677#discussion_r263040924
########## File path: exec/java-exec/src/main/java/org/apache/drill/exec/planner/fragment/QueryParallelizer.java ########## @@ -0,0 +1,62 @@ +/* + * 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. + */ +package org.apache.drill.exec.planner.fragment; + +import org.apache.drill.common.exceptions.ExecutionSetupException; +import org.apache.drill.exec.proto.BitControl.QueryContextInformation; +import org.apache.drill.exec.proto.CoordinationProtos.DrillbitEndpoint; +import org.apache.drill.exec.proto.UserBitShared.QueryId; +import org.apache.drill.exec.rpc.user.UserSession; +import org.apache.drill.exec.server.options.OptionList; +import org.apache.drill.exec.work.QueryWorkUnit; + +import java.util.Collection; + +/** + * This class parallelizes the query plan. Once the optimizer finishes its job by producing a + * optimized plan, it is the job of this parallelizer to generate a parallel plan out of the + * optimized physical plan. It does so by using the optimizers estimates for row count etc. + * There are two kinds of parallelizers as explained below. Currently these both parallelizers + * differ only in memory assignment for the physical operators. + * + * a) Default Parallelizer: It optimistically assumes that the whole cluster is running only the + * current query and based on hueristics assigns the optimal memory to the buffered operators. + * + * b) Queue Parallelizer: This parallelizer computes the memory that can be allocated at best based + * on the current cluster state and also the configuraiton of the queue that it can run on. Review comment: In what ways will parallelizer consider the current cluster state ? ---------------------------------------------------------------- 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: [email protected] With regards, Apache Git Services
