2
* Copyright 2009 The Apache Software Foundation
4
* Licensed to the Apache Software Foundation (ASF) under one
5
* or more contributor license agreements. See the NOTICE file
6
* distributed with this work for additional information
7
* regarding copyright ownership. The ASF licenses this file
8
* to you under the Apache License, Version 2.0 (the
9
* "License"); you may not use this file except in compliance
10
* with the License. You may obtain a copy of the License at
12
* http://www.apache.org/licenses/LICENSE-2.0
14
* Unless required by applicable law or agreed to in writing, software
15
* distributed under the License is distributed on an "AS IS" BASIS,
16
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
* See the License for the specific language governing permissions and
18
* limitations under the License.
20
package org.apache.hadoop.hbase.regionserver.transactional;
22
import java.io.DataInput;
23
import java.io.DataOutput;
24
import java.io.IOException;
26
import org.apache.hadoop.hbase.regionserver.HLogKey;
28
public class THLogKey extends HLogKey {
30
/** Type of Transactional op going into the HLot
34
/** A standard operation that is transactional. KV holds the op. */
36
/** A transaction was committed. */
38
/** A transaction was aborted. */
41
private final byte opCode;
43
private TrxOp(byte opCode) {
47
public static TrxOp fromByte(byte opCode) {
48
for (TrxOp op : TrxOp.values()) {
49
if (op.opCode == opCode) {
58
private byte transactionOp = -1;
59
private long transactionId = -1;
65
public THLogKey(byte[] regionName, byte[] tablename, long logSeqNum, long now) {
66
super(regionName, tablename, logSeqNum, now);
69
public THLogKey(byte[] regionName, byte[] tablename, long logSeqNum, long now, TrxOp op, long transactionId) {
70
super(regionName, tablename, logSeqNum, now);
71
this.transactionOp = op.opCode;
72
this.transactionId = transactionId;
75
public TrxOp getTrxOp() {
76
return TrxOp.fromByte(this.transactionOp);
79
public long getTransactionId() {
80
return this.transactionId;
84
public void write(DataOutput out) throws IOException {
86
out.writeByte(transactionOp);
87
out.writeLong(transactionId);
91
public void readFields(DataInput in) throws IOException {
93
this.transactionOp = in.readByte();
94
this.transactionId = in.readLong();