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/01/29 23:09:57 UTC
[1/4] incubator-trafodion git commit: Fix for [TRAFODION-1703] Lower
overhead in deleting old Tlog entries
Repository: incubator-trafodion
Updated Branches:
refs/heads/master 17412358d -> e62e22b61
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/cea97749/core/sqf/src/seatrans/hbase-trx/src/main/protobuf/TrxRegion.proto
----------------------------------------------------------------------
diff --git a/core/sqf/src/seatrans/hbase-trx/src/main/protobuf/TrxRegion.proto b/core/sqf/src/seatrans/hbase-trx/src/main/protobuf/TrxRegion.proto
index 33e39fa..30f5747 100755
--- a/core/sqf/src/seatrans/hbase-trx/src/main/protobuf/TrxRegion.proto
+++ b/core/sqf/src/seatrans/hbase-trx/src/main/protobuf/TrxRegion.proto
@@ -268,6 +268,20 @@ message RecoveryRequestResponse {
optional bool hasException = 3;
}
+message TlogDeleteRequest{
+ required bytes regionName = 1;
+ required int64 transactionId = 2;
+ required Scan scan = 3;
+ required int64 auditSeqNum =4;
+}
+
+message TlogDeleteResponse {
+ repeated Result result = 1;
+ required int64 count = 2;
+ optional string exception = 3;
+ optional bool hasException = 4;
+}
+
message TransactionalAggregateRequest {
/** The request passed to the TransactionalAggregateService consists of three parts
* (1) the (canonical) classname of the ColumnInterpreter implementation
@@ -355,6 +369,8 @@ service TrxRegionService {
returns(PutMultipleTransactionalResponse);
rpc recoveryRequest(RecoveryRequestRequest)
returns(RecoveryRequestResponse);
+ rpc deleteTlogEntries(TlogDeleteRequest)
+ returns(TlogDeleteResponse);
rpc GetMax (TransactionalAggregateRequest)
returns (TransactionalAggregateResponse);
rpc GetMin (TransactionalAggregateRequest)
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/cea97749/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 cb3ba94..7ceaf25 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
@@ -28,6 +28,7 @@ import java.io.IOException;
import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.Logger;
+import org.apache.commons.codec.binary.Hex;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.conf.Configuration;
@@ -45,6 +46,7 @@ import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
+import org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.client.transactional.TransactionManager;
import org.apache.hadoop.hbase.client.transactional.TransactionState;
@@ -53,6 +55,11 @@ import org.apache.hadoop.hbase.client.transactional.UnknownTransactionException;
import org.apache.hadoop.hbase.client.transactional.HBaseBackedTransactionLogger;
import org.apache.hadoop.hbase.client.transactional.TransactionRegionLocation;
import org.apache.hadoop.hbase.client.transactional.TransState;
+import org.apache.hadoop.hbase.client.transactional.UnknownTransactionException;
+import org.apache.hadoop.hbase.client.coprocessor.Batch;
+import org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest;
+import org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse;
+import org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TrxRegionService;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HRegionInfo;
import org.apache.hadoop.hbase.HRegionLocation;
@@ -64,8 +71,19 @@ import org.apache.hadoop.hbase.TableExistsException;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.util.Bytes;
+import org.apache.hadoop.hbase.ZooKeeperConnectionException;
+
+import org.apache.hadoop.hbase.ipc.BlockingRpcCallback;
+import org.apache.hadoop.hbase.ipc.ServerRpcController;
+import org.apache.hadoop.hbase.protobuf.ProtobufUtil;
+import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.MutationProto;
+import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.MutationProto.MutationType;
+
import org.apache.hadoop.hbase.regionserver.RegionSplitPolicy;
+import com.google.protobuf.ByteString;
+import com.google.protobuf.HBaseZeroCopyByteString;
+
import java.util.Arrays;
import java.util.ArrayList;
import java.util.Collections;
@@ -82,9 +100,11 @@ import java.util.StringTokenizer;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.Callable;
+import java.util.concurrent.CompletionService;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Executor;
+import java.util.concurrent.ExecutorCompletionService;
import java.util.concurrent.Executors;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future;
@@ -100,6 +120,7 @@ public class TmAuditTlog {
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 HBaseAuditControlPoint tLogControlPoint;
private static long tLogControlPointNum;
private static long tLogHashKey;
@@ -139,7 +160,9 @@ public class TmAuditTlog {
private static boolean forceControlPoint;
private boolean disableBlockCache;
private boolean controlPointDeferred;
-
+ private int TlogRetryDelay;
+ private int TlogRetryCount;
+
private static AtomicLong asn; // Audit sequence number is the monotonic increasing value of the tLog write
private static Object tlogAuditLock[]; // Lock for synchronizing access via regions.
@@ -147,26 +170,152 @@ public class TmAuditTlog {
private static Object tablePutLock; // Lock for synchronizing table.put operations
// to avoid ArrayIndexOutOfBoundsException
private static byte filler[];
+ public static final int TLOG_SLEEP = 1000; // One second
+ public static final int TLOG_SLEEP_INCR = 5000; // Five seconds
+ public static final int TLOG_RETRY_ATTEMPTS = 5;
+ private int RETRY_ATTEMPTS;
+
+ /**
+ * tlogThreadPool - pool of thread for asynchronous requests
+ */
+ ExecutorService tlogThreadPool;
+
+ private abstract class TlogCallable implements Callable<Integer>{
+ TransactionState transactionState;
+ HRegionLocation location;
+ HTable table;
+ byte[] startKey;
+ byte[] endKey_orig;
+ byte[] endKey;
+
+ TlogCallable(TransactionState txState, HRegionLocation location, HConnection connection) {
+ transactionState = txState;
+ this.location = location;
+ try {
+ table = new HTable(location.getRegionInfo().getTable(), connection, tlogThreadPool);
+ } catch(IOException e) {
+ LOG.error("Error obtaining HTable instance " + e);
+ table = null;
+ }
+ startKey = location.getRegionInfo().getStartKey();
+ endKey_orig = location.getRegionInfo().getEndKey();
+ endKey = TransactionManager.binaryIncrementPos(endKey_orig, -1);
+ }
+
+ public Integer deleteEntriesOlderThanASNX(final byte[] regionName, final long auditSeqNum) throws IOException {
+ long threadId = Thread.currentThread().getId();
+ if (LOG.isTraceEnabled()) LOG.trace("deleteEntriesOlderThanASNX -- ENTRY auditSeqNum: "
+ + auditSeqNum + ", thread " + threadId);
+ boolean retry = false;
+ boolean refresh = false;
+ final Scan scan = new Scan(startKey, endKey);
+
+ int retryCount = 0;
+ int retrySleep = TLOG_SLEEP;
+ do {
+ try {
+ if (LOG.isTraceEnabled()) LOG.trace("deleteEntriesOlderThanASNX -- ENTRY ASN: " + auditSeqNum);
+ Batch.Call<TrxRegionService, TlogDeleteResponse> callable =
+ new Batch.Call<TrxRegionService, TlogDeleteResponse>() {
+ ServerRpcController controller = new ServerRpcController();
+ BlockingRpcCallback<TlogDeleteResponse> rpcCallback =
+ new BlockingRpcCallback<TlogDeleteResponse>();
+
+ @Override
+ public TlogDeleteResponse call(TrxRegionService instance) throws IOException {
+ org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest.Builder
+ builder = TlogDeleteRequest.newBuilder();
+ builder.setAuditSeqNum(auditSeqNum);
+ builder.setTransactionId(transactionState.getTransactionId());
+ builder.setScan(ProtobufUtil.toScan(scan));
+ builder.setRegionName(ByteString.copyFromUtf8(Bytes.toString(regionName))); //ByteString.copyFromUtf8(Bytes.toString(regionName)));
+
+ instance.deleteTlogEntries(controller, builder.build(), rpcCallback);
+ return rpcCallback.get();
+ }
+ };
+
+ Map<byte[], TlogDeleteResponse> result = null;
+ try {
+ if (LOG.isTraceEnabled()) LOG.trace("deleteEntriesOlderThanASNX -- before coprocessorService ASN: " + auditSeqNum
+ + " startKey: " + new String(startKey, "UTF-8") + " endKey: " + new String(endKey, "UTF-8"));
+ result = table.coprocessorService(TrxRegionService.class, startKey, endKey, callable);
+ } catch (Throwable e) {
+ String msg = "ERROR occurred while calling deleteTlogEntries coprocessor service in deleteEntriesOlderThanASNX";
+ LOG.error(msg + ":" + e);
+ throw new Exception(msg);
+ }
+ if (LOG.isTraceEnabled()) LOG.trace("deleteEntriesOlderThanASNX -- after coprocessorService ASN: " + auditSeqNum
+ + " startKey: " + new String(startKey, "UTF-8") + " result size: " + result.size());
+
+ if(result.size() != 1) {
+ LOG.error("deleteEntriesOlderThanASNX, received incorrect result size: " + result.size() + " ASN: " + auditSeqNum);
+ throw new Exception("Wrong result size in deleteEntriesOlderThanASNX");
+ }
+ else {
+ // size is 1
+ for (TlogDeleteResponse TD_response : result.values()){
+ if(TD_response.getHasException()) {
+ if (LOG.isTraceEnabled()) LOG.trace("deleteEntriesOlderThanASNX coprocessor exception: "
+ + TD_response.getException());
+ throw new Exception(TD_response.getException());
+ }
+ if (LOG.isTraceEnabled()) LOG.trace("deleteEntriesOlderThanASNX coprocessor deleted count: "
+ + TD_response.getCount());
+ }
+ retry = false;
+ }
+ } catch (Exception e) {
+ LOG.error("deleteEntriesOlderThanASNX retrying due to Exception: " + e);
+ refresh = true;
+ retry = true;
+ }
+ if (refresh) {
+
+ HRegionLocation lv_hrl = table.getRegionLocation(startKey);
+ HRegionInfo lv_hri = lv_hrl.getRegionInfo();
+ String lv_node = lv_hrl.getHostname();
+ int lv_length = lv_node.indexOf('.');
+
+ if (LOG.isTraceEnabled()) LOG.trace("deleteEntriesOlderThanASNX -- location being refreshed : "
+ + location.getRegionInfo().getRegionNameAsString() + "endKey: "
+ + Hex.encodeHexString(location.getRegionInfo().getEndKey()) + " for ASN: " + auditSeqNum);
+ if(retryCount == RETRY_ATTEMPTS) {
+ LOG.error("Exceeded retry attempts (" + retryCount + ") in deleteEntriesOlderThanASNX for ASN: " + auditSeqNum);
+ // We have received our reply in the form of an exception,
+ // so decrement outstanding count and wake up waiters to avoid
+ // getting hung forever
+ transactionState.requestPendingCountDec(true);
+ throw new IOException("Exceeded retry attempts (" + retryCount + ") in deleteEntriesOlderThanASNX for ASN: " + auditSeqNum);
+ }
+
+ if (LOG.isWarnEnabled()) LOG.warn("deleteEntriesOlderThanASNX -- " + table.toString() + " location being refreshed");
+ if (LOG.isWarnEnabled()) LOG.warn("deleteEntriesOlderThanASNX -- lv_hri: " + lv_hri);
+ if (LOG.isWarnEnabled()) LOG.warn("deleteEntriesOlderThanASNX -- location.getRegionInfo(): " + location.getRegionInfo());
+ table.getRegionLocation(startKey, true);
+
+ if (LOG.isTraceEnabled()) LOG.trace("deleteEntriesOlderThanASNX -- setting retry, count: " + retryCount);
+ refresh = false;
+ }
+ retryCount++;
+
+ if (retryCount < RETRY_ATTEMPTS && retry == true) {
+ try {
+ Thread.sleep(retrySleep);
+ } catch(InterruptedException ex) {
+ Thread.currentThread().interrupt();
+ }
- public static final int TM_TX_STATE_NOTX = 0; //S0 - NOTX
- public static final int TM_TX_STATE_ACTIVE = 1; //S1 - ACTIVE
- public static final int TM_TX_STATE_FORGOTTEN = 2; //N/A
- public static final int TM_TX_STATE_COMMITTED = 3; //N/A
- public static final int TM_TX_STATE_ABORTING = 4; //S4 - ROLLBACK
- public static final int TM_TX_STATE_ABORTED = 5; //S4 - ROLLBACK
- public static final int TM_TX_STATE_COMMITTING = 6; //S3 - PREPARED
- public static final int TM_TX_STATE_PREPARING = 7; //S2 - IDLE
- public static final int TM_TX_STATE_FORGETTING = 8; //N/A
- public static final int TM_TX_STATE_PREPARED = 9; //S3 - PREPARED XARM Branches only!
- public static final int TM_TX_STATE_FORGETTING_HEUR = 10; //S5 - HEURISTIC
- public static final int TM_TX_STATE_BEGINNING = 11; //S1 - ACTIVE
- public static final int TM_TX_STATE_HUNGCOMMITTED = 12; //N/A
- public static final int TM_TX_STATE_HUNGABORTED = 13; //S4 - ROLLBACK
- public static final int TM_TX_STATE_IDLE = 14; //S2 - IDLE XARM Branches only!
- public static final int TM_TX_STATE_FORGOTTEN_HEUR = 15; //S5 - HEURISTIC - Waiting Superior TM xa_forget request
- public static final int TM_TX_STATE_ABORTING_PART2 = 16; // Internal State
- public static final int TM_TX_STATE_TERMINATING = 17;
- public static final int TM_TX_STATE_LAST = 17;
+ retrySleep += TLOG_SLEEP_INCR;
+ }
+ } while (retryCount < RETRY_ATTEMPTS && retry == true);
+ // We have received our reply so decrement outstanding count
+ transactionState.requestPendingCountDec(false);
+
+ if (LOG.isTraceEnabled()) LOG.trace("deleteEntriesOlderThanASNX -- EXIT ASN: " + auditSeqNum);
+ return 0;
+ } //getTransactionStatesFromIntervalX
+ } // TlogCallable
private class AuditBuffer{
private ArrayList<Put> buffer; // Each Put is an audit record
@@ -241,6 +390,12 @@ public class TmAuditTlog {
if (LOG.isTraceEnabled()) LOG.trace("Enter TmAuditTlog constructor for dtmid " + dtmid);
TLOG_TABLE_NAME = config.get("TLOG_TABLE_NAME");
int fillerSize = 2;
+ int intThreads = 16;
+ String numThreads = System.getenv("TM_JAVA_THREAD_POOL_SIZE");
+ if (numThreads != null){
+ intThreads = Integer.parseInt(numThreads);
+ }
+ tlogThreadPool = Executors.newFixedThreadPool(intThreads);
controlPointDeferred = false;
forceControlPoint = false;
@@ -282,7 +437,7 @@ public class TmAuditTlog {
}
LOG.info("ageCommitted is " + ageCommitted);
- versions = 5;
+ versions = 10;
try {
String maxVersions = System.getenv("TM_TLOG_MAX_VERSIONS");
if (maxVersions != null){
@@ -293,6 +448,30 @@ public class TmAuditTlog {
if (LOG.isDebugEnabled()) LOG.debug("TM_TLOG_MAX_VERSIONS is not in ms.env");
}
+ TlogRetryDelay = 5000; // 3 seconds
+ try {
+ String retryDelayS = System.getenv("TM_TLOG_RETRY_DELAY");
+ if (retryDelayS != null){
+ TlogRetryDelay = (Integer.parseInt(retryDelayS) > TlogRetryDelay ? Integer.parseInt(retryDelayS) : TlogRetryDelay);
+ }
+ }
+ catch (Exception e) {
+ if (LOG.isDebugEnabled()) LOG.debug("TM_TLOG_RETRY_DELAY is not in ms.env");
+ }
+
+ TlogRetryCount = 60;
+ try {
+ String retryCountS = System.getenv("TM_TLOG_RETRY_COUNT");
+ if (retryCountS != null){
+ TlogRetryCount = (Integer.parseInt(retryCountS) > TlogRetryCount ? Integer.parseInt(retryCountS) : TlogRetryCount);
+ }
+ }
+ catch (Exception e) {
+ if (LOG.isDebugEnabled()) LOG.debug("TM_TLOG_RETRY_COUNT is not in ms.env");
+ }
+
+ connection = HConnectionManager.createConnection(config);
+
tlogNumLogs = 1;
try {
String numLogs = System.getenv("TM_TLOG_NUM_LOGS");
@@ -419,7 +598,7 @@ public class TmAuditTlog {
HTableDescriptor desc = new HTableDescriptor(TableName.valueOf(lv_tLogName));
desc.addFamily(hcol);
- if (lvTlogExists == false) {
+ if (lvTlogExists == false) {
// Need to prime the asn for future writes
try {
if (LOG.isTraceEnabled()) LOG.trace("Creating the table " + lv_tLogName);
@@ -497,16 +676,14 @@ public class TmAuditTlog {
tableString.append(name);
}
}
- if (LOG.isTraceEnabled()) LOG.trace("table names: " + tableString.toString());
+ if (LOG.isTraceEnabled()) LOG.trace("table names: " + tableString.toString() + " in thread " + threadId);
}
//Create the Put as directed by the hashed key boolean
- Put p;
-
//create our own hashed key
long key = (((lvTransid & tLogHashKey) << tLogHashShiftFactor) + (lvTransid & 0xFFFFFFFF));
lv_lockIndex = (int)(lvTransid & tLogHashKey);
if (LOG.isTraceEnabled()) LOG.trace("key: " + key + ", hex: " + Long.toHexString(key) + ", transid: " + lvTransid);
- p = new Put(Bytes.toBytes(key));
+ Put p = new Put(Bytes.toBytes(key));
if (recoveryASN == -1){
// This is a normal audit record so we manage the ASN
@@ -516,11 +693,12 @@ public class TmAuditTlog {
// This is a recovery audit record so use the ASN passed in
lvAsn = recoveryASN;
}
- if (LOG.isTraceEnabled()) LOG.trace("transid: " + lvTransid + " state: " + lvTxState + " ASN: " + lvAsn);
+ if (LOG.isTraceEnabled()) LOG.trace("transid: " + lvTransid + " state: " + lvTxState + " ASN: " + lvAsn
+ + " in thread " + threadId);
p.add(TLOG_FAMILY, ASN_STATE, Bytes.toBytes(String.valueOf(lvAsn) + ","
- + transidString + "," + lvTxState
+ + String.valueOf(lvTransid) + "," + lvTxState
+ "," + Bytes.toString(filler)
- + "," + commitIdString
+ + "," + String.valueOf(lvCommitId)
+ "," + tableString.toString()));
@@ -538,7 +716,6 @@ public class TmAuditTlog {
catch (Exception e2){
// create record of the exception
LOG.error("putSingleRecord Exception in recoveryTable" + e2);
- e2.printStackTrace();
throw e2;
}
finally {
@@ -727,11 +904,11 @@ public class TmAuditTlog {
if (LOG.isTraceEnabled()) LOG.trace("transid: " + lvTransid + " state: " + lvTxState);
}
catch (IOException e){
- LOG.error("getRecord IOException");
+ LOG.error("getRecord IOException " + e);
throw e;
}
catch (Exception e){
- LOG.error("getRecord Exception");
+ LOG.error("getRecord Exception " + e);
throw e;
}
}
@@ -803,10 +980,12 @@ public class TmAuditTlog {
String lv_tLogName = new String(TLOG_TABLE_NAME + "_LOG_" + Integer.toHexString(i));
// Connection deleteConnection = ConnectionFactory.createConnection(this.config);
+ if (LOG.isTraceEnabled()) LOG.trace("delete table is: " + lv_tLogName);
HConnection deleteConnection = HConnectionManager.createConnection(this.config);
deleteTable = deleteConnection.getTable(TableName.valueOf(lv_tLogName));
try {
+ boolean scanComplete = false;
Scan s = new Scan();
s.setCaching(100);
s.setCacheBlocks(false);
@@ -816,8 +995,9 @@ public class TmAuditTlog {
try {
for (Result r : ss) {
for (Cell cell : r.rawCells()) {
- String valueString = new String(CellUtil.cloneValue(cell));
- StringTokenizer st = new StringTokenizer(valueString, ",");
+ StringTokenizer st =
+ new StringTokenizer(Bytes.toString(CellUtil.cloneValue(cell)), ",");
+ if (LOG.isTraceEnabled()) LOG.trace("string tokenizer success ");
if (st.hasMoreElements()) {
String asnToken = st.nextElement().toString() ;
String transidToken = st.nextElement().toString() ;
@@ -831,21 +1011,17 @@ public class TmAuditTlog {
else if ((Long.parseLong(asnToken) < lvAsn) &&
(stateToken.equals("COMMITTED") || stateToken.equals("ABORTED"))) {
if (ageCommitted) {
- String rowKey = new String(r.getRow());
Delete del = new Delete(r.getRow());
if (LOG.isTraceEnabled()) LOG.trace("adding transid: " + transidToken + " to delete list");
deleteList.add(del);
}
else {
- String key = new String(r.getRow());
Get get = new Get(r.getRow());
get.setMaxVersions(versions); // will return last n versions of row
Result lvResult = deleteTable.get(get);
- // byte[] b = lvResult.getValue(TLOG_FAMILY, ASN_STATE); // returns current version of value
List<Cell> list = lvResult.getColumnCells(TLOG_FAMILY, ASN_STATE); // returns all versions of this column
for (Cell element : list) {
- String value = new String(CellUtil.cloneValue(element));
- StringTokenizer stok = new StringTokenizer(value, ",");
+ StringTokenizer stok = new StringTokenizer(Bytes.toString(CellUtil.cloneValue(element)), ",");
if (stok.hasMoreElements()) {
if (LOG.isTraceEnabled()) LOG.trace("Performing secondary search on (" + transidToken + ")");
asnToken = stok.nextElement().toString() ;
@@ -877,9 +1053,11 @@ public class TmAuditTlog {
throw new RuntimeException(e);
}
finally {
+ if (LOG.isTraceEnabled()) LOG.trace("deleteAgedEntries closing ResultScanner");
ss.close();
}
- if (LOG.isTraceEnabled()) LOG.trace("attempting to delete list with " + deleteList.size() + " elements");
+ if (LOG.isTraceEnabled()) LOG.trace("attempting to delete list with " + deleteList.size()
+ + " elements from table " + lv_tLogName);
try {
deleteTable.delete(deleteList);
}
@@ -889,7 +1067,8 @@ public class TmAuditTlog {
}
}
catch (IOException e) {
- LOG.error("deleteAgedEntries IOException setting up scan on table index " + i);
+ LOG.error("deleteAgedEntries IOException setting up scan on table index "
+ + i + ", Exception: " + e);
e.printStackTrace();
}
finally {
@@ -913,7 +1092,8 @@ public class TmAuditTlog {
long startTime = System.nanoTime();
long endTime;
- if (LOG.isTraceEnabled()) LOG.trace("writeControlPointRecords start with map size " + map.size());
+ if (LOG.isTraceEnabled()) LOG.trace("Tlog " + getTlogTableNameBase()
+ + " writeControlPointRecords start with map size " + map.size());
try {
for (Map.Entry<Long, TransactionState> e : map.entrySet()) {
@@ -934,7 +1114,6 @@ public class TmAuditTlog {
}
catch (Exception ex) {
LOG.error("formatRecord Exception " + ex);
- ex.printStackTrace();
throw ex;
}
}
@@ -956,7 +1135,6 @@ public class TmAuditTlog {
}
-
public long addControlPoint (final Map<Long, TransactionState> map) throws IOException, Exception {
if (LOG.isTraceEnabled()) LOG.trace("addControlPoint start with map size " + map.size());
long lvCtrlPt = 0L;
@@ -983,6 +1161,7 @@ public class TmAuditTlog {
try {
lvAsn = asn.getAndIncrement();
+ if (LOG.isTraceEnabled()) LOG.trace("lvAsn reset to: " + lvAsn);
// Write the control point interval and the ASN to the control point table
lvCtrlPt = tLogControlPoint.doControlPoint(lvAsn);
@@ -990,10 +1169,11 @@ public class TmAuditTlog {
if ((lvCtrlPt - 5) > 0){ // We'll keep 5 control points of audit
try {
agedAsn = tLogControlPoint.getRecord(String.valueOf(lvCtrlPt - 5));
- if ((agedAsn > 0) && (lvCtrlPt % 5 == 0)){
+ if (agedAsn > 0){
try {
if (LOG.isTraceEnabled()) LOG.trace("Attempting to remove TLOG writes older than asn " + agedAsn);
- deleteAgedEntries(agedAsn);
+// deleteAgedEntries(agedAsn);
+ deleteEntriesOlderThanASN(agedAsn);
}
catch (Exception e){
LOG.error("deleteAgedEntries Exception " + e);
@@ -1008,14 +1188,12 @@ public class TmAuditTlog {
}
}
catch (IOException e){
- LOG.error("addControlPoint IOException");
- e.printStackTrace();
+ LOG.error("addControlPoint IOException " + e);
throw e;
}
}
} catch (Exception e){
LOG.error("addControlPoint Exception " + e);
- e.printStackTrace();
throw e;
}
if (LOG.isTraceEnabled()) LOG.trace("addControlPoint returning " + lvCtrlPt);
@@ -1032,6 +1210,8 @@ public class TmAuditTlog {
int lv_ownerNid = (int)(lvTransid >> 32);
int lv_lockIndex = (int)(lvTransid & tLogHashKey);
String lv_tLogName = new String("TRAFODION._DTM_.TLOG" + String.valueOf(lv_ownerNid) + "_LOG_" + Integer.toHexString(lv_lockIndex));
+ if (LOG.isTraceEnabled()) LOG.trace("getTransactionState reading from: " + lv_tLogName);
+
HConnection unknownTableConnection = HConnectionManager.createConnection(this.config);
unknownTransactionTable = unknownTableConnection.getTable(TableName.valueOf(lv_tLogName));
@@ -1196,6 +1376,73 @@ public class TmAuditTlog {
}
if (LOG.isTraceEnabled()) LOG.trace("getTransactionState end transid: " + ts.getTransactionId());
return;
- }
-}
+ }
+
+ public String getTlogTableNameBase(){
+ return TLOG_TABLE_NAME;
+ }
+ /**
+ * Method : deleteEntriesOlderThanASN
+ * Params : pv_ASN - ASN before which all audit records will be deleted
+ * Return : void
+ * Purpose : Delete transaction records which are no longer needed
+ */
+ public void deleteEntriesOlderThanASN(final long pv_ASN) throws IOException {
+ int loopCount = 0;
+ long threadId = Thread.currentThread().getId();
+ // This TransactionState object is just a mechanism to keep track of the asynch rpc calls
+ // send to regions in order to retrience the desired set of transactions
+ TransactionState transactionState = new TransactionState(0);
+ CompletionService<Integer> compPool = new ExecutorCompletionService<Integer>(tlogThreadPool);
+ HConnection targetTableConnection = HConnectionManager.createConnection(this.config);
+
+ try {
+ if (LOG.isTraceEnabled()) LOG.trace("deleteEntriesOlderThanASN: "
+ + pv_ASN + ", in thread: " + threadId);
+ HTableInterface targetTable;
+ List<HRegionLocation> regionList;
+
+ // For every Tlog table for this node
+ for (int index = 0; index < tlogNumLogs; index++) {
+ String lv_tLogName = new String("TRAFODION._DTM_.TLOG" + String.valueOf(this.dtmid) + "_LOG_" + Integer.toHexString(index));
+ regionList = targetTableConnection.locateRegions(TableName.valueOf(lv_tLogName), false, false);
+ loopCount++;
+ // For every region in this table
+ for (HRegionLocation location : regionList) {
+ final byte[] regionName = location.getRegionInfo().getRegionName();
+ compPool.submit(new TlogCallable(transactionState, location, connection) {
+ public Integer call() throws IOException {
+ if (LOG.isTraceEnabled()) LOG.trace("before deleteEntriesOlderThanASNX() ASN: "
+ + pv_ASN);
+ return deleteEntriesOlderThanASNX(regionName, pv_ASN);
+ }
+ });
+ }
+ }
+ } catch (Exception e) {
+ LOG.error("exception in deleteEntriesOlderThanASN for ASN: "
+ + pv_ASN + " " + e);
+ throw new IOException(e);
+ }
+ // all requests sent at this point, can record the count
+ if (LOG.isTraceEnabled()) LOG.trace("deleteEntriesOlderThanASN tlog callable requests sent to "
+ + loopCount + " tlogs in thread " + threadId);
+ int deleteError = 0;
+ try {
+ for (int loopIndex = 0; loopIndex < loopCount; loopIndex ++) {
+ int partialResult = compPool.take().get();
+ if (LOG.isTraceEnabled()) LOG.trace("deleteEntriesOlderThanASN partial result: " + partialResult + " loopIndex " + loopIndex);
+ }
+ }
+ catch (Exception e2) {
+ LOG.error("exception retieving replys in deleteEntriesOlderThanASN for interval ASN: " + pv_ASN
+ + " " + e2);
+ throw new IOException(e2);
+ }
+ HConnectionManager.deleteStaleConnection(targetTableConnection);
+ if (LOG.isTraceEnabled()) LOG.trace("deleteEntriesOlderThanASN tlog callable requests completed in thread "
+ + threadId);
+ return;
+ }
+}
[2/4] incubator-trafodion git commit: Fix for [TRAFODION-1703] Lower
overhead in deleting old Tlog entries
Posted by db...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/cea97749/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/coprocessor/transactional/generated/TrxRegionProtos.java
----------------------------------------------------------------------
diff --git a/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/coprocessor/transactional/generated/TrxRegionProtos.java b/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/coprocessor/transactional/generated/TrxRegionProtos.java
index cdca02f..63d125c 100755
--- a/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/coprocessor/transactional/generated/TrxRegionProtos.java
+++ b/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/coprocessor/transactional/generated/TrxRegionProtos.java
@@ -26512,6 +26512,1802 @@ public final class TrxRegionProtos {
// @@protoc_insertion_point(class_scope:RecoveryRequestResponse)
}
+ public interface TlogDeleteRequestOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // required bytes regionName = 1;
+ /**
+ * <code>required bytes regionName = 1;</code>
+ */
+ boolean hasRegionName();
+ /**
+ * <code>required bytes regionName = 1;</code>
+ */
+ com.google.protobuf.ByteString getRegionName();
+
+ // required int64 transactionId = 2;
+ /**
+ * <code>required int64 transactionId = 2;</code>
+ */
+ boolean hasTransactionId();
+ /**
+ * <code>required int64 transactionId = 2;</code>
+ */
+ long getTransactionId();
+
+ // required .Scan scan = 3;
+ /**
+ * <code>required .Scan scan = 3;</code>
+ */
+ boolean hasScan();
+ /**
+ * <code>required .Scan scan = 3;</code>
+ */
+ org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Scan getScan();
+ /**
+ * <code>required .Scan scan = 3;</code>
+ */
+ org.apache.hadoop.hbase.protobuf.generated.ClientProtos.ScanOrBuilder getScanOrBuilder();
+
+ // required int64 auditSeqNum = 4;
+ /**
+ * <code>required int64 auditSeqNum = 4;</code>
+ */
+ boolean hasAuditSeqNum();
+ /**
+ * <code>required int64 auditSeqNum = 4;</code>
+ */
+ long getAuditSeqNum();
+ }
+ /**
+ * Protobuf type {@code TlogDeleteRequest}
+ */
+ public static final class TlogDeleteRequest extends
+ com.google.protobuf.GeneratedMessage
+ implements TlogDeleteRequestOrBuilder {
+ // Use TlogDeleteRequest.newBuilder() to construct.
+ private TlogDeleteRequest(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
+ super(builder);
+ this.unknownFields = builder.getUnknownFields();
+ }
+ private TlogDeleteRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
+
+ private static final TlogDeleteRequest defaultInstance;
+ public static TlogDeleteRequest getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public TlogDeleteRequest getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ private final com.google.protobuf.UnknownFieldSet unknownFields;
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private TlogDeleteRequest(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ initFields();
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 10: {
+ bitField0_ |= 0x00000001;
+ regionName_ = input.readBytes();
+ break;
+ }
+ case 16: {
+ bitField0_ |= 0x00000002;
+ transactionId_ = input.readInt64();
+ break;
+ }
+ case 26: {
+ org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Scan.Builder subBuilder = null;
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ subBuilder = scan_.toBuilder();
+ }
+ scan_ = input.readMessage(org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Scan.PARSER, extensionRegistry);
+ if (subBuilder != null) {
+ subBuilder.mergeFrom(scan_);
+ scan_ = subBuilder.buildPartial();
+ }
+ bitField0_ |= 0x00000004;
+ break;
+ }
+ case 32: {
+ bitField0_ |= 0x00000008;
+ auditSeqNum_ = input.readInt64();
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e.getMessage()).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.internal_static_TlogDeleteRequest_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.internal_static_TlogDeleteRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest.class, org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest.Builder.class);
+ }
+
+ public static com.google.protobuf.Parser<TlogDeleteRequest> PARSER =
+ new com.google.protobuf.AbstractParser<TlogDeleteRequest>() {
+ public TlogDeleteRequest parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new TlogDeleteRequest(input, extensionRegistry);
+ }
+ };
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<TlogDeleteRequest> getParserForType() {
+ return PARSER;
+ }
+
+ private int bitField0_;
+ // required bytes regionName = 1;
+ public static final int REGIONNAME_FIELD_NUMBER = 1;
+ private com.google.protobuf.ByteString regionName_;
+ /**
+ * <code>required bytes regionName = 1;</code>
+ */
+ public boolean hasRegionName() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ /**
+ * <code>required bytes regionName = 1;</code>
+ */
+ public com.google.protobuf.ByteString getRegionName() {
+ return regionName_;
+ }
+
+ // required int64 transactionId = 2;
+ public static final int TRANSACTIONID_FIELD_NUMBER = 2;
+ private long transactionId_;
+ /**
+ * <code>required int64 transactionId = 2;</code>
+ */
+ public boolean hasTransactionId() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ /**
+ * <code>required int64 transactionId = 2;</code>
+ */
+ public long getTransactionId() {
+ return transactionId_;
+ }
+
+ // required .Scan scan = 3;
+ public static final int SCAN_FIELD_NUMBER = 3;
+ private org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Scan scan_;
+ /**
+ * <code>required .Scan scan = 3;</code>
+ */
+ public boolean hasScan() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ /**
+ * <code>required .Scan scan = 3;</code>
+ */
+ public org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Scan getScan() {
+ return scan_;
+ }
+ /**
+ * <code>required .Scan scan = 3;</code>
+ */
+ public org.apache.hadoop.hbase.protobuf.generated.ClientProtos.ScanOrBuilder getScanOrBuilder() {
+ return scan_;
+ }
+
+ // required int64 auditSeqNum = 4;
+ public static final int AUDITSEQNUM_FIELD_NUMBER = 4;
+ private long auditSeqNum_;
+ /**
+ * <code>required int64 auditSeqNum = 4;</code>
+ */
+ public boolean hasAuditSeqNum() {
+ return ((bitField0_ & 0x00000008) == 0x00000008);
+ }
+ /**
+ * <code>required int64 auditSeqNum = 4;</code>
+ */
+ public long getAuditSeqNum() {
+ return auditSeqNum_;
+ }
+
+ private void initFields() {
+ regionName_ = com.google.protobuf.ByteString.EMPTY;
+ transactionId_ = 0L;
+ scan_ = org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Scan.getDefaultInstance();
+ auditSeqNum_ = 0L;
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ if (!hasRegionName()) {
+ memoizedIsInitialized = 0;
+ return false;
+ }
+ if (!hasTransactionId()) {
+ memoizedIsInitialized = 0;
+ return false;
+ }
+ if (!hasScan()) {
+ memoizedIsInitialized = 0;
+ return false;
+ }
+ if (!hasAuditSeqNum()) {
+ memoizedIsInitialized = 0;
+ return false;
+ }
+ if (!getScan().isInitialized()) {
+ memoizedIsInitialized = 0;
+ return false;
+ }
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeBytes(1, regionName_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ output.writeInt64(2, transactionId_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ output.writeMessage(3, scan_);
+ }
+ if (((bitField0_ & 0x00000008) == 0x00000008)) {
+ output.writeInt64(4, auditSeqNum_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(1, regionName_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt64Size(2, transactionId_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(3, scan_);
+ }
+ if (((bitField0_ & 0x00000008) == 0x00000008)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt64Size(4, auditSeqNum_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+ public static org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input);
+ }
+ public static org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input, extensionRegistry);
+ }
+ public static org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code TlogDeleteRequest}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequestOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.internal_static_TlogDeleteRequest_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.internal_static_TlogDeleteRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest.class, org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest.Builder.class);
+ }
+
+ // Construct using org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ getScanFieldBuilder();
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ regionName_ = com.google.protobuf.ByteString.EMPTY;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ transactionId_ = 0L;
+ bitField0_ = (bitField0_ & ~0x00000002);
+ if (scanBuilder_ == null) {
+ scan_ = org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Scan.getDefaultInstance();
+ } else {
+ scanBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000004);
+ auditSeqNum_ = 0L;
+ bitField0_ = (bitField0_ & ~0x00000008);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.internal_static_TlogDeleteRequest_descriptor;
+ }
+
+ public org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest getDefaultInstanceForType() {
+ return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest.getDefaultInstance();
+ }
+
+ public org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest build() {
+ org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest buildPartial() {
+ org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest result = new org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ result.regionName_ = regionName_;
+ if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+ to_bitField0_ |= 0x00000002;
+ }
+ result.transactionId_ = transactionId_;
+ if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+ to_bitField0_ |= 0x00000004;
+ }
+ if (scanBuilder_ == null) {
+ result.scan_ = scan_;
+ } else {
+ result.scan_ = scanBuilder_.build();
+ }
+ if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
+ to_bitField0_ |= 0x00000008;
+ }
+ result.auditSeqNum_ = auditSeqNum_;
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest) {
+ return mergeFrom((org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest other) {
+ if (other == org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest.getDefaultInstance()) return this;
+ if (other.hasRegionName()) {
+ setRegionName(other.getRegionName());
+ }
+ if (other.hasTransactionId()) {
+ setTransactionId(other.getTransactionId());
+ }
+ if (other.hasScan()) {
+ mergeScan(other.getScan());
+ }
+ if (other.hasAuditSeqNum()) {
+ setAuditSeqNum(other.getAuditSeqNum());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ if (!hasRegionName()) {
+
+ return false;
+ }
+ if (!hasTransactionId()) {
+
+ return false;
+ }
+ if (!hasScan()) {
+
+ return false;
+ }
+ if (!hasAuditSeqNum()) {
+
+ return false;
+ }
+ if (!getScan().isInitialized()) {
+
+ return false;
+ }
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest) e.getUnfinishedMessage();
+ throw e;
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+ private int bitField0_;
+
+ // required bytes regionName = 1;
+ private com.google.protobuf.ByteString regionName_ = com.google.protobuf.ByteString.EMPTY;
+ /**
+ * <code>required bytes regionName = 1;</code>
+ */
+ public boolean hasRegionName() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ /**
+ * <code>required bytes regionName = 1;</code>
+ */
+ public com.google.protobuf.ByteString getRegionName() {
+ return regionName_;
+ }
+ /**
+ * <code>required bytes regionName = 1;</code>
+ */
+ public Builder setRegionName(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000001;
+ regionName_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>required bytes regionName = 1;</code>
+ */
+ public Builder clearRegionName() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ regionName_ = getDefaultInstance().getRegionName();
+ onChanged();
+ return this;
+ }
+
+ // required int64 transactionId = 2;
+ private long transactionId_ ;
+ /**
+ * <code>required int64 transactionId = 2;</code>
+ */
+ public boolean hasTransactionId() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ /**
+ * <code>required int64 transactionId = 2;</code>
+ */
+ public long getTransactionId() {
+ return transactionId_;
+ }
+ /**
+ * <code>required int64 transactionId = 2;</code>
+ */
+ public Builder setTransactionId(long value) {
+ bitField0_ |= 0x00000002;
+ transactionId_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>required int64 transactionId = 2;</code>
+ */
+ public Builder clearTransactionId() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ transactionId_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ // required .Scan scan = 3;
+ private org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Scan scan_ = org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Scan.getDefaultInstance();
+ private com.google.protobuf.SingleFieldBuilder<
+ org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Scan, org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Scan.Builder, org.apache.hadoop.hbase.protobuf.generated.ClientProtos.ScanOrBuilder> scanBuilder_;
+ /**
+ * <code>required .Scan scan = 3;</code>
+ */
+ public boolean hasScan() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ /**
+ * <code>required .Scan scan = 3;</code>
+ */
+ public org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Scan getScan() {
+ if (scanBuilder_ == null) {
+ return scan_;
+ } else {
+ return scanBuilder_.getMessage();
+ }
+ }
+ /**
+ * <code>required .Scan scan = 3;</code>
+ */
+ public Builder setScan(org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Scan value) {
+ if (scanBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ scan_ = value;
+ onChanged();
+ } else {
+ scanBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000004;
+ return this;
+ }
+ /**
+ * <code>required .Scan scan = 3;</code>
+ */
+ public Builder setScan(
+ org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Scan.Builder builderForValue) {
+ if (scanBuilder_ == null) {
+ scan_ = builderForValue.build();
+ onChanged();
+ } else {
+ scanBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000004;
+ return this;
+ }
+ /**
+ * <code>required .Scan scan = 3;</code>
+ */
+ public Builder mergeScan(org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Scan value) {
+ if (scanBuilder_ == null) {
+ if (((bitField0_ & 0x00000004) == 0x00000004) &&
+ scan_ != org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Scan.getDefaultInstance()) {
+ scan_ =
+ org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Scan.newBuilder(scan_).mergeFrom(value).buildPartial();
+ } else {
+ scan_ = value;
+ }
+ onChanged();
+ } else {
+ scanBuilder_.mergeFrom(value);
+ }
+ bitField0_ |= 0x00000004;
+ return this;
+ }
+ /**
+ * <code>required .Scan scan = 3;</code>
+ */
+ public Builder clearScan() {
+ if (scanBuilder_ == null) {
+ scan_ = org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Scan.getDefaultInstance();
+ onChanged();
+ } else {
+ scanBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000004);
+ return this;
+ }
+ /**
+ * <code>required .Scan scan = 3;</code>
+ */
+ public org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Scan.Builder getScanBuilder() {
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return getScanFieldBuilder().getBuilder();
+ }
+ /**
+ * <code>required .Scan scan = 3;</code>
+ */
+ public org.apache.hadoop.hbase.protobuf.generated.ClientProtos.ScanOrBuilder getScanOrBuilder() {
+ if (scanBuilder_ != null) {
+ return scanBuilder_.getMessageOrBuilder();
+ } else {
+ return scan_;
+ }
+ }
+ /**
+ * <code>required .Scan scan = 3;</code>
+ */
+ private com.google.protobuf.SingleFieldBuilder<
+ org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Scan, org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Scan.Builder, org.apache.hadoop.hbase.protobuf.generated.ClientProtos.ScanOrBuilder>
+ getScanFieldBuilder() {
+ if (scanBuilder_ == null) {
+ scanBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+ org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Scan, org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Scan.Builder, org.apache.hadoop.hbase.protobuf.generated.ClientProtos.ScanOrBuilder>(
+ scan_,
+ getParentForChildren(),
+ isClean());
+ scan_ = null;
+ }
+ return scanBuilder_;
+ }
+
+ // required int64 auditSeqNum = 4;
+ private long auditSeqNum_ ;
+ /**
+ * <code>required int64 auditSeqNum = 4;</code>
+ */
+ public boolean hasAuditSeqNum() {
+ return ((bitField0_ & 0x00000008) == 0x00000008);
+ }
+ /**
+ * <code>required int64 auditSeqNum = 4;</code>
+ */
+ public long getAuditSeqNum() {
+ return auditSeqNum_;
+ }
+ /**
+ * <code>required int64 auditSeqNum = 4;</code>
+ */
+ public Builder setAuditSeqNum(long value) {
+ bitField0_ |= 0x00000008;
+ auditSeqNum_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>required int64 auditSeqNum = 4;</code>
+ */
+ public Builder clearAuditSeqNum() {
+ bitField0_ = (bitField0_ & ~0x00000008);
+ auditSeqNum_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:TlogDeleteRequest)
+ }
+
+ static {
+ defaultInstance = new TlogDeleteRequest(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:TlogDeleteRequest)
+ }
+
+ public interface TlogDeleteResponseOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // repeated .Result result = 1;
+ /**
+ * <code>repeated .Result result = 1;</code>
+ */
+ java.util.List<org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Result>
+ getResultList();
+ /**
+ * <code>repeated .Result result = 1;</code>
+ */
+ org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Result getResult(int index);
+ /**
+ * <code>repeated .Result result = 1;</code>
+ */
+ int getResultCount();
+ /**
+ * <code>repeated .Result result = 1;</code>
+ */
+ java.util.List<? extends org.apache.hadoop.hbase.protobuf.generated.ClientProtos.ResultOrBuilder>
+ getResultOrBuilderList();
+ /**
+ * <code>repeated .Result result = 1;</code>
+ */
+ org.apache.hadoop.hbase.protobuf.generated.ClientProtos.ResultOrBuilder getResultOrBuilder(
+ int index);
+
+ // required int64 count = 2;
+ /**
+ * <code>required int64 count = 2;</code>
+ */
+ boolean hasCount();
+ /**
+ * <code>required int64 count = 2;</code>
+ */
+ long getCount();
+
+ // optional string exception = 3;
+ /**
+ * <code>optional string exception = 3;</code>
+ */
+ boolean hasException();
+ /**
+ * <code>optional string exception = 3;</code>
+ */
+ java.lang.String getException();
+ /**
+ * <code>optional string exception = 3;</code>
+ */
+ com.google.protobuf.ByteString
+ getExceptionBytes();
+
+ // optional bool hasException = 4;
+ /**
+ * <code>optional bool hasException = 4;</code>
+ */
+ boolean hasHasException();
+ /**
+ * <code>optional bool hasException = 4;</code>
+ */
+ boolean getHasException();
+ }
+ /**
+ * Protobuf type {@code TlogDeleteResponse}
+ */
+ public static final class TlogDeleteResponse extends
+ com.google.protobuf.GeneratedMessage
+ implements TlogDeleteResponseOrBuilder {
+ // Use TlogDeleteResponse.newBuilder() to construct.
+ private TlogDeleteResponse(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
+ super(builder);
+ this.unknownFields = builder.getUnknownFields();
+ }
+ private TlogDeleteResponse(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
+
+ private static final TlogDeleteResponse defaultInstance;
+ public static TlogDeleteResponse getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public TlogDeleteResponse getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ private final com.google.protobuf.UnknownFieldSet unknownFields;
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private TlogDeleteResponse(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ initFields();
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 10: {
+ if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
+ result_ = new java.util.ArrayList<org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Result>();
+ mutable_bitField0_ |= 0x00000001;
+ }
+ result_.add(input.readMessage(org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Result.PARSER, extensionRegistry));
+ break;
+ }
+ case 16: {
+ bitField0_ |= 0x00000001;
+ count_ = input.readInt64();
+ break;
+ }
+ case 26: {
+ bitField0_ |= 0x00000002;
+ exception_ = input.readBytes();
+ break;
+ }
+ case 32: {
+ bitField0_ |= 0x00000004;
+ hasException_ = input.readBool();
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e.getMessage()).setUnfinishedMessage(this);
+ } finally {
+ if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
+ result_ = java.util.Collections.unmodifiableList(result_);
+ }
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.internal_static_TlogDeleteResponse_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.internal_static_TlogDeleteResponse_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse.class, org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse.Builder.class);
+ }
+
+ public static com.google.protobuf.Parser<TlogDeleteResponse> PARSER =
+ new com.google.protobuf.AbstractParser<TlogDeleteResponse>() {
+ public TlogDeleteResponse parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new TlogDeleteResponse(input, extensionRegistry);
+ }
+ };
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<TlogDeleteResponse> getParserForType() {
+ return PARSER;
+ }
+
+ private int bitField0_;
+ // repeated .Result result = 1;
+ public static final int RESULT_FIELD_NUMBER = 1;
+ private java.util.List<org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Result> result_;
+ /**
+ * <code>repeated .Result result = 1;</code>
+ */
+ public java.util.List<org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Result> getResultList() {
+ return result_;
+ }
+ /**
+ * <code>repeated .Result result = 1;</code>
+ */
+ public java.util.List<? extends org.apache.hadoop.hbase.protobuf.generated.ClientProtos.ResultOrBuilder>
+ getResultOrBuilderList() {
+ return result_;
+ }
+ /**
+ * <code>repeated .Result result = 1;</code>
+ */
+ public int getResultCount() {
+ return result_.size();
+ }
+ /**
+ * <code>repeated .Result result = 1;</code>
+ */
+ public org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Result getResult(int index) {
+ return result_.get(index);
+ }
+ /**
+ * <code>repeated .Result result = 1;</code>
+ */
+ public org.apache.hadoop.hbase.protobuf.generated.ClientProtos.ResultOrBuilder getResultOrBuilder(
+ int index) {
+ return result_.get(index);
+ }
+
+ // required int64 count = 2;
+ public static final int COUNT_FIELD_NUMBER = 2;
+ private long count_;
+ /**
+ * <code>required int64 count = 2;</code>
+ */
+ public boolean hasCount() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ /**
+ * <code>required int64 count = 2;</code>
+ */
+ public long getCount() {
+ return count_;
+ }
+
+ // optional string exception = 3;
+ public static final int EXCEPTION_FIELD_NUMBER = 3;
+ private java.lang.Object exception_;
+ /**
+ * <code>optional string exception = 3;</code>
+ */
+ public boolean hasException() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ /**
+ * <code>optional string exception = 3;</code>
+ */
+ public java.lang.String getException() {
+ java.lang.Object ref = exception_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ if (bs.isValidUtf8()) {
+ exception_ = s;
+ }
+ return s;
+ }
+ }
+ /**
+ * <code>optional string exception = 3;</code>
+ */
+ public com.google.protobuf.ByteString
+ getExceptionBytes() {
+ java.lang.Object ref = exception_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ exception_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ // optional bool hasException = 4;
+ public static final int HASEXCEPTION_FIELD_NUMBER = 4;
+ private boolean hasException_;
+ /**
+ * <code>optional bool hasException = 4;</code>
+ */
+ public boolean hasHasException() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ /**
+ * <code>optional bool hasException = 4;</code>
+ */
+ public boolean getHasException() {
+ return hasException_;
+ }
+
+ private void initFields() {
+ result_ = java.util.Collections.emptyList();
+ count_ = 0L;
+ exception_ = "";
+ hasException_ = false;
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ if (!hasCount()) {
+ memoizedIsInitialized = 0;
+ return false;
+ }
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ for (int i = 0; i < result_.size(); i++) {
+ output.writeMessage(1, result_.get(i));
+ }
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeInt64(2, count_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ output.writeBytes(3, getExceptionBytes());
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ output.writeBool(4, hasException_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ for (int i = 0; i < result_.size(); i++) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(1, result_.get(i));
+ }
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt64Size(2, count_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(3, getExceptionBytes());
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBoolSize(4, hasException_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+ public static org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input);
+ }
+ public static org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input, extensionRegistry);
+ }
+ public static org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code TlogDeleteResponse}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponseOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.internal_static_TlogDeleteResponse_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.internal_static_TlogDeleteResponse_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse.class, org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse.Builder.class);
+ }
+
+ // Construct using org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ getResultFieldBuilder();
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ if (resultBuilder_ == null) {
+ result_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ } else {
+ resultBuilder_.clear();
+ }
+ count_ = 0L;
+ bitField0_ = (bitField0_ & ~0x00000002);
+ exception_ = "";
+ bitField0_ = (bitField0_ & ~0x00000004);
+ hasException_ = false;
+ bitField0_ = (bitField0_ & ~0x00000008);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.internal_static_TlogDeleteResponse_descriptor;
+ }
+
+ public org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse getDefaultInstanceForType() {
+ return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse.getDefaultInstance();
+ }
+
+ public org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse build() {
+ org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse buildPartial() {
+ org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse result = new org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (resultBuilder_ == null) {
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ result_ = java.util.Collections.unmodifiableList(result_);
+ bitField0_ = (bitField0_ & ~0x00000001);
+ }
+ result.result_ = result_;
+ } else {
+ result.result_ = resultBuilder_.build();
+ }
+ if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ result.count_ = count_;
+ if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+ to_bitField0_ |= 0x00000002;
+ }
+ result.exception_ = exception_;
+ if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
+ to_bitField0_ |= 0x00000004;
+ }
+ result.hasException_ = hasException_;
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse) {
+ return mergeFrom((org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse other) {
+ if (other == org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse.getDefaultInstance()) return this;
+ if (resultBuilder_ == null) {
+ if (!other.result_.isEmpty()) {
+ if (result_.isEmpty()) {
+ result_ = other.result_;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ } else {
+ ensureResultIsMutable();
+ result_.addAll(other.result_);
+ }
+ onChanged();
+ }
+ } else {
+ if (!other.result_.isEmpty()) {
+ if (resultBuilder_.isEmpty()) {
+ resultBuilder_.dispose();
+ resultBuilder_ = null;
+ result_ = other.result_;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ resultBuilder_ =
+ com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
+ getResultFieldBuilder() : null;
+ } else {
+ resultBuilder_.addAllMessages(other.result_);
+ }
+ }
+ }
+ if (other.hasCount()) {
+ setCount(other.getCount());
+ }
+ if (other.hasException()) {
+ bitField0_ |= 0x00000004;
+ exception_ = other.exception_;
+ onChanged();
+ }
+ if (other.hasHasException()) {
+ setHasException(other.getHasException());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ if (!hasCount()) {
+
+ return false;
+ }
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse) e.getUnfinishedMessage();
+ throw e;
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+ private int bitField0_;
+
+ // repeated .Result result = 1;
+ private java.util.List<org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Result> result_ =
+ java.util.Collections.emptyList();
+ private void ensureResultIsMutable() {
+ if (!((bitField0_ & 0x00000001) == 0x00000001)) {
+ result_ = new java.util.ArrayList<org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Result>(result_);
+ bitField0_ |= 0x00000001;
+ }
+ }
+
+ private com.google.protobuf.RepeatedFieldBuilder<
+ org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Result, org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Result.Builder, org.apache.hadoop.hbase.protobuf.generated.ClientProtos.ResultOrBuilder> resultBuilder_;
+
+ /**
+ * <code>repeated .Result result = 1;</code>
+ */
+ public java.util.List<org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Result> getResultList() {
+ if (resultBuilder_ == null) {
+ return java.util.Collections.unmodifiableList(result_);
+ } else {
+ return resultBuilder_.getMessageList();
+ }
+ }
+ /**
+ * <code>repeated .Result result = 1;</code>
+ */
+ public int getResultCount() {
+ if (resultBuilder_ == null) {
+ return result_.size();
+ } else {
+ return resultBuilder_.getCount();
+ }
+ }
+ /**
+ * <code>repeated .Result result = 1;</code>
+ */
+ public org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Result getResult(int index) {
+ if (resultBuilder_ == null) {
+ return result_.get(index);
+ } else {
+ return resultBuilder_.getMessage(index);
+ }
+ }
+ /**
+ * <code>repeated .Result result = 1;</code>
+ */
+ public Builder setResult(
+ int index, org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Result value) {
+ if (resultBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureResultIsMutable();
+ result_.set(index, value);
+ onChanged();
+ } else {
+ resultBuilder_.setMessage(index, value);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .Result result = 1;</code>
+ */
+ public Builder setResult(
+ int index, org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Result.Builder builderForValue) {
+ if (resultBuilder_ == null) {
+ ensureResultIsMutable();
+ result_.set(index, builderForValue.build());
+ onChanged();
+ } else {
+ resultBuilder_.setMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .Result result = 1;</code>
+ */
+ public Builder addResult(org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Result value) {
+ if (resultBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureResultIsMutable();
+ result_.add(value);
+ onChanged();
+ } else {
+ resultBuilder_.addMessage(value);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .Result result = 1;</code>
+ */
+ public Builder addResult(
+ int index, org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Result value) {
+ if (resultBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureResultIsMutable();
+ result_.add(index, value);
+ onChanged();
+ } else {
+ resultBuilder_.addMessage(index, value);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .Result result = 1;</code>
+ */
+ public Builder addResult(
+ org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Result.Builder builderForValue) {
+ if (resultBuilder_ == null) {
+ ensureResultIsMutable();
+ result_.add(builderForValue.build());
+ onChanged();
+ } else {
+ resultBuilder_.addMessage(builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .Result result = 1;</code>
+ */
+ public Builder addResult(
+ int index, org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Result.Builder builderForValue) {
+ if (resultBuilder_ == null) {
+ ensureResultIsMutable();
+ result_.add(index, builderForValue.build());
+ onChanged();
+ } else {
+ resultBuilder_.addMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .Result result = 1;</code>
+ */
+ public Builder addAllResult(
+ java.lang.Iterable<? extends org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Result> values) {
+ if (resultBuilder_ == null) {
+ ensureResultIsMutable();
+ super.addAll(values, result_);
+ onChanged();
+ } else {
+ resultBuilder_.addAllMessages(values);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .Result result = 1;</code>
+ */
+ public Builder clearResult() {
+ if (resultBuilder_ == null) {
+ result_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ onChanged();
+ } else {
+ resultBuilder_.clear();
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .Result result = 1;</code>
+ */
+ public Builder removeResult(int index) {
+ if (resultBuilder_ == null) {
+ ensureResultIsMutable();
+ result_.remove(index);
+ onChanged();
+ } else {
+ resultBuilder_.remove(index);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .Result result = 1;</code>
+ */
+ public org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Result.Builder getResultBuilder(
+ int index) {
+ return getResultFieldBuilder().getBuilder(index);
+ }
+ /**
+ * <code>repeated .Result result = 1;</code>
+ */
+ public org.apache.hadoop.hbase.protobuf.generated.ClientProtos.ResultOrBuilder getResultOrBuilder(
+ int index) {
+ if (resultBuilder_ == null) {
+ return result_.get(index); } else {
+ return resultBuilder_.getMessageOrBuilder(index);
+ }
+ }
+ /**
+ * <code>repeated .Result result = 1;</code>
+ */
+ public java.util.List<? extends org.apache.hadoop.hbase.protobuf.generated.ClientProtos.ResultOrBuilder>
+ getResultOrBuilderList() {
+ if (resultBuilder_ != null) {
+ return resultBuilder_.getMessageOrBuilderList();
+ } else {
+ return java.util.Collections.unmodifiableList(result_);
+ }
+ }
+ /**
+ * <code>repeated .Result result = 1;</code>
+ */
+ public org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Result.Builder addResultBuilder() {
+ return getResultFieldBuilder().addBuilder(
+ org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Result.getDefaultInstance());
+ }
+ /**
+ * <code>repeated .Result result = 1;</code>
+ */
+ public org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Result.Builder addResultBuilder(
+ int index) {
+ return getResultFieldBuilder().addBuilder(
+ index, org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Result.getDefaultInstance());
+ }
+ /**
+ * <code>repeated .Result result = 1;</code>
+ */
+ public java.util.List<org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Result.Builder>
+ getResultBuilderList() {
+ return getResultFieldBuilder().getBuilderList();
+ }
+ private com.google.protobuf.RepeatedFieldBuilder<
+ org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Result, org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Result.Builder, org.apache.hadoop.hbase.protobuf.generated.ClientProtos.ResultOrBuilder>
+ getResultFieldBuilder() {
+ if (resultBuilder_ == null) {
+ resultBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
+ org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Result, org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Result.Builder, org.apache.hadoop.hbase.protobuf.generated.ClientProtos.ResultOrBuilder>(
+ result_,
+ ((bitField0_ & 0x00000001) == 0x00000001),
+ getParentForChildren(),
+ isClean());
+ result_ = null;
+ }
+ return resultBuilder_;
+ }
+
+ // required int64 count = 2;
+ private long count_ ;
+ /**
+ * <code>required int64 count = 2;</code>
+ */
+ public boolean hasCount() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ /**
+ * <code>required int64 count = 2;</code>
+ */
+ public long getCount() {
+ return count_;
+ }
+ /**
+ * <code>required int64 count = 2;</code>
+ */
+ public Builder setCount(long value) {
+ bitField0_ |= 0x00000002;
+ count_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>required int64 count = 2;</code>
+ */
+ public Builder clearCount() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ count_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ // optional string exception = 3;
+ private java.lang.Object exception_ = "";
+ /**
+ * <code>optional string exception = 3;</code>
+ */
+ public boolean hasException() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ /**
+ * <code>optional string exception = 3;</code>
+ */
+ public java.lang.String getException() {
+ java.lang.Object ref = exception_;
+ if (!(ref instanceof java.lang.String)) {
+ java.lang.String s = ((com.google.protobuf.ByteString) ref)
+ .toStringUtf8();
+ exception_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * <code>optional string exception = 3;</code>
+ */
+ public com.google.protobuf.ByteString
+ getExceptionBytes() {
+ java.lang.Object ref = exception_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ exception_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * <code>optional string exception = 3;</code>
+ */
+ public Builder setException(
+ java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000004;
+ exception_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional string exception = 3;</code>
+ */
+ public Builder clearException() {
+ bitField0_ = (bitField0_ & ~0x00000004);
+ exception_ = getDefaultInstance().getException();
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional string exception = 3;</code>
+ */
+ public Builder setExceptionBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000004;
+ exception_ = value;
+ onChanged();
+ return this;
+ }
+
+ // optional bool hasException = 4;
+ private boolean hasException_ ;
+ /**
+ * <code>optional bool hasException = 4;</code>
+ */
+ public boolean hasHasException() {
+ return ((bitField0_ & 0x00000008) == 0x00000008);
+ }
+ /**
+ * <code>optional bool hasException = 4;</code>
+ */
+ public boolean getHasException() {
+ return hasException_;
+ }
+ /**
+ * <code>optional bool hasException = 4;</code>
+ */
+ public Builder setHasException(boolean value) {
+ bitField0_ |= 0x00000008;
+ hasException_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional bool hasException = 4;</code>
+ */
+ public Builder clearHasException() {
+ bitField0_ = (bitField0_ & ~0x00000008);
+ hasException_ = false;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:TlogDeleteResponse)
+ }
+
+ static {
+ defaultInstance = new TlogDeleteResponse(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:TlogDeleteResponse)
+ }
+
public interface TransactionalAggregateRequestOrBuilder
extends com.google.protobuf.MessageOrBuilder {
@@ -31227,6 +33023,14 @@ public final class TrxRegionProtos {
com.google.protobuf.RpcCallback<org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.RecoveryRequestResponse> done);
/**
+ * <code>rpc deleteTlogEntries(.TlogDeleteRequest) returns (.TlogDeleteResponse);</code>
+ */
+ public abstract void deleteTlogEntries(
+ com.google.protobuf.RpcController controller,
+ org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest request,
+ com.google.protobuf.RpcCallback<org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse> done);
+
+ /**
* <code>rpc GetMax(.TransactionalAggregateRequest) returns (.TransactionalAggregateResponse);</code>
*/
public abstract void getMax(
@@ -31440,6 +33244,14 @@ public final class TrxRegionProtos {
}
@java.lang.Override
+ public void deleteTlogEntries(
+ com.google.protobuf.RpcController controller,
+ org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest request,
+ com.google.protobuf.RpcCallback<org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse> done) {
+ impl.deleteTlogEntries(controller, request, done);
+ }
+
+ @java.lang.Override
public void getMax(
com.google.protobuf.RpcController controller,
org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest request,
@@ -31556,18 +33368,20 @@ public final class TrxRegionProtos {
case 18:
return impl.recoveryRequest(controller, (org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.RecoveryRequestRequest)request);
case 19:
- return impl.getMax(controller, (org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest)request);
+ return impl.deleteTlogEntries(controller, (org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest)request);
case 20:
- return impl.getMin(controller, (org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest)request);
+ return impl.getMax(controller, (org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest)request);
case 21:
- return impl.getSum(controller, (org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest)request);
+ return impl.getMin(controller, (org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest)request);
case 22:
- return impl.getRowNum(controller, (org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest)request);
+ return impl.getSum(controller, (org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest)request);
case 23:
- return impl.getAvg(controller, (org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest)request);
+ return impl.getRowNum(controller, (org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest)request);
case 24:
- return impl.getStd(controller, (org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest)request);
+ return impl.getAvg(controller, (org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest)request);
case 25:
+ return impl.getStd(controller, (org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest)request);
+ case 26:
return impl.getMedian(controller, (org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest)request);
default:
throw new java.lang.AssertionError("Can't get here.");
@@ -31622,7 +33436,7 @@ public final class TrxRegionProtos {
case 18:
return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.RecoveryRequestRequest.getDefaultInstance();
case 19:
- return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest.getDefaultInstance();
+ return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest.getDefaultInstance();
case 20:
return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest.getDefaultInstance();
case 21:
@@ -31635,6 +33449,8 @@ public final class TrxRegionProtos {
return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest.getDefaultInstance();
case 25:
return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest.getDefaultInstance();
+ case 26:
+ return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest.getDefaultInstance();
default:
throw new java.lang.AssertionError("Can't get here.");
}
@@ -31688,7 +33504,7 @@ public final class TrxRegionProtos {
case 18:
return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.RecoveryRequestResponse.getDefaultInstance();
case 19:
- return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateResponse.getDefaultInstance();
+ return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse.getDefaultInstance();
case 20:
return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateResponse.getDefaultInstance();
case 21:
@@ -31701,6 +33517,8 @@ public final class TrxRegionProtos {
return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateResponse.getDefaultInstance();
case 25:
return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateResponse.getDefaultInstance();
+ case 26:
+ return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateResponse.getDefaultInstance();
default:
throw new java.lang.AssertionError("Can't get here.");
}
@@ -31862,6 +33680,14 @@ public final class TrxRegionProtos {
com.google.protobuf.RpcCallback<org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.RecoveryRequestResponse> done);
/**
+ * <code>rpc deleteTlogEntries(.TlogDeleteRequest) returns (.TlogDeleteResponse);</code>
+ */
+ public abstract void deleteTlogEntries(
+ com.google.protobuf.RpcController controller,
+ org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest request,
+ com.google.protobuf.RpcCallback<org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse> done);
+
+ /**
* <code>rpc GetMax(.TransactionalAggregateRequest) returns (.TransactionalAggregateResponse);</code>
*/
public abstract void getMax(
@@ -32035,36 +33861,41 @@ public final class TrxRegionProtos {
done));
return;
case 19:
+ this.deleteTlogEntries(controller, (org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest)request,
+ com.google.protobuf.RpcUtil.<org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse>specializeCallback(
+ done));
+ return;
+ case 20:
this.getMax(controller, (org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest)request,
com.google.protobuf.RpcUtil.<org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateResponse>specializeCallback(
done));
return;
- case 20:
+ case 21:
this.getMin(controller, (org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest)request,
com.google.protobuf.RpcUtil.<org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateResponse>specializeCallback(
done));
return;
- case 21:
+ case 22:
this.getSum(controller, (org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest)request,
com.google.protobuf.RpcUtil.<org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateResponse>specializeCallback(
done));
return;
- case 22:
+ case 23:
this.getRowNum(controller, (org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest)request,
com.google.protobuf.RpcUtil.<org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateResponse>specializeCallback(
done));
return;
- case 23:
+ case 24:
this.getAvg(controller, (org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest)request,
com.google.protobuf.RpcUtil.<org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateResponse>specializeCallback(
done));
return;
- case 24:
+ case 25:
this.getStd(controller, (org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest)request,
com.google.protobuf.RpcUtil.<org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateResponse>specializeCallback(
done));
return;
- case 25:
+ case 26:
this.getMedian(controller, (org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest)request,
com.google.protobuf.RpcUtil.<org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateResponse>specializeCallback(
done));
@@ -32122,7 +33953,7 @@ public final class TrxRegionProtos {
case 18:
return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.RecoveryRequestRequest.getDefaultInstance();
case 19:
- return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest.getDefaultInstance();
+ return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest.getDefaultInstance();
case 20:
return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest.getDefaultInstance();
case 21:
@@ -32135,6 +33966,8 @@ public final class TrxRegionProtos {
return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest.getDefaultInstance();
case 25:
return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest.getDefaultInstance();
+ case 26:
+ return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest.getDefaultInstance();
default:
throw new java.lang.AssertionError("Can't get here.");
}
@@ -32188,7 +34021,7 @@ public final class TrxRegionProtos {
case 18:
return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.RecoveryRequestResponse.getDefaultInstance();
case 19:
- return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateResponse.getDefaultInstance();
+ return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse.getDefaultInstance();
case 20:
return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateResponse.getDefaultInstance();
case 21:
@@ -32201,6 +34034,8 @@ public final class TrxRegionProtos {
return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateResponse.getDefaultInstance();
case 25:
return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateResponse.getDefaultInstance();
+ case 26:
+ return org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateResponse.getDefaultInstance();
default:
throw new java.lang.AssertionError("Can't get here.");
}
@@ -32507,12 +34342,27 @@ public final class TrxRegionProtos {
org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.RecoveryRequestResponse.getDefaultInstance()));
}
+ public void deleteTlogEntries(
+ com.google.protobuf.RpcController controller,
+ org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest request,
+ com.google.protobuf.RpcCallback<org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse> done) {
+ channel.callMethod(
+ getDescriptor().getMethods().get(19),
+ controller,
+ request,
+ org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse.getDefaultInstance(),
+ com.google.protobuf.RpcUtil.generalizeCallback(
+ done,
+ org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse.class,
+ org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse.getDefaultInstance()));
+ }
+
public void getMax(
com.google.protobuf.RpcController controller,
org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest request,
com.google.protobuf.RpcCallback<org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateResponse> done) {
channel.callMethod(
- getDescriptor().getMethods().get(19),
+ getDescriptor().getMethods().get(20),
controller,
request,
org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateResponse.getDefaultInstance(),
@@ -32527,7 +34377,7 @@ public final class TrxRegionProtos {
org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest request,
com.google.protobuf.RpcCallback<org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateResponse> done) {
channel.callMethod(
- getDescriptor().getMethods().get(20),
+ getDescriptor().getMethods().get(21),
controller,
request,
org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateResponse.getDefaultInstance(),
@@ -32542,7 +34392,7 @@ public final class TrxRegionProtos {
org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest request,
com.google.protobuf.RpcCallback<org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateResponse> done) {
channel.callMethod(
- getDescriptor().getMethods().get(21),
+ getDescriptor().getMethods().get(22),
controller,
request,
org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateResponse.getDefaultInstance(),
@@ -32557,7 +34407,7 @@ public final class TrxRegionProtos {
org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest request,
com.google.protobuf.RpcCallback<org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateResponse> done) {
channel.callMethod(
- getDescriptor().getMethods().get(22),
+ getDescriptor().getMethods().get(23),
controller,
request,
org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateResponse.getDefaultInstance(),
@@ -32572,7 +34422,7 @@ public final class TrxRegionProtos {
org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest request,
com.google.protobuf.RpcCallback<org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateResponse> done) {
channel.callMethod(
- getDescriptor().getMethods().get(23),
+ getDescriptor().getMethods().get(24),
controller,
request,
org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateResponse.getDefaultInstance(),
@@ -32587,7 +34437,7 @@ public final class TrxRegionProtos {
org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest request,
com.google.protobuf.RpcCallback<org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateResponse> done) {
channel.callMethod(
- getDescriptor().getMethods().get(24),
+ getDescriptor().getMethods().get(25),
controller,
request,
org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateResponse.getDefaultInstance(),
@@ -32602,7 +34452,7 @@ public final class TrxRegionProtos {
org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest request,
com.google.protobuf.RpcCallback<org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateResponse> done) {
channel.callMethod(
- getDescriptor().getMethods().get(25),
+ getDescriptor().getMethods().get(26),
controller,
request,
org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateResponse.getDefaultInstance(),
@@ -32714,6 +34564,11 @@ public final class TrxRegionProtos {
org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.RecoveryRequestRequest request)
throws com.google.protobuf.ServiceException;
+ public org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse deleteTlogEntries(
+ com.google.protobuf.RpcController controller,
+ org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest request)
+ throws com.google.protobuf.ServiceException;
+
public org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateResponse getMax(
com.google.protobuf.RpcController controller,
org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest request)
@@ -32985,12 +34840,24 @@ public final class TrxRegionProtos {
}
+ public org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse deleteTlogEntries(
+ com.google.protobuf.RpcController controller,
+ org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest request)
+ throws com.google.protobuf.ServiceException {
+ return (org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse) channel.callBlockingMethod(
+ getDescriptor().getMethods().get(19),
+ controller,
+ request,
+ org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse.getDefaultInstance());
+ }
+
+
public org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateResponse getMax(
com.google.protobuf.RpcController co
<TRUNCATED>
[4/4] incubator-trafodion git commit: Merge [TRAFODION-1703] PR 285
Reduce overhead of deleting old Tlog entries
Posted by db...@apache.org.
Merge [TRAFODION-1703] PR 285 Reduce overhead of deleting old Tlog entries
Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/e62e22b6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/e62e22b6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/e62e22b6
Branch: refs/heads/master
Commit: e62e22b61f99f1f98f0daf5dab7d1096707e68ab
Parents: 1741235 cea9774
Author: Dave Birdsall <db...@apache.org>
Authored: Fri Jan 29 22:08:10 2016 +0000
Committer: Dave Birdsall <db...@apache.org>
Committed: Fri Jan 29 22:08:10 2016 +0000
----------------------------------------------------------------------
.../transactional/TrxRegionEndpoint.java | 201 +-
.../generated/TrxRegionProtos.java | 2092 +++++++++++++++++-
.../hbase-trx/src/main/protobuf/TrxRegion.proto | 16 +
.../java/org/trafodion/dtm/TmAuditTlog.java | 349 ++-
4 files changed, 2507 insertions(+), 151 deletions(-)
----------------------------------------------------------------------
[3/4] incubator-trafodion git commit: Fix for [TRAFODION-1703] Lower
overhead in deleting old Tlog entries
Posted by db...@apache.org.
Fix for [TRAFODION-1703]
Lower overhead in deleting old Tlog entries
Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/cea97749
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/cea97749
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/cea97749
Branch: refs/heads/master
Commit: cea9774930df03d669bacba4e36d34a744d13f66
Parents: 02c6c32
Author: Sean Broeder <sb...@edev03.esgyn.local>
Authored: Tue Jan 26 13:40:38 2016 +0000
Committer: Sean Broeder <sb...@edev03.esgyn.local>
Committed: Tue Jan 26 13:40:38 2016 +0000
----------------------------------------------------------------------
.../transactional/TrxRegionEndpoint.java | 201 +-
.../generated/TrxRegionProtos.java | 2092 +++++++++++++++++-
.../hbase-trx/src/main/protobuf/TrxRegion.proto | 16 +
.../java/org/trafodion/dtm/TmAuditTlog.java | 349 ++-
4 files changed, 2507 insertions(+), 151 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/cea97749/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/coprocessor/transactional/TrxRegionEndpoint.java
----------------------------------------------------------------------
diff --git a/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/coprocessor/transactional/TrxRegionEndpoint.java b/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/coprocessor/transactional/TrxRegionEndpoint.java
index 804afdf..c7fbbda 100755
--- a/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/coprocessor/transactional/TrxRegionEndpoint.java
+++ b/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/coprocessor/transactional/TrxRegionEndpoint.java
@@ -61,6 +61,7 @@ import java.util.NavigableSet;
import java.util.Set;
import java.util.SortedMap;
import java.util.SortedSet;
+import java.util.StringTokenizer;
import java.util.TreeMap;
import java.util.TreeSet;
import java.util.UUID;
@@ -207,6 +208,8 @@ import org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProt
import org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.PutMultipleTransactionalResponse;
import org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.RecoveryRequestRequest;
import org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.RecoveryRequestResponse;
+import org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteRequest;
+import org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse;
import org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateRequest;
import org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TransactionalAggregateResponse;
import org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TrxRegionService;
@@ -2145,6 +2148,199 @@ CoprocessorService, Coprocessor {
done.run(presponse);
}
+ public void deleteTlogEntries(RpcController controller,
+ TlogDeleteRequest request, RpcCallback<TlogDeleteResponse> done) {
+ boolean hasMore = true;
+ RegionScanner scanner = null;
+ Throwable t = null;
+ ScannerTimeoutException ste = null;
+ OutOfOrderProtocolException oop = null;
+ OutOfOrderScannerNextException ooo = null;
+ UnknownScannerException use = null;
+ MemoryUsageException mue = null;
+ WrongRegionException wre = null;
+ Exception ne = null;
+ Scan scan = null;
+ List<Cell> cellResults = new ArrayList<Cell>();
+ org.apache.hadoop.hbase.client.Result result = null;
+ long transId = request.getTransactionId();
+ long lvAsn = request.getAuditSeqNum();
+ try{
+ scan = ProtobufUtil.toScan(request.getScan());
+ prepareScanner(scan);
+ scanner = getScanner(transId, scan);
+ }
+ catch (Exception e){
+ if (LOG.isTraceEnabled()) LOG.trace("deleteTlogEntries Exception in region: "
+ + regionInfo.getRegionNameAsString() + " getting scanner " + e );
+ }
+
+ long count = 0L;
+ boolean shouldContinue = true;
+
+ if (LOG.isTraceEnabled()) LOG.trace("deleteTlogEntries ENTRY. Records older than " + lvAsn
+ + " will be deleted in region: " + regionInfo.getRegionNameAsString());
+
+ // There should be a matching key in the transactionsById map
+ // associated with this transaction id. If there is not
+ // one, then the initial openScanner call for the transaction
+ // id was not called. This is a protocol error requiring
+ // openScanner, performScan followed by a closeScanner.
+
+ String key = getTransactionalUniqueId(transId);
+ boolean keyFound = transactionsById.containsKey(key);
+
+ if (keyFound != true){
+ if (LOG.isTraceEnabled()) LOG.trace("TrxRegionEndpoint coprocessor: deleteTlogEntries - Unknown transaction ["
+ + transId + "] in region [" + m_Region.getRegionInfo().getRegionNameAsString()
+ + "], will create an OutOfOrderProtocol exception ");
+ oop = new OutOfOrderProtocolException("deleteTlogEntries does not have an active transaction with an open scanner, txId: " + transId);
+ }
+
+ if (oop == null) {
+ try {
+
+ if (scanner != null){
+ if (LOG.isTraceEnabled()) LOG.trace("TrxRegionEndpoint coprocessor: deleteTlogEntries - txId "
+ + transId + ", scanner is not null");
+ while (shouldContinue) {
+ hasMore = scanner.next(cellResults);
+ result = Result.create(cellResults);
+ if (!result.isEmpty()) {
+ for (Cell cell : result.rawCells()) {
+ String valueString = new String(CellUtil.cloneValue(cell));
+ StringTokenizer st = new StringTokenizer(valueString, ",");
+ if (st.hasMoreElements()) {
+ String asnToken = st.nextElement().toString() ;
+ String transidToken = st.nextElement().toString() ;
+ if (LOG.isTraceEnabled()) LOG.trace("TrxRegionEndpoint coprocessor: deleteTlogEntries transidToken: "
+ + transidToken + " asnToken: " + asnToken);
+ if (Long.parseLong(asnToken) < lvAsn) {
+ if (LOG.isTraceEnabled()) LOG.trace("Deleting transid: " + transidToken
+ + " from region: " + m_Region.getRegionInfo().getRegionNameAsString());
+ try {
+ Delete d = new Delete(result.getRow());
+ m_Region.delete(d);
+ }
+
+ catch (Exception e) {
+ LOG.warn("TrxRegionEndpoint coprocessor: deleteTlogEntries -"
+ + " txId " + transidToken + ", Executing delete caught an exception " + e);
+ throw new IOException(e.toString());
+ }
+ count++;
+ } else {
+ if (LOG.isTraceEnabled()) LOG.trace("deleteTlogEntries Ending scan at asn: " + asnToken
+ + ", transid: " + transidToken +
+ " because it is not less than the comparator: " + lvAsn +
+ " in region: " + m_Region.getRegionInfo().getRegionNameAsString());
+ shouldContinue = false;
+ break;
+ }
+ } // if (st.hasMoreElements()
+ } // for (Cell cell : result.rawCells()
+ } // if (!result.isEmpty()
+ cellResults.clear();
+
+ if (!hasMore){
+ shouldContinue = false;
+ }
+ } // while (shouldContinue)
+ if (LOG.isTraceEnabled()) LOG.trace("TrxRegionEndpoint coprocessor: deleteTlogEntries - txId "
+ + transId + ", count is " + count + ", hasMore is " + hasMore
+ + ", result " + result.isEmpty());
+ }
+ else {
+ if (LOG.isTraceEnabled()) LOG.trace("TrxRegionEndpoint coprocessor: deleteTlogEntries - txId "
+ + transId + ", scanner is null");
+ }
+ } catch(OutOfOrderScannerNextException ooone) {
+ if (LOG.isTraceEnabled()) LOG.trace("TrxRegionEndpoint coprocessor: deleteTlogEntries - txId "
+ + transId + " Caught OutOfOrderScannerNextException "
+ + ooone.getMessage() + " " + stackTraceToString(ooone));
+ ooo = ooone;
+ } catch(ScannerTimeoutException cste) {
+ if (LOG.isTraceEnabled()) LOG.trace("TrxRegionEndpoint coprocessor: deleteTlogEntries - txId "
+ + transId + " Caught ScannerTimeoutException "
+ + cste.getMessage() + " " + stackTraceToString(cste));
+ ste = cste;
+ } catch(Throwable e) {
+ if (LOG.isTraceEnabled()) LOG.trace("TrxRegionEndpoint coprocessor: deleteTlogEntries - txId "
+ + transId + " Caught throwable exception "
+ + e.getMessage() + " " + stackTraceToString(e));
+ t = e;
+ }
+ if (scanner != null) {
+ try {
+ if (LOG.isTraceEnabled()) LOG.trace("TrxRegionEndpoint coprocessor: deleteTlogEntries - txId "
+ + transId + ", closing the scanner, region is " + regionInfo.getRegionNameAsString());
+ scanner.close();
+ } catch(Exception e) {
+ if (LOG.isTraceEnabled()) LOG.trace("TrxRegionEndpoint coprocessor: deleteTlogEntries - transaction id "
+ + transId + ", Caught general exception " + e.getMessage() + " " + stackTraceToString(e));
+ ne = e;
+ }
+ }
+ }
+
+ org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos.TlogDeleteResponse.Builder deleteResponseBuilder = TlogDeleteResponse.newBuilder();
+ deleteResponseBuilder.setCount(count);
+ deleteResponseBuilder.setHasException(false);
+
+ if (t != null){
+ deleteResponseBuilder.setHasException(true);
+ deleteResponseBuilder.setException(t.toString());
+ }
+
+ if (ste != null){
+ deleteResponseBuilder.setHasException(true);
+ deleteResponseBuilder.setException(ste.toString());
+ }
+
+ if (wre != null){
+ deleteResponseBuilder.setHasException(true);
+ deleteResponseBuilder.setException(wre.toString());
+ }
+
+ if (ne != null){
+ deleteResponseBuilder.setHasException(true);
+ deleteResponseBuilder.setException(ne.toString());
+ }
+
+ if (ooo != null){
+ deleteResponseBuilder.setHasException(true);
+ deleteResponseBuilder.setException(ooo.toString());
+ }
+
+ if (use != null){
+ deleteResponseBuilder.setHasException(true);
+ deleteResponseBuilder.setException(use.toString());
+ }
+
+ if (oop != null){
+ if (this.suppressOutOfOrderProtocolException == false){
+ deleteResponseBuilder.setHasException(true);
+ deleteResponseBuilder.setException(oop.toString());
+ LOG.warn("TrxRegionEndpoint coprocessor: deleteTlogEntries - OutOfOrderProtocolException, transaction was not found, txId: "
+ + transId + ", return exception" + ", regionName " + regionInfo.getRegionNameAsString());
+ }
+ else{
+ LOG.warn("TrxRegionEndpoint coprocessor: deleteTlogEntries - suppressing OutOfOrderProtocolException, transaction was not found, txId: "
+ + transId + ", regionName " + regionInfo.getRegionNameAsString());
+ }
+ }
+
+ if (mue != null){
+ if (LOG.isTraceEnabled()) LOG.trace("TrxRegionEndpoint coprocessor: deleteTlogEntries - performing memoryPercentage "
+ + memoryPercentage + ", posting memory usage exceeds indicated percentage");
+ deleteResponseBuilder.setHasException(true);
+ deleteResponseBuilder.setException(mue.toString());
+ }
+
+ TlogDeleteResponse TlogDel_response = deleteResponseBuilder.build();
+ done.run(TlogDel_response);
+ }
+
@Override
public void put(RpcController controller,
PutTransactionalRequest request,
@@ -4607,7 +4803,7 @@ CoprocessorService, Coprocessor {
state.setSequenceNumber(nextSequenceId.getAndIncrement());
commitedTransactionsBySequenceNumber.put(state.getSequenceNumber(), state);
if (LOG.isTraceEnabled()) LOG.trace("TrxRegionEndpoint coprocessor: Transaction " + transactionId
- + " found in region " + m_Region.getRegionInfo().getRegionNameAsString()
+ + " found in region " + lv_regionName
+ ". Adding to commitedTransactionsBySequenceNumber for sequence number " + state.getSequenceNumber());
}
commitCheckEndTime = putBySequenceEndTime = System.nanoTime();
@@ -4767,7 +4963,8 @@ CoprocessorService, Coprocessor {
if(state.getSplitRetry())
return COMMIT_RESEND;
retireTransaction(state, true);
- if (LOG.isDebugEnabled()) LOG.debug("TrxRegionEndpoint coprocessor: commitRequest READ ONLY -- EXIT txId: " + transactionId);
+ if (LOG.isDebugEnabled()) LOG.debug("TrxRegionEndpoint coprocessor: commitRequest READ ONLY for participant "
+ + participantNum + " -- EXIT txId: " + transactionId + ", regionName " + regionInfo.getRegionNameAsString());
return COMMIT_OK_READ_ONLY;
}