You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ai...@apache.org on 2015/11/23 19:04:25 UTC
hive git commit: HIVE-12456: QueryId can't be stored in the
configuration of the SessionState since multiple queries can run in a single
session (Aihua Xu, reviewed by Mohit)
Repository: hive
Updated Branches:
refs/heads/master f90d798e8 -> 2604cf26a
HIVE-12456: QueryId can't be stored in the configuration of the SessionState since multiple queries can run in a single session (Aihua Xu, reviewed by Mohit)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/2604cf26
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/2604cf26
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/2604cf26
Branch: refs/heads/master
Commit: 2604cf26ae36c4211bf155e2032398cc7344f641
Parents: f90d798
Author: Aihua Xu <ai...@apache.org>
Authored: Mon Nov 23 12:20:39 2015 -0500
Committer: Aihua Xu <ai...@apache.org>
Committed: Mon Nov 23 12:20:39 2015 -0500
----------------------------------------------------------------------
.../cli/operation/ExecuteStatementOperation.java | 15 +--------------
.../hive/service/cli/operation/Operation.java | 19 +++++++++++++++----
.../hive/service/cli/operation/SQLOperation.java | 4 ++--
.../service/cli/session/HiveSessionImpl.java | 1 -
4 files changed, 18 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/2604cf26/service/src/java/org/apache/hive/service/cli/operation/ExecuteStatementOperation.java
----------------------------------------------------------------------
diff --git a/service/src/java/org/apache/hive/service/cli/operation/ExecuteStatementOperation.java b/service/src/java/org/apache/hive/service/cli/operation/ExecuteStatementOperation.java
index 3f2de10..b3d9b52 100644
--- a/service/src/java/org/apache/hive/service/cli/operation/ExecuteStatementOperation.java
+++ b/service/src/java/org/apache/hive/service/cli/operation/ExecuteStatementOperation.java
@@ -18,7 +18,6 @@
package org.apache.hive.service.cli.operation;
import java.sql.SQLException;
-import java.util.HashMap;
import java.util.Map;
import org.apache.hadoop.hive.ql.processors.CommandProcessor;
@@ -29,13 +28,11 @@ import org.apache.hive.service.cli.session.HiveSession;
public abstract class ExecuteStatementOperation extends Operation {
protected String statement = null;
- protected Map<String, String> confOverlay = new HashMap<String, String>();
public ExecuteStatementOperation(HiveSession parentSession, String statement,
Map<String, String> confOverlay, boolean runInBackground) {
- super(parentSession, OperationType.EXECUTE_STATEMENT, runInBackground);
+ super(parentSession, confOverlay, OperationType.EXECUTE_STATEMENT, runInBackground);
this.statement = statement;
- setConfOverlay(confOverlay);
}
public String getStatement() {
@@ -57,14 +54,4 @@ public abstract class ExecuteStatementOperation extends Operation {
}
return new HiveCommandOperation(parentSession, statement, processor, confOverlay);
}
-
- protected Map<String, String> getConfOverlay() {
- return confOverlay;
- }
-
- protected void setConfOverlay(Map<String, String> confOverlay) {
- if (confOverlay != null) {
- this.confOverlay = confOverlay;
- }
- }
}
http://git-wip-us.apache.org/repos/asf/hive/blob/2604cf26/service/src/java/org/apache/hive/service/cli/operation/Operation.java
----------------------------------------------------------------------
diff --git a/service/src/java/org/apache/hive/service/cli/operation/Operation.java b/service/src/java/org/apache/hive/service/cli/operation/Operation.java
index d13415e..25cefc2 100644
--- a/service/src/java/org/apache/hive/service/cli/operation/Operation.java
+++ b/service/src/java/org/apache/hive/service/cli/operation/Operation.java
@@ -21,11 +21,14 @@ import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.EnumSet;
+import java.util.HashMap;
+import java.util.Map;
import java.util.Set;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import com.google.common.collect.Sets;
+
import org.apache.hadoop.hive.common.metrics.common.Metrics;
import org.apache.hadoop.hive.common.metrics.common.MetricsConstant;
import org.apache.hadoop.hive.common.metrics.common.MetricsFactory;
@@ -50,8 +53,8 @@ import org.apache.logging.log4j.ThreadContext;
public abstract class Operation {
// Constants of the key strings for the log4j ThreadContext.
- private static final String QUERYID = "QueryId";
- private static final String SESSIONID = "SessionId";
+ public static final String SESSIONID_LOG_KEY = "sessionId";
+ public static final String QUERYID_LOG_KEY = "queryId";
protected final HiveSession parentSession;
private OperationState state = OperationState.INITIALIZED;
@@ -67,6 +70,7 @@ public abstract class Operation {
protected volatile Future<?> backgroundHandle;
protected OperationLog operationLog;
protected boolean isOperationLogEnabled;
+ protected Map<String, String> confOverlay = new HashMap<String, String>();
private long operationTimeout;
private long lastAccessTime;
@@ -75,7 +79,14 @@ public abstract class Operation {
EnumSet.of(FetchOrientation.FETCH_NEXT,FetchOrientation.FETCH_FIRST);
protected Operation(HiveSession parentSession, OperationType opType, boolean runInBackground) {
+ this(parentSession, null, opType, runInBackground);
+ }
+
+ protected Operation(HiveSession parentSession, Map<String, String> confOverlay, OperationType opType, boolean runInBackground) {
this.parentSession = parentSession;
+ if (confOverlay != null) {
+ this.confOverlay = confOverlay;
+ }
this.runAsync = runInBackground;
this.opHandle = new OperationHandle(opType, parentSession.getProtocolVersion());
lastAccessTime = System.currentTimeMillis();
@@ -258,8 +269,8 @@ public abstract class Operation {
* Register logging context so that Log4J can print QueryId and/or SessionId for each message
*/
protected void registerLoggingContext() {
- ThreadContext.put(QUERYID, SessionState.get().getQueryId());
- ThreadContext.put(SESSIONID, SessionState.get().getSessionId());
+ ThreadContext.put(SESSIONID_LOG_KEY, SessionState.get().getSessionId());
+ ThreadContext.put(QUERYID_LOG_KEY, confOverlay.get(HiveConf.ConfVars.HIVEQUERYID.varname));
}
/**
http://git-wip-us.apache.org/repos/asf/hive/blob/2604cf26/service/src/java/org/apache/hive/service/cli/operation/SQLOperation.java
----------------------------------------------------------------------
diff --git a/service/src/java/org/apache/hive/service/cli/operation/SQLOperation.java b/service/src/java/org/apache/hive/service/cli/operation/SQLOperation.java
index 8b42265..1331a99 100644
--- a/service/src/java/org/apache/hive/service/cli/operation/SQLOperation.java
+++ b/service/src/java/org/apache/hive/service/cli/operation/SQLOperation.java
@@ -466,12 +466,12 @@ public class SQLOperation extends ExecuteStatementOperation {
*/
private HiveConf getConfigForOperation() throws HiveSQLException {
HiveConf sqlOperationConf = getParentSession().getHiveConf();
- if (!getConfOverlay().isEmpty() || shouldRunAsync()) {
+ if (!confOverlay.isEmpty() || shouldRunAsync()) {
// clone the partent session config for this query
sqlOperationConf = new HiveConf(sqlOperationConf);
// apply overlay query specific settings, if any
- for (Map.Entry<String, String> confEntry : getConfOverlay().entrySet()) {
+ for (Map.Entry<String, String> confEntry : confOverlay.entrySet()) {
try {
sqlOperationConf.verifyAndSet(confEntry.getKey(), confEntry.getValue());
} catch (IllegalArgumentException e) {
http://git-wip-us.apache.org/repos/asf/hive/blob/2604cf26/service/src/java/org/apache/hive/service/cli/session/HiveSessionImpl.java
----------------------------------------------------------------------
diff --git a/service/src/java/org/apache/hive/service/cli/session/HiveSessionImpl.java b/service/src/java/org/apache/hive/service/cli/session/HiveSessionImpl.java
index 2d784f0..a14908b 100644
--- a/service/src/java/org/apache/hive/service/cli/session/HiveSessionImpl.java
+++ b/service/src/java/org/apache/hive/service/cli/session/HiveSessionImpl.java
@@ -443,7 +443,6 @@ public class HiveSessionImpl implements HiveSession {
if (queryId == null || queryId.isEmpty()) {
queryId = QueryPlan.makeQueryId();
confOverlay.put(HiveConf.ConfVars.HIVEQUERYID.varname, queryId);
- sessionState.getConf().setVar(HiveConf.ConfVars.HIVEQUERYID, queryId);
}
OperationManager operationManager = getOperationManager();