[1/2] incubator-trafodion git commit: [TRAFODION-2129] Trafodion to avoid use of deprecated HBase APIs/Classes

2016-08-10 Thread selva
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: selvaganesang 
Authored: 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

2016-08-08 Thread selva
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: selvaganesang 
Authored: 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

2016-08-02 Thread selva
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
-  }
-*/