[1/2] incubator-trafodion git commit: [TRAFODION-2129] Trafodion to avoid use of deprecated HBase APIs/Classes
Repository: incubator-trafodion Updated Branches: refs/heads/master b23fefd75 -> 3cdea3f9b [TRAFODION-2129] Trafodion to avoid use of deprecated HBase APIs/Classes Changes as per the review comments of PR 645 Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/258dd09c Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/258dd09c Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/258dd09c Branch: refs/heads/master Commit: 258dd09c4317abcafff6b3ccc32a027272d547fd Parents: 39e30d1 Author: selvaganesangAuthored: Wed Aug 10 00:36:12 2016 + Committer: selvaganesang Committed: Wed Aug 10 00:36:12 2016 + -- .../hbase/client/transactional/TransactionManager.java| 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/258dd09c/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/TransactionManager.java -- diff --git a/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/TransactionManager.java b/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/TransactionManager.java index 0b4888e..e7a0597 100644 --- a/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/TransactionManager.java +++ b/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/TransactionManager.java @@ -2232,7 +2232,7 @@ public class TransactionManager { if (retry) retrySleep = retry(retrySleep); } -} while (retry == true); +} while (retry && retryCount++ <= RETRY_ATTEMPTS); }//while } @@ -2262,7 +2262,7 @@ public class TransactionManager { if (retry) retrySleep = retry(retrySleep); } -} while (retry == true); +} while (retry && retryCount++ <= RETRY_ATTEMPTS); if (LOG.isTraceEnabled()) LOG.trace("doCommitDDL EXIT [" + transactionState.getTransactionId() + "]"); } @@ -2436,7 +2436,7 @@ public class TransactionManager { if (retry) retrySleep = retry(retrySleep); } -} while(retry); +} while (retry && retryCount++ <= RETRY_ATTEMPTS); }//while } @@ -2477,7 +2477,7 @@ public class TransactionManager { if (retry) retrySleep = retry(retrySleep); } -} while(retry); +} while (retry && retryCount++ <= RETRY_ATTEMPTS); }//while } @@ -2547,7 +2547,7 @@ public class TransactionManager { if (retry) retrySleep = retry(retrySleep); } -} while(retry); +} while (retry && retryCount++ <= RETRY_ATTEMPTS); } public synchronized JtaXAResource getXAResource() {
[1/2] incubator-trafodion git commit: [TRAFODION-2129] Trafodion to avoid use of deprecated HBase APIs/Classes
Repository: incubator-trafodion Updated Branches: refs/heads/master 84eeac7a2 -> 28bc2747e [TRAFODION-2129] Trafodion to avoid use of deprecated HBase APIs/Classes The PR 629 for the above JIRA exposed the following issues. 1) A transaction remained in HUNGABORTED state when a table is created and dropped in the same transaction. core/TEST116 exhibited one such hung aborted transaction. 2) The retry logic was not throwing any exception when the allowed number of retry attempts are exhausted. 3) When a UnknownTransactionException is encountered in the response to co-processor request, the commit was get into endless loop. privs1/TEST133 was returning error 97 on commit transaction. All the above issues have been fixed. [TRAFODION-1988] Better java exception handling in the java/JNI layer of TM Cleaned up the exception logging in TM further and allowing more events to be logged via Common Logger facility. Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/98a0daa7 Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/98a0daa7 Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/98a0daa7 Branch: refs/heads/master Commit: 98a0daa7cfc68aef62014d88377eb2e3b4f957f3 Parents: 37901fb Author: selvaganesangAuthored: Sat Aug 6 04:43:12 2016 + Committer: selvaganesang Committed: Sat Aug 6 04:43:12 2016 + -- .../transactional/TransactionManager.java | 520 --- core/sqf/src/tm/tmlogging.cpp | 138 +++-- core/sqf/src/tm/tmlogging.h | 2 - 3 files changed, 277 insertions(+), 383 deletions(-) -- http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/98a0daa7/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/TransactionManager.java -- diff --git a/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/TransactionManager.java b/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/TransactionManager.java index 425802e..0b4888e 100644 --- a/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/TransactionManager.java +++ b/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/TransactionManager.java @@ -205,6 +205,15 @@ public class TransactionManager { return g_TransactionManager; } + public static int retry(int retrySleep) { + try { + Thread.sleep(retrySleep); + } catch(InterruptedException ex) { + Thread.currentThread().interrupt(); + } + return (retrySleep += TM_SLEEP_INCR); + } + /* increment/deincrement for positive value */ /* This method copied from o.a.h.h.utils.Bytes */ public static byte [] binaryIncrementPos(byte [] value, long amount) { @@ -447,20 +456,9 @@ public class TransactionManager { if (LOG.isWarnEnabled()) LOG.warn("doCommitX -- setting retry, count: " + retryCount); refresh = false; } - - retryCount++; - - if (retryCount < RETRY_ATTEMPTS && retry == true) { - try { - Thread.sleep(retrySleep); - } catch(InterruptedException ex) { - Thread.currentThread().interrupt(); - } - - retrySleep += TM_SLEEP_INCR; - } - -} while (retryCount < RETRY_ATTEMPTS && retry == true); + if (retry) + retrySleep = retry(retrySleep); +} while (retry && retryCount++ <= RETRY_ATTEMPTS); } if( TRANSACTION_ALGORITHM == AlgorithmType.SSCC){ @@ -497,12 +495,12 @@ public class TransactionManager { } catch (ServiceException se) { String msg = "ERROR occurred while calling doCommitX coprocessor service in doCommitX"; LOG.error(msg + ":", se); - transactionState.requestPendingCountDec(true); - throw new DoNotRetryIOException(msg, se); + throw new RetryTransactionException(msg,se); } catch (Throwable e) { String msg = "ERROR occurred while calling doCommitX coprocessor service in doCommitX"; LOG.error(msg + ":", e); - throw new RetryTransactionException(msg, e); + transactionState.requestPendingCountDec(true); + throw new DoNotRetryIOException(msg, e); } if(result.size() != 1) { LOG.error("doCommitX, received incorrect result size: " +
[1/2] incubator-trafodion git commit: [TRAFODION-2129] Trafodion to avoid use of deprecated HBase APIs/Classes
Repository: incubator-trafodion Updated Branches: refs/heads/master 2d7a91f78 -> 7fe96649f http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7fe96649/core/sqf/src/seatrans/tm/hbasetmlib2/src/main/java/org/trafodion/dtm/TmAuditTlog.java -- diff --git a/core/sqf/src/seatrans/tm/hbasetmlib2/src/main/java/org/trafodion/dtm/TmAuditTlog.java b/core/sqf/src/seatrans/tm/hbasetmlib2/src/main/java/org/trafodion/dtm/TmAuditTlog.java index bd423ea..e097122 100644 --- a/core/sqf/src/seatrans/tm/hbasetmlib2/src/main/java/org/trafodion/dtm/TmAuditTlog.java +++ b/core/sqf/src/seatrans/tm/hbasetmlib2/src/main/java/org/trafodion/dtm/TmAuditTlog.java @@ -35,12 +35,11 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.hbase.Cell; import org.apache.hadoop.hbase.CellUtil; -import org.apache.hadoop.hbase.HBaseConfiguration; -import org.apache.hadoop.hbase.client.HBaseAdmin; -import org.apache.hadoop.hbase.client.HConnection; -import org.apache.hadoop.hbase.client.HConnectionManager; +import org.apache.hadoop.hbase.client.Connection; +import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.HTable; -import org.apache.hadoop.hbase.client.HTableInterface; +import org.apache.hadoop.hbase.client.HTable; +import org.apache.hadoop.hbase.client.Table; import org.apache.hadoop.hbase.client.Get; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.Delete; @@ -113,14 +112,13 @@ import java.util.concurrent.RejectedExecutionException; public class TmAuditTlog { static final Log LOG = LogFactory.getLog(TmAuditTlog.class); - private static HBaseAdmin admin; private Configuration config; private static String TLOG_TABLE_NAME; private static final byte[] TLOG_FAMILY = Bytes.toBytes("tf"); private static final byte[] ASN_STATE = Bytes.toBytes("as"); private static final byte[] QUAL_TX_STATE = Bytes.toBytes("tx"); private static HTable[] table; - private static HConnection connection; + private static Connection connection; private static HBaseAuditControlPoint tLogControlPoint; private static long tLogControlPointNum; private static long tLogHashKey; @@ -188,7 +186,7 @@ public class TmAuditTlog { byte[] endKey_orig; byte[] endKey; - TlogCallable(TransactionState txState, HRegionLocation location, HConnection connection) throws IOException { + TlogCallable(TransactionState txState, HRegionLocation location, Connection connection) throws IOException { transactionState = txState; this.location = location; table = new HTable(location.getRegionInfo().getTable(), connection, tlogThreadPool); @@ -355,9 +353,10 @@ public class TmAuditTlog { } } - public TmAuditTlog (Configuration config) throws IOException, RuntimeException { + public TmAuditTlog (Configuration config, Connection connection) throws IOException, RuntimeException { this.config = config; + this.connection = connection; this.dtmid = Integer.parseInt(config.get("dtmid")); if (LOG.isTraceEnabled()) LOG.trace("Enter TmAuditTlog constructor for dtmid " + dtmid); TLOG_TABLE_NAME = config.get("TLOG_TABLE_NAME"); @@ -442,8 +441,6 @@ public class TmAuditTlog { LOG.error("TM_TLOG_RETRY_COUNT is not valid in ms.env"); } - connection = HConnectionManager.createConnection(config); - tlogNumLogs = 1; try { String numLogs = System.getenv("TM_TLOG_NUM_LOGS"); @@ -504,7 +501,6 @@ public class TmAuditTlog { hcol.setBlockCacheEnabled(false); } hcol.setMaxVersions(versions); - admin = new HBaseAdmin(config); filler = new byte[fillerSize]; Arrays.fill(filler, (byte) ' '); @@ -538,39 +534,30 @@ public class TmAuditTlog { long lvAsn = 0; if (LOG.isTraceEnabled()) LOG.trace("try new HBaseAuditControlPoint"); - tLogControlPoint = new HBaseAuditControlPoint(config); + tLogControlPoint = new HBaseAuditControlPoint(config, connection); tlogAuditLock =new Object[tlogNumLogs]; table = new HTable[tlogNumLogs]; -// try { // Get the asn from the last control point. This ignores // any asn increments between the last control point // write and a system crash and could result in asn numbers // being reused. However this would just mean that some old // records are held onto a bit longer before cleanup and is safe. asn.set(tLogControlPoint.getStartingAuditSeqNum()); -/* - // TODO: revisit - } - catch (Exception e2){ - if (LOG.isDebugEnabled()) LOG.debug("Exception setting the ASN " + e2); - if (LOG.isDebugEnabled()) LOG.debug("Setting the ASN to 1"); - asn.set(1L); // Couldn't read the asn so start asn at 1 - } -*/