Repository: incubator-trafodion Updated Branches: refs/heads/master 9bf3176ee -> 667886e76
deprecated put.getFamilyMap Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/dd2ea96f Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/dd2ea96f Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/dd2ea96f Branch: refs/heads/master Commit: dd2ea96f4743d39d1cab76e3efb8022f25dfac64 Parents: cce8b85 Author: aven <aven@esgvm-2.novalocal> Authored: Tue Nov 10 04:55:08 2015 +0000 Committer: aven <aven@esgvm-2.novalocal> Committed: Tue Nov 10 04:55:08 2015 +0000 ---------------------------------------------------------------------- .../transactional/SsccTransactionalTable.java | 34 +++++----- .../transactional/TransactionalTable.java | 37 +++++----- .../SingleVersionDeleteNotSupported.java | 11 +-- .../transactional/TrxTransactionState.java | 71 ++++++++++---------- 4 files changed, 79 insertions(+), 74 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/dd2ea96f/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/SsccTransactionalTable.java ---------------------------------------------------------------------- diff --git a/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/SsccTransactionalTable.java b/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/SsccTransactionalTable.java index c2ded05..b4e2dec 100644 --- a/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/SsccTransactionalTable.java +++ b/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/SsccTransactionalTable.java @@ -61,6 +61,7 @@ import org.apache.hadoop.hbase.client.HConnection; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hbase.Cell; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HRegionLocation; import org.apache.hadoop.hbase.KeyValue; @@ -692,22 +693,23 @@ if (LOG.isTraceEnabled()) LOG.trace("checkAndPut, seting request startid: " + tr } - // validate for well-formedness - public void validatePut(final Put put) throws IllegalArgumentException { - if (put.isEmpty()) { - throw new IllegalArgumentException("No columns to insert"); - } - if (maxKeyValueSize > 0) { - for (List<KeyValue> list : put.getFamilyMap().values()) { - for (KeyValue kv : list) { - if (kv.getLength() > maxKeyValueSize) { - throw new IllegalArgumentException( - "KeyValue size too large"); - } - } - } - } - } + // validate for well-formedness + public void validatePut(final Put put) throws IllegalArgumentException { + if (put.isEmpty()) { + throw new IllegalArgumentException("No columns to insert"); + } + if (maxKeyValueSize > 0) { + for (List<Cell> list : put.getFamilyCellMap().values()) { + for (Cell c : list) { + KeyValue kv = new KeyValue(c); + if (kv.getLength() > maxKeyValueSize) { + throw new IllegalArgumentException("KeyValue size too large"); + } + } + } + } + } + public HRegionLocation getRegionLocation(byte[] row, boolean f) throws IOException { return super.getRegionLocation(row, f); http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/dd2ea96f/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/TransactionalTable.java ---------------------------------------------------------------------- diff --git a/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/TransactionalTable.java b/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/TransactionalTable.java index 419664b..b1df14c 100755 --- a/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/TransactionalTable.java +++ b/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/TransactionalTable.java @@ -58,7 +58,6 @@ import java.util.List; import java.util.Map; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; -import java.io.InterruptedIOException; import org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException; import org.apache.commons.codec.binary.Hex; @@ -67,6 +66,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hbase.Cell; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HRegionLocation; import org.apache.hadoop.hbase.KeyValue; @@ -765,23 +765,24 @@ public class TransactionalTable extends HTable implements TransactionalTableClie } } - // validate for well-formedness - public void validatePut(final Put put) throws IllegalArgumentException { - if (put.isEmpty()) { - throw new IllegalArgumentException("No columns to insert"); - } - if (maxKeyValueSize > 0) { - for (List<KeyValue> list : put.getFamilyMap().values()) { - for (KeyValue kv : list) { - if (kv.getLength() > maxKeyValueSize) { - throw new IllegalArgumentException( - "KeyValue size too large"); - } - } - } - } - } - + // validate for well-formedness + public void validatePut(final Put put) throws IllegalArgumentException { + if (put.isEmpty()) { + throw new IllegalArgumentException("No columns to insert"); + } + if (maxKeyValueSize > 0) { + for (List<Cell> list : put.getFamilyCellMap().values()) { + for (Cell c : list) { + KeyValue kv = new KeyValue(c); + if (kv.getLength() > maxKeyValueSize) { + throw new IllegalArgumentException("KeyValue size too large"); + } + } + } + } + } + + private int maxKeyValueSize; public HRegionLocation getRegionLocation(byte[] row, boolean f) throws IOException { http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/dd2ea96f/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/regionserver/transactional/SingleVersionDeleteNotSupported.java ---------------------------------------------------------------------- diff --git a/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/regionserver/transactional/SingleVersionDeleteNotSupported.java b/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/regionserver/transactional/SingleVersionDeleteNotSupported.java index 7e7c1c1..7d1157e 100755 --- a/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/regionserver/transactional/SingleVersionDeleteNotSupported.java +++ b/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/regionserver/transactional/SingleVersionDeleteNotSupported.java @@ -26,6 +26,7 @@ package org.apache.hadoop.hbase.regionserver.transactional; import java.util.Collection; import java.util.List; +import org.apache.hadoop.hbase.Cell; import org.apache.hadoop.hbase.DoNotRetryIOException; import org.apache.hadoop.hbase.KeyValue; import org.apache.hadoop.hbase.KeyValue.Type; @@ -53,13 +54,15 @@ public class SingleVersionDeleteNotSupported extends DoNotRetryIOException { * mechansim will currently treat DeleteColumn the same as Delete which could cause confusion. */ public static void validateDelete(final Delete delete) throws SingleVersionDeleteNotSupported { - Collection<List<KeyValue>> values = delete.getFamilyMap().values(); - for (List<KeyValue> value : values) { - for (KeyValue kv : value) { - if (Type.Delete.getCode() == kv.getType()) { + Collection<List<Cell>> values = delete.getFamilyCellMap().values(); + for (List<Cell> value : values) { + for (Cell cell : value) { + KeyValue kv = new KeyValue(cell); + if (Type.Delete.getCode() == kv.getTypeByte()) { throw new SingleVersionDeleteNotSupported(); } } } } + } http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/dd2ea96f/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/regionserver/transactional/TrxTransactionState.java ---------------------------------------------------------------------- diff --git a/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/regionserver/transactional/TrxTransactionState.java b/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/regionserver/transactional/TrxTransactionState.java index 8e464c5..d8c3d9a 100644 --- a/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/regionserver/transactional/TrxTransactionState.java +++ b/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/regionserver/transactional/TrxTransactionState.java @@ -928,45 +928,44 @@ public class TrxTransactionState extends TransactionState{ } synchronized List<KeyValue> getKeyValues() { - List<KeyValue> edits = new ArrayList<KeyValue>(); - Collection<List<KeyValue>> kvsList = null; + List<KeyValue> edits = new ArrayList<KeyValue>(); + Collection<List<Cell>> cellList = null; - if (put != null) { - if (!put.getFamilyMap().isEmpty()) { - kvsList = put.getFamilyMap().values(); - } - } else if (delete != null) { - if (delete.getFamilyCellMap().isEmpty()) { - // If whole-row delete then we need to expand for each - // family - kvsList = new ArrayList<List<KeyValue>>(1); - for (byte[] family : tabledescriptor.getFamiliesKeys()) { - KeyValue familyDelete = new KeyValue(delete.getRow(), family, null, delete.getTimeStamp(), - KeyValue.Type.DeleteFamily); - kvsList.add(Collections.singletonList(familyDelete)); - } - } else { - kvsList = delete.getFamilyMap().values(); - } - } else { - throw new IllegalStateException("WriteAction is invalid"); - } + if (put != null) { + if (!put.getFamilyCellMap().isEmpty()) { + cellList = put.getFamilyCellMap().values(); + } + } else if (delete != null) { + if (delete.getFamilyCellMap().isEmpty()) { + // If whole-row delete then we need to expand for each family + cellList = new ArrayList<List<Cell>>(1); + for (byte[] family : tabledescriptor.getFamiliesKeys()) { + Cell familyDelete = new KeyValue(delete.getRow(), family, null, delete.getTimeStamp(), + KeyValue.Type.DeleteFamily); + cellList.add(Collections.singletonList(familyDelete)); + } + } else { + cellList = delete.getFamilyCellMap().values(); + } + } else { + throw new IllegalStateException("WriteAction is invalid"); + } - if (kvsList != null) { - for (List<KeyValue> kvs : kvsList) { - for (KeyValue kv : kvs) { - edits.add(kv); - //if (LOG.isDebugEnabled()) LOG.debug("Trafodion getKeyValues: " + regionInfo.getRegionNameAsString() + " create edits for transaction: " - // + transactionId + " with Op " + kv.getType()); - } - } - } - else - if (LOG.isTraceEnabled()) LOG.trace("Trafodion getKeyValues: " - + regionInfo.getRegionNameAsString() + " kvsList was null"); - return edits; - } + if (cellList != null) { + for (List<Cell> cells : cellList) { + for (Cell cell : cells) { + edits.add(new KeyValue(cell)); + // if (LOG.isDebugEnabled()) LOG.debug("Trafodion getKeyValues: " + regionInfo.getRegionNameAsString() + " create edits for transaction: " + // + transactionId + " with Op " + kv.getType()); + } + } + } else if (LOG.isTraceEnabled()) + LOG.trace("Trafodion getKeyValues: " + regionInfo.getRegionNameAsString() + " kvsList was null"); + return edits; + } } + + public Set<TrxTransactionState> getTransactionsToCheck() { return transactionsToCheck; }