Skip to content

Commit

Permalink
HIVE-2217: add Query text for debugging in lock data (Jiayan Jiang vi…
Browse files Browse the repository at this point in the history
…a He Yongqiang)

git-svn-id: https://svn.apache.org/repos/asf/hive/trunk@1170260 13f79535-47bb-0310-9956-ffa450edef68
  • Loading branch information
Yongqiang He committed Sep 13, 2011
1 parent 58cd597 commit 654eb71
Show file tree
Hide file tree
Showing 9 changed files with 72 additions and 14 deletions.
16 changes: 16 additions & 0 deletions ql/src/java/org/apache/hadoop/hive/ql/Context.java
Expand Up @@ -73,6 +73,7 @@ public class Context {
private final Configuration conf;
protected int pathid = 10000;
protected boolean explain = false;
protected String cmd = "";
// number of previous attempts
protected int tryCount = 0;
private TokenRewriteStream tokenRewriteStream;
Expand Down Expand Up @@ -125,6 +126,21 @@ public boolean getExplain () {
return explain;
}

/**
* Set the original query command.
* @param cmd the original query command string
*/
public void setCmd(String cmd) {
this.cmd = cmd;
}

/**
* Find the original query command.
* @return the original query command string
*/
public String getCmd () {
return cmd;
}

/**
* Get a tmp directory on specified URI
Expand Down
7 changes: 5 additions & 2 deletions ql/src/java/org/apache/hadoop/hive/ql/Driver.java
Expand Up @@ -410,6 +410,7 @@ public int compile(String command, boolean resetTaskIds) {
command = new VariableSubstitution().substitute(conf,command);
ctx = new Context(conf);
ctx.setTryCount(getTryCount());
ctx.setCmd(command);

ParseDriver pd = new ParseDriver();
ASTNode tree = pd.parse(command, ctx);
Expand Down Expand Up @@ -706,7 +707,8 @@ private List<HiveLockObj> getLockObjects(Table t, Partition p, HiveLockMode mode
HiveLockObjectData lockData =
new HiveLockObjectData(plan.getQueryId(),
String.valueOf(System.currentTimeMillis()),
"IMPLICIT");
"IMPLICIT",
plan.getQueryStr());

if (t != null) {
locks.add(new HiveLockObj(new HiveLockObject(t, lockData), mode));
Expand Down Expand Up @@ -806,7 +808,8 @@ else if (output.getTyp() == WriteEntity.Type.DUMMYPARTITION) {
HiveLockObjectData lockData =
new HiveLockObjectData(plan.getQueryId(),
String.valueOf(System.currentTimeMillis()),
"IMPLICIT");
"IMPLICIT",
plan.getQueryStr());

// Lock the database also
try {
Expand Down
15 changes: 10 additions & 5 deletions ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java
Expand Up @@ -1976,12 +1976,16 @@ public int compare(HiveLock o1, HiveLock o2) {
outStream.write(separator);
outStream.writeBytes(lock.getHiveLockMode().toString());
if (isExt) {
outStream.write(terminator);
HiveLockObjectData lockData = lock.getHiveLockObject().getData();
if (lockData != null) {
outStream.writeBytes("LOCK_QUERYID:" + lockData.getQueryId() + " ");
outStream.writeBytes("LOCK_TIME:" + lockData.getLockTime() + " ");
outStream.writeBytes("LOCK_MODE:" + lockData.getLockMode() + " ");
outStream.write(terminator);
outStream.writeBytes("LOCK_QUERYID:" + lockData.getQueryId());
outStream.write(terminator);
outStream.writeBytes("LOCK_TIME:" + lockData.getLockTime());
outStream.write(terminator);
outStream.writeBytes("LOCK_MODE:" + lockData.getLockMode());
outStream.write(terminator);
outStream.writeBytes("LOCK_QUERYSTRING:" + lockData.getQueryStr());
}
}
outStream.write(terminator);
Expand Down Expand Up @@ -2029,7 +2033,8 @@ private int lockTable(LockTableDesc lockTbl) throws HiveException {
HiveLockObjectData lockData =
new HiveLockObjectData(lockTbl.getQueryId(),
String.valueOf(System.currentTimeMillis()),
"EXPLICIT");
"EXPLICIT",
lockTbl.getQueryStr());

if (partSpec == null) {
HiveLock lck = lockMgr.lock(new HiveLockObject(tbl, lockData), mode, true);
Expand Down
12 changes: 10 additions & 2 deletions ql/src/java/org/apache/hadoop/hive/ql/lockmgr/HiveLockObject.java
Expand Up @@ -31,13 +31,16 @@ public static class HiveLockObjectData {
private String lockTime; // time at which lock was acquired
// mode of the lock: EXPLICIT(lock command)/IMPLICIT(query)
private String lockMode;
private String queryStr;

public HiveLockObjectData(String queryId,
String lockTime,
String lockMode) {
String lockMode,
String queryStr) {
this.queryId = queryId;
this.lockTime = lockTime;
this.lockMode = lockMode;
this.queryStr = queryStr.trim();
}


Expand All @@ -50,6 +53,7 @@ public HiveLockObjectData(String data) {
queryId = elem[0];
lockTime = elem[1];
lockMode = elem[2];
queryStr = elem[3];
}

public String getQueryId() {
Expand All @@ -64,8 +68,12 @@ public String getLockMode() {
return lockMode;
}

public String getQueryStr() {
return queryStr;
}

public String toString() {
return queryId + ":" + lockTime + ":" + lockMode;
return queryId + ":" + lockTime + ":" + lockMode + ":" + queryStr;
}
}

Expand Down
Expand Up @@ -1571,6 +1571,7 @@ private void analyzeLockTable(ASTNode ast)

LockTableDesc lockTblDesc = new LockTableDesc(tableName, mode, partSpec,
HiveConf.getVar(conf, ConfVars.HIVEQUERYID));
lockTblDesc.setQueryStr(this.ctx.getCmd());
rootTasks.add(TaskFactory.get(new DDLWork(getInputs(), getOutputs(),
lockTblDesc), conf));

Expand Down
9 changes: 9 additions & 0 deletions ql/src/java/org/apache/hadoop/hive/ql/plan/LockTableDesc.java
Expand Up @@ -35,6 +35,7 @@ public class LockTableDesc extends DDLDesc implements Serializable {
private String mode;
private Map<String, String> partSpec;
private String queryId;
private String queryStr;

public LockTableDesc() {
}
Expand Down Expand Up @@ -77,4 +78,12 @@ public String getQueryId() {
public void setQueryId(String queryId) {
this.queryId = queryId;
}

public String getQueryStr() {
return queryStr;
}

public void setQueryStr(String queryStr) {
this.queryStr = queryStr;
}
}
1 change: 1 addition & 0 deletions ql/src/test/org/apache/hadoop/hive/ql/QTestUtil.java
Expand Up @@ -948,6 +948,7 @@ public int checkCliDriverResults(String tname) throws Exception {
"-I", "at junit",
"-I", "Caused by:",
"-I", "LOCK_QUERYID:",
"-I", "LOCK_TIME:",
"-I", "grantTime",
"-I", "[.][.][.] [0-9]* more",
"-I", "job_[0-9]*_[0-9]*",
Expand Down
20 changes: 16 additions & 4 deletions ql/src/test/results/clientpositive/lock1.q.out
Expand Up @@ -56,7 +56,10 @@ POSTHOOK: type: SHOWLOCKS
POSTHOOK: Lineage: tstsrc.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
POSTHOOK: Lineage: tstsrc.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
default@tstsrc SHARED
LOCK_QUERYID:njain_20101206231818_eec284bc-9a38-4ba5-b59e-7bc770db8bd2 LOCK_TIME:1291706323232 LOCK_MODE:EXPLICIT
LOCK_QUERYID:jiayan_20110907105858_10aedc77-c380-4192-871e-83b17567adab
LOCK_TIME:1315418321759
LOCK_MODE:EXPLICIT
LOCK_QUERYSTRING:LOCK TABLE tstsrc shared
PREHOOK: query: UNLOCK TABLE tstsrc
PREHOOK: type: UNLOCKTABLE
POSTHOOK: query: UNLOCK TABLE tstsrc
Expand Down Expand Up @@ -101,7 +104,10 @@ POSTHOOK: type: SHOWLOCKS
POSTHOOK: Lineage: tstsrc.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
POSTHOOK: Lineage: tstsrc.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
default@tstsrc SHARED
LOCK_QUERYID:njain_20101206231818_8eee6b8f-abba-41f5-8e70-e6c216d488cc LOCK_TIME:1291706324145 LOCK_MODE:EXPLICIT
LOCK_QUERYID:jiayan_20110907105858_752a7b55-7426-4970-8e3a-af74dc557b70
LOCK_TIME:1315418322548
LOCK_MODE:EXPLICIT
LOCK_QUERYSTRING:lock TABLE tstsrc SHARED
PREHOOK: query: SHOW LOCKS tstsrc
PREHOOK: type: SHOWLOCKS
POSTHOOK: query: SHOW LOCKS tstsrc
Expand Down Expand Up @@ -130,9 +136,15 @@ POSTHOOK: type: SHOWLOCKS
POSTHOOK: Lineage: tstsrc.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
POSTHOOK: Lineage: tstsrc.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
default@tstsrc SHARED
LOCK_QUERYID:njain_20101206231818_d29191d9-ed78-4e6d-80df-2fc47d70adef LOCK_TIME:1291706324583 LOCK_MODE:EXPLICIT
LOCK_QUERYID:jiayan_20110907105858_752a7b55-7426-4970-8e3a-af74dc557b70
LOCK_TIME:1315418322548
LOCK_MODE:EXPLICIT
LOCK_QUERYSTRING:lock TABLE tstsrc SHARED
default@tstsrc SHARED
LOCK_QUERYID:njain_20101206231818_8eee6b8f-abba-41f5-8e70-e6c216d488cc LOCK_TIME:1291706324145 LOCK_MODE:EXPLICIT
LOCK_QUERYID:jiayan_20110907105858_fa544f90-07cc-4176-813c-ed9a91bc56ac
LOCK_TIME:1315418322895
LOCK_MODE:EXPLICIT
LOCK_QUERYSTRING:LOCK TABLE tstsrc SHARED
PREHOOK: query: SHOW LOCKS tstsrc
PREHOOK: type: SHOWLOCKS
POSTHOOK: query: SHOW LOCKS tstsrc
Expand Down
5 changes: 4 additions & 1 deletion ql/src/test/results/clientpositive/lock2.q.out
Expand Up @@ -106,7 +106,10 @@ POSTHOOK: Lineage: tstsrc.value SIMPLE [(src)src.FieldSchema(name:value, type:st
POSTHOOK: Lineage: tstsrcpart PARTITION(ds=2008-04-08,hr=11).key SIMPLE [(srcpart)srcpart.FieldSchema(name:key, type:string, comment:default), ]
POSTHOOK: Lineage: tstsrcpart PARTITION(ds=2008-04-08,hr=11).value SIMPLE [(srcpart)srcpart.FieldSchema(name:value, type:string, comment:default), ]
default@tstsrcpart@ds=2008-04-08/hr=11 EXCLUSIVE
LOCK_QUERYID:njain_20101206171111_df7566b7-88ed-482a-827f-6cc3fac55d63 LOCK_TIME:1291684308414 LOCK_MODE:EXPLICIT
LOCK_QUERYID:jiayan_20110907111919_b1ed9c04-a24b-432e-be72-4953089559b9
LOCK_TIME:1315419586383
LOCK_MODE:EXPLICIT
LOCK_QUERYSTRING:LOCK TABLE tstsrcpart PARTITION(ds='2008-04-08', hr='11') EXCLUSIVE
PREHOOK: query: UNLOCK TABLE tstsrc
PREHOOK: type: UNLOCKTABLE
POSTHOOK: query: UNLOCK TABLE tstsrc
Expand Down

0 comments on commit 654eb71

Please sign in to comment.