You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafodion.apache.org by db...@apache.org on 2016/05/25 20:34:29 UTC
[07/39] incubator-trafodion git commit: Fix for TRAFODION-1923
Fix for TRAFODION-1923
Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/ac298d39
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/ac298d39
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/ac298d39
Branch: refs/heads/master
Commit: ac298d39e93c221fd18ab7377fc830d31dba2659
Parents: 29fb212
Author: Prashant Vasudev <pr...@esgyn.com>
Authored: Wed May 4 00:15:51 2016 +0000
Committer: Prashant Vasudev <pr...@esgyn.com>
Committed: Wed May 4 00:15:51 2016 +0000
----------------------------------------------------------------------
.../TransactionalScanner.java.tmpl | 6 ++-
.../transactional/SplitBalanceHelper.java | 51 ++++++++++++++++++--
.../transactional/TrxRegionObserver.java.tmpl | 4 +-
core/sql/generator/GenPreCode.cpp | 1 -
core/sql/regress/tools/runregr_executor.ksh | 2 +-
.../java/org/trafodion/sql/HTableClient.java | 5 +-
6 files changed, 59 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/ac298d39/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/TransactionalScanner.java.tmpl
----------------------------------------------------------------------
diff --git a/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/TransactionalScanner.java.tmpl b/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/TransactionalScanner.java.tmpl
index 40bbeeb..618cd85 100755
--- a/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/TransactionalScanner.java.tmpl
+++ b/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/TransactionalScanner.java.tmpl
@@ -105,7 +105,7 @@ public class TransactionalScanner extends AbstractClientScanner {
@Override
public void close() {
- if(LOG.isTraceEnabled()) LOG.trace("close() -- ENTRY txID: " + ts.getTransactionId());
+ if(LOG.isTraceEnabled()) LOG.trace("close() -- ENTRY txID: " + ts.getTransactionId() + " " + this.ttable );
if(closed) {
if(LOG.isTraceEnabled()) LOG.trace("close() already closed -- EXIT txID: " + ts.getTransactionId());
return;
@@ -138,6 +138,10 @@ public class TransactionalScanner extends AbstractClientScanner {
}
}
catch(ServiceException se) {
+ if(LOG.isErrorEnabled())
+ LOG.error("close() -- CloseScanner ServiceException txID: " + ts.getTransactionId() +
+ "Exception :" , se);
+
this.interrupted = true;
this.closed = false;
}
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/ac298d39/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/coprocessor/transactional/SplitBalanceHelper.java
----------------------------------------------------------------------
diff --git a/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/coprocessor/transactional/SplitBalanceHelper.java b/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/coprocessor/transactional/SplitBalanceHelper.java
index 0d76b55..c1c23ce 100644
--- a/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/coprocessor/transactional/SplitBalanceHelper.java
+++ b/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/coprocessor/transactional/SplitBalanceHelper.java
@@ -25,7 +25,9 @@ package org.apache.hadoop.hbase.coprocessor.transactional;
import java.io.IOException;
import java.util.List;
+import java.util.Map;
import java.util.Set;
+import java.util.Iterator;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -36,6 +38,7 @@ import org.apache.hadoop.hbase.HRegionInfo;
import org.apache.hadoop.hbase.regionserver.HRegion;
import org.apache.hadoop.hbase.regionserver.transactional.TransactionalRegionScannerHolder;
import org.apache.hadoop.hbase.regionserver.transactional.TrxTransactionState;
+import org.apache.hadoop.hbase.regionserver.transactional.TransactionState;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hbase.zookeeper.ZKUtil;
import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;
@@ -240,8 +243,45 @@ public class SplitBalanceHelper {
}
}
- protected boolean scannersListClear(ConcurrentHashMap<Long, TransactionalRegionScannerHolder> scanners) throws IOException {
- return scanners.isEmpty();
+ //Returning true indicates scannerList is Clear.
+ protected boolean scannersListClear(ConcurrentHashMap<Long, TransactionalRegionScannerHolder> scanners,
+ ConcurrentHashMap<String, TrxTransactionState> transactionsById) throws IOException {
+ if(scanners.isEmpty())
+ {
+ if (LOG.isDebugEnabled()) LOG.debug("scannersListClear Scanners is empty: " + hri.getRegionNameAsString());
+ return true;
+ }
+ else
+ {
+ if (LOG.isDebugEnabled()) LOG.debug("scannersListClear Scanners is not empty: " + hri.getRegionNameAsString());
+ Iterator<Map.Entry<Long, TransactionalRegionScannerHolder>> scannerIter = scanners.entrySet().iterator();
+ TransactionalRegionScannerHolder rsh = null;
+ Map.Entry<Long, TransactionalRegionScannerHolder> entry;
+ while(scannerIter.hasNext())
+ {
+ entry = scannerIter.next();
+ rsh = entry.getValue();
+ if (rsh != null)
+ {
+ if (LOG.isDebugEnabled()) LOG.debug("scannersListClear Active Scanner is: "+ rsh.scannerId +
+ " Txid: "+ rsh.transId + " Region: " + hri.getRegionNameAsString());
+ String key = hri.getRegionNameAsString() + rsh.transId;
+ TrxTransactionState trxState = transactionsById.get(key);
+
+ //if trxState is present means there is activity with this region.
+ //Hence don't return true.
+ if(trxState != null)
+ {
+ LOG.info("scannersListClear Active Scanner found, ScannerId: " +
+ rsh.scannerId + " Txid: "+ rsh.transId + " Region: " + hri.getRegionNameAsString());
+ return false;
+
+ }
+ }
+ }
+ //Reaching here means, there is no active scanner.
+ return true;
+ }
}
protected void pendingWait(Set<TrxTransactionState> commitPendingTransactions, int pendingDelayLen) throws IOException {
@@ -258,6 +298,7 @@ public class SplitBalanceHelper {
}
}
+ /*
protected void scannersWait(ConcurrentHashMap<Long, TransactionalRegionScannerHolder> scanners, int pendingDelayLen)
throws IOException {
int count = 1;
@@ -272,11 +313,13 @@ public class SplitBalanceHelper {
}
}
}
+ */
protected void pendingAndScannersWait(Set<TrxTransactionState> commitPendingTransactions,
- ConcurrentHashMap<Long, TransactionalRegionScannerHolder> scanners, int pendingDelayLen) throws IOException {
+ ConcurrentHashMap<Long, TransactionalRegionScannerHolder> scanners,
+ ConcurrentHashMap<String, TrxTransactionState> transactionsById, int pendingDelayLen) throws IOException {
int count = 1;
- while (!scannersListClear(scanners) || !pendingListClear(commitPendingTransactions)) {
+ while (!scannersListClear(scanners, transactionsById) || !pendingListClear(commitPendingTransactions)) {
try {
if (LOG.isDebugEnabled()) LOG.debug("pendingAndScannersWait() delay, count " + count++ + " on: " + hri.getRegionNameAsString());
Thread.sleep(pendingDelayLen);
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/ac298d39/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/coprocessor/transactional/TrxRegionObserver.java.tmpl
----------------------------------------------------------------------
diff --git a/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/coprocessor/transactional/TrxRegionObserver.java.tmpl b/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/coprocessor/transactional/TrxRegionObserver.java.tmpl
index 7de9391..5c087af 100644
--- a/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/coprocessor/transactional/TrxRegionObserver.java.tmpl
+++ b/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/coprocessor/transactional/TrxRegionObserver.java.tmpl
@@ -686,7 +686,7 @@ public void createRecoveryzNode(int node, String encodedName, byte [] data) thro
else {
blockNonPhase2.set(true);
closing.set(true);
- sbHelper.pendingAndScannersWait(commitPendingTransactions, scanners, pendingDelayLen);
+ sbHelper.pendingAndScannersWait(commitPendingTransactions, scanners, transactionsById, pendingDelayLen);
sbHelper.setSplit();
}
@@ -765,7 +765,7 @@ public void createRecoveryzNode(int node, String encodedName, byte [] data) thro
LOG.debug("preClose -- setting close var to true on: " + region.getRegionInfo().getRegionNameAsString());
}
try {
- sbHelper.pendingAndScannersWait(commitPendingTransactions, scanners, pendingDelayLen);
+ sbHelper.pendingAndScannersWait(commitPendingTransactions, scanners, transactionsById, pendingDelayLen);
} catch(IOException ioe) {
LOG.error("Encountered exception when calling pendingAndScannersWait(): " + ioe);
}
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/ac298d39/core/sql/generator/GenPreCode.cpp
----------------------------------------------------------------------
diff --git a/core/sql/generator/GenPreCode.cpp b/core/sql/generator/GenPreCode.cpp
index 1591e9a..2c77f8d 100644
--- a/core/sql/generator/GenPreCode.cpp
+++ b/core/sql/generator/GenPreCode.cpp
@@ -2857,7 +2857,6 @@ short DDLExpr::ddlXnsInfo(NABoolean &isDDLxn, NABoolean &xnCanBeStarted)
if ((ddlNode && ddlNode->castToStmtDDLNode() &&
ddlNode->castToStmtDDLNode()->ddlXns()) &&
((ddlNode->getOperatorType() == DDL_CLEANUP_OBJECTS) ||
- (ddlNode->getOperatorType() == DDL_DROP_SCHEMA) ||
(ddlNode->getOperatorType() == DDL_ALTER_TABLE_DROP_COLUMN) ||
(ddlNode->getOperatorType() == DDL_ALTER_TABLE_ALTER_COLUMN_DATATYPE)))
{
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/ac298d39/core/sql/regress/tools/runregr_executor.ksh
----------------------------------------------------------------------
diff --git a/core/sql/regress/tools/runregr_executor.ksh b/core/sql/regress/tools/runregr_executor.ksh
index 21215b3..3411009 100755
--- a/core/sql/regress/tools/runregr_executor.ksh
+++ b/core/sql/regress/tools/runregr_executor.ksh
@@ -237,7 +237,7 @@ skippedfiles=
# sbtestfiles contains the list of tests to be run in seabase mode
if [ "$seabase" -ne 0 ]; then
- sbtestfiles="TEST001 TEST002 TEST012 TEST013 TEST014 TEST015 TEST016 TEST020 TEST022 TEST025 TEST050 TEST063 TEST088 TEST101 TEST107 TEST122 TEST130 TEST131 TEST140"
+ sbtestfiles="TEST001 TEST002 TEST012 TEST013 TEST014 TEST015 TEST016 TEST020 TEST022 TEST025 TEST050 TEST063 TEST088 TEST101 TEST106 TEST107 TEST122 TEST130 TEST131 TEST140"
sbprettyfiles=
for i in $prettyfiles; do
for j in $sbtestfiles; do
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/ac298d39/core/sql/src/main/java/org/trafodion/sql/HTableClient.java
----------------------------------------------------------------------
diff --git a/core/sql/src/main/java/org/trafodion/sql/HTableClient.java b/core/sql/src/main/java/org/trafodion/sql/HTableClient.java
index 4a9bc07..4bc9bfd 100644
--- a/core/sql/src/main/java/org/trafodion/sql/HTableClient.java
+++ b/core/sql/src/main/java/org/trafodion/sql/HTableClient.java
@@ -982,7 +982,8 @@ public class HTableClient {
} else {
scanner = table.getScanner(scan,dopParallelScanner);
}
- if (logger.isTraceEnabled()) logger.trace("startScan(). After getScanner. Scanner: " + scanner+" dop:"+dopParallelScanner);
+ if (logger.isTraceEnabled()) logger.trace("startScan(). After getScanner. Scanner: " + scanner+ " dop:"+
+ dopParallelScanner + "TransID " + transID + " " + useTRexScanner + " " + getTableName());
}
else
{
@@ -1733,6 +1734,8 @@ public class HTableClient {
future = null;
}
if (scanner != null) {
+ if (logger.isTraceEnabled()) logger.trace("scanner.close() " + tableName + " " + scanner + " "
+ + retcode );
scanner.close();
scanner = null;
}