下面列出了怎么用org.apache.hadoop.hbase.client.OperationWithAttributes的API类实例代码及写法,或者点击链接到github查看源代码。
/**
* Make sure that the transaction is within the max valid transaction lifetime.
* @param env {@link RegionCoprocessorEnvironment} of the Region to which the coprocessor is
* associated
* @param op {@link OperationWithAttributes} HBase operation to access its attributes if required
* @param tx {@link Transaction} supplied by the
* @throws DoNotRetryIOException thrown if the transaction is older than the max lifetime of a
* transaction IOException throw if the value of max lifetime of transaction is
* unavailable
*/
protected void ensureValidTxLifetime(RegionCoprocessorEnvironment env,
@SuppressWarnings("unused") OperationWithAttributes op, @Nullable Transaction tx)
throws IOException {
if (tx == null) {
return;
}
boolean validLifetime =
(TxUtils.getTimestamp(tx.getTransactionId()) + txMaxLifetimeMillis) > System
.currentTimeMillis();
if (!validLifetime) {
throw new DoNotRetryIOException(
String.format("Transaction %s has exceeded max lifetime %s ms", tx.getTransactionId(),
txMaxLifetimeMillis));
}
}
static private void propagateAttributes(OperationWithAttributes from, OperationWithAttributes to) {
Map<String,byte[]> attributeMap = from.getAttributesMap();
for (Map.Entry<String,byte[]> entry : attributeMap.entrySet()) {
to.setAttribute(entry.getKey(), entry.getValue());
}
}
private Transaction getFromOperation(OperationWithAttributes op) throws IOException {
byte[] encoded = op.getAttribute(TxConstants.TX_OPERATION_ATTRIBUTE_KEY);
if (encoded == null) {
// to support old clients
encoded = op.getAttribute(TxConstants.OLD_TX_OPERATION_ATTRIBUTE_KEY);
}
if (encoded != null) {
return txCodec.decode(encoded);
}
return null;
}
/**
* Make sure that the transaction is within the max valid transaction lifetime.
*
* @param env {@link RegionCoprocessorEnvironment} of the Region to which the coprocessor is associated
* @param op {@link OperationWithAttributes} HBase operation to access its attributes if required
* @param tx {@link Transaction} supplied by the
* @throws DoNotRetryIOException thrown if the transaction is older than the max lifetime of a transaction
* IOException throw if the value of max lifetime of transaction is unavailable
*/
protected void ensureValidTxLifetime(RegionCoprocessorEnvironment env,
@SuppressWarnings("unused") OperationWithAttributes op,
@Nullable Transaction tx) throws IOException {
if (tx == null) {
return;
}
boolean validLifetime =
(TxUtils.getTimestamp(tx.getTransactionId()) + txMaxLifetimeMillis) > System.currentTimeMillis();
if (!validLifetime) {
throw new DoNotRetryIOException(String.format("Transaction %s has exceeded max lifetime %s ms",
tx.getTransactionId(), txMaxLifetimeMillis));
}
}
private Transaction getFromOperation(OperationWithAttributes op) throws IOException {
byte[] encoded = op.getAttribute(TxConstants.TX_OPERATION_ATTRIBUTE_KEY);
if (encoded == null) {
// to support old clients
encoded = op.getAttribute(TxConstants.OLD_TX_OPERATION_ATTRIBUTE_KEY);
}
if (encoded != null) {
return txCodec.decode(encoded);
}
return null;
}
/**
* Make sure that the transaction is within the max valid transaction lifetime.
*
* @param env {@link RegionCoprocessorEnvironment} of the Region to which the coprocessor is associated
* @param op {@link OperationWithAttributes} HBase operation to access its attributes if required
* @param tx {@link Transaction} supplied by the
* @throws DoNotRetryIOException thrown if the transaction is older than the max lifetime of a transaction
* IOException throw if the value of max lifetime of transaction is unavailable
*/
protected void ensureValidTxLifetime(RegionCoprocessorEnvironment env,
@SuppressWarnings("unused") OperationWithAttributes op,
@Nullable Transaction tx) throws IOException {
if (tx == null) {
return;
}
boolean validLifetime =
(TxUtils.getTimestamp(tx.getTransactionId()) + txMaxLifetimeMillis) > System.currentTimeMillis();
if (!validLifetime) {
throw new DoNotRetryIOException(String.format("Transaction %s has exceeded max lifetime %s ms",
tx.getTransactionId(), txMaxLifetimeMillis));
}
}
private Transaction getFromOperation(OperationWithAttributes op) throws IOException {
byte[] encoded = op.getAttribute(TxConstants.TX_OPERATION_ATTRIBUTE_KEY);
if (encoded == null) {
// to support old clients
encoded = op.getAttribute(TxConstants.OLD_TX_OPERATION_ATTRIBUTE_KEY);
}
if (encoded != null) {
return txCodec.decode(encoded);
}
return null;
}
/**
* Make sure that the transaction is within the max valid transaction lifetime.
*
* @param env {@link RegionCoprocessorEnvironment} of the Region to which the coprocessor is associated
* @param op {@link OperationWithAttributes} HBase operation to access its attributes if required
* @param tx {@link Transaction} supplied by the
* @throws DoNotRetryIOException thrown if the transaction is older than the max lifetime of a transaction
* IOException throw if the value of max lifetime of transaction is unavailable
*/
protected void ensureValidTxLifetime(RegionCoprocessorEnvironment env,
@SuppressWarnings("unused") OperationWithAttributes op,
@Nullable Transaction tx) throws IOException {
if (tx == null) {
return;
}
boolean validLifetime =
(TxUtils.getTimestamp(tx.getTransactionId()) + txMaxLifetimeMillis) > System.currentTimeMillis();
if (!validLifetime) {
throw new DoNotRetryIOException(String.format("Transaction %s has exceeded max lifetime %s ms",
tx.getTransactionId(), txMaxLifetimeMillis));
}
}
private Transaction getFromOperation(OperationWithAttributes op) throws IOException {
byte[] encoded = op.getAttribute(TxConstants.TX_OPERATION_ATTRIBUTE_KEY);
if (encoded == null) {
// to support old clients
encoded = op.getAttribute(TxConstants.OLD_TX_OPERATION_ATTRIBUTE_KEY);
}
if (encoded != null) {
return txCodec.decode(encoded);
}
return null;
}
private Transaction getFromOperation(OperationWithAttributes op) throws IOException {
byte[] encoded = op.getAttribute(TxConstants.TX_OPERATION_ATTRIBUTE_KEY);
if (encoded == null) {
// to support old clients
encoded = op.getAttribute(TxConstants.OLD_TX_OPERATION_ATTRIBUTE_KEY);
}
if (encoded != null) {
return txCodec.decode(encoded);
}
return null;
}
/**
* Make sure that the transaction is within the max valid transaction lifetime.
*
* @param env {@link RegionCoprocessorEnvironment} of the Region to which the coprocessor is associated
* @param op {@link OperationWithAttributes} HBase operation to access its attributes if required
* @param tx {@link Transaction} supplied by the
* @throws DoNotRetryIOException thrown if the transaction is older than the max lifetime of a transaction
* IOException throw if the value of max lifetime of transaction is unavailable
*/
protected void ensureValidTxLifetime(RegionCoprocessorEnvironment env,
@SuppressWarnings("unused") OperationWithAttributes op,
@Nullable Transaction tx) throws IOException {
if (tx == null) {
return;
}
boolean validLifetime =
(TxUtils.getTimestamp(tx.getTransactionId()) + txMaxLifetimeMillis) > System.currentTimeMillis();
if (!validLifetime) {
throw new DoNotRetryIOException(String.format("Transaction %s has exceeded max lifetime %s ms",
tx.getTransactionId(), txMaxLifetimeMillis));
}
}
private Transaction getFromOperation(OperationWithAttributes op) throws IOException {
byte[] encoded = op.getAttribute(TxConstants.TX_OPERATION_ATTRIBUTE_KEY);
if (encoded == null) {
// to support old clients
encoded = op.getAttribute(TxConstants.OLD_TX_OPERATION_ATTRIBUTE_KEY);
}
if (encoded != null) {
return txCodec.decode(encoded);
}
return null;
}
/**
* Make sure that the transaction is within the max valid transaction lifetime.
*
* @param env {@link RegionCoprocessorEnvironment} of the Region to which the coprocessor is associated
* @param op {@link OperationWithAttributes} HBase operation to access its attributes if required
* @param tx {@link Transaction} supplied by the
* @throws DoNotRetryIOException thrown if the transaction is older than the max lifetime of a transaction
* IOException throw if the value of max lifetime of transaction is unavailable
*/
protected void ensureValidTxLifetime(RegionCoprocessorEnvironment env,
@SuppressWarnings("unused") OperationWithAttributes op,
@Nullable Transaction tx) throws IOException {
if (tx == null) {
return;
}
boolean validLifetime =
(TxUtils.getTimestamp(tx.getTransactionId()) + txMaxLifetimeMillis) > System.currentTimeMillis();
if (!validLifetime) {
throw new DoNotRetryIOException(String.format("Transaction %s has exceeded max lifetime %s ms",
tx.getTransactionId(), txMaxLifetimeMillis));
}
}
private Transaction getFromOperation(OperationWithAttributes op) throws IOException {
byte[] encoded = op.getAttribute(TxConstants.TX_OPERATION_ATTRIBUTE_KEY);
if (encoded == null) {
// to support old clients
encoded = op.getAttribute(TxConstants.OLD_TX_OPERATION_ATTRIBUTE_KEY);
}
if (encoded != null) {
return txCodec.decode(encoded);
}
return null;
}
/**
* Make sure that the transaction is within the max valid transaction lifetime.
*
* @param env {@link RegionCoprocessorEnvironment} of the Region to which the coprocessor is associated
* @param op {@link OperationWithAttributes} HBase operation to access its attributes if required
* @param tx {@link Transaction} supplied by the
* @throws DoNotRetryIOException thrown if the transaction is older than the max lifetime of a transaction
* IOException throw if the value of max lifetime of transaction is unavailable
*/
protected void ensureValidTxLifetime(RegionCoprocessorEnvironment env,
@SuppressWarnings("unused") OperationWithAttributes op,
@Nullable Transaction tx) throws IOException {
if (tx == null) {
return;
}
boolean validLifetime =
(TxUtils.getTimestamp(tx.getTransactionId()) + txMaxLifetimeMillis) > System.currentTimeMillis();
if (!validLifetime) {
throw new DoNotRetryIOException(String.format("Transaction %s has exceeded max lifetime %s ms",
tx.getTransactionId(), txMaxLifetimeMillis));
}
}
private Transaction getFromOperation(OperationWithAttributes op) throws IOException {
byte[] encoded = op.getAttribute(TxConstants.TX_OPERATION_ATTRIBUTE_KEY);
if (encoded == null) {
// to support old clients
encoded = op.getAttribute(TxConstants.OLD_TX_OPERATION_ATTRIBUTE_KEY);
}
if (encoded != null) {
return txCodec.decode(encoded);
}
return null;
}
/**
* Make sure that the transaction is within the max valid transaction lifetime.
*
* @param env {@link RegionCoprocessorEnvironment} of the Region to which the coprocessor is associated
* @param op {@link OperationWithAttributes} HBase operation to access its attributes if required
* @param tx {@link Transaction} supplied by the
* @throws DoNotRetryIOException thrown if the transaction is older than the max lifetime of a transaction
* IOException throw if the value of max lifetime of transaction is unavailable
*/
protected void ensureValidTxLifetime(RegionCoprocessorEnvironment env,
@SuppressWarnings("unused") OperationWithAttributes op,
@Nullable Transaction tx) throws IOException {
if (tx == null) {
return;
}
boolean validLifetime =
(TxUtils.getTimestamp(tx.getTransactionId()) + txMaxLifetimeMillis) > System.currentTimeMillis();
if (!validLifetime) {
throw new DoNotRetryIOException(String.format("Transaction %s has exceeded max lifetime %s ms",
tx.getTransactionId(), txMaxLifetimeMillis));
}
}
/**
* Adds all the attributes into the Operation object
*/
private static void addAttributes(OperationWithAttributes op,
Map<ByteBuffer, ByteBuffer> attributes) {
if (attributes == null || attributes.isEmpty()) {
return;
}
for (Map.Entry<ByteBuffer, ByteBuffer> entry : attributes.entrySet()) {
String name = Bytes.toStringBinary(getBytes(entry.getKey()));
byte[] value = getBytes(entry.getValue());
op.setAttribute(name, value);
}
}
/**
* Adds all the attributes into the Operation object
*/
private static void addAttributes(OperationWithAttributes op,
Map<ByteBuffer, ByteBuffer> attributes) {
if (attributes == null || attributes.isEmpty()) {
return;
}
for (Map.Entry<ByteBuffer, ByteBuffer> entry : attributes.entrySet()) {
String name = Bytes.toStringBinary(getBytes(entry.getKey()));
byte[] value = getBytes(entry.getValue());
op.setAttribute(name, value);
}
}
private boolean isRollbackOperation(OperationWithAttributes op) throws IOException {
return op.getAttribute(TxConstants.TX_ROLLBACK_ATTRIBUTE_KEY) != null ||
// to support old clients
op.getAttribute(TxConstants.OLD_TX_ROLLBACK_ATTRIBUTE_KEY) != null;
}
public void addToOperation(OperationWithAttributes op, Transaction tx) throws IOException {
op.setAttribute(TxConstants.TX_OPERATION_ATTRIBUTE_KEY, txCodec.encode(tx));
}
@Override
public void addToOperation(OperationWithAttributes op, Transaction tx) throws IOException {
op.setAttribute(TxConstants.OLD_TX_OPERATION_ATTRIBUTE_KEY, txCodec.encode(tx));
}
private boolean isRollbackOperation(OperationWithAttributes op) throws IOException {
return op.getAttribute(TxConstants.TX_ROLLBACK_ATTRIBUTE_KEY) != null ||
// to support old clients
op.getAttribute(TxConstants.OLD_TX_ROLLBACK_ATTRIBUTE_KEY) != null;
}
public void addToOperation(OperationWithAttributes op, Transaction tx) throws IOException {
op.setAttribute(TxConstants.TX_OPERATION_ATTRIBUTE_KEY, txCodec.encode(tx));
}
@Override
public void addToOperation(OperationWithAttributes op, Transaction tx) throws IOException {
op.setAttribute(TxConstants.OLD_TX_OPERATION_ATTRIBUTE_KEY, txCodec.encode(tx));
}
private boolean isRollbackOperation(OperationWithAttributes op) throws IOException {
return op.getAttribute(TxConstants.TX_ROLLBACK_ATTRIBUTE_KEY) != null ||
// to support old clients
op.getAttribute(TxConstants.OLD_TX_ROLLBACK_ATTRIBUTE_KEY) != null;
}
public void addToOperation(OperationWithAttributes op, Transaction tx) throws IOException {
op.setAttribute(TxConstants.TX_OPERATION_ATTRIBUTE_KEY, txCodec.encode(tx));
}
@Override
public void addToOperation(OperationWithAttributes op, Transaction tx) throws IOException {
op.setAttribute(TxConstants.OLD_TX_OPERATION_ATTRIBUTE_KEY, txCodec.encode(tx));
}
private boolean isRollbackOperation(OperationWithAttributes op) throws IOException {
return op.getAttribute(TxConstants.TX_ROLLBACK_ATTRIBUTE_KEY) != null ||
// to support old clients
op.getAttribute(TxConstants.OLD_TX_ROLLBACK_ATTRIBUTE_KEY) != null;
}
public void addToOperation(OperationWithAttributes op, Transaction tx) throws IOException {
op.setAttribute(TxConstants.TX_OPERATION_ATTRIBUTE_KEY, txCodec.encode(tx));
}