You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by la...@apache.org on 2013/07/25 19:38:37 UTC
svn commit: r1507074 - in /hbase/branches/0.94/src:
main/java/org/apache/hadoop/hbase/thrift2/
main/java/org/apache/hadoop/hbase/thrift2/generated/
main/resources/org/apache/hadoop/hbase/thrift2/
test/java/org/apache/hadoop/hbase/thrift2/
Author: larsgeorge
Date: Thu Jul 25 17:38:37 2013
New Revision: 1507074
URL: http://svn.apache.org/r1507074
Log:
HBASE-8947 Thrift 2 : Replace "bool writeToWAL" with "TDurability durability" (Hamed Madani)
Modified:
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/thrift2/ThriftUtilities.java
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TDelete.java
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TPut.java
hbase/branches/0.94/src/main/resources/org/apache/hadoop/hbase/thrift2/hbase.thrift
hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.java
Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/thrift2/ThriftUtilities.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/thrift2/ThriftUtilities.java?rev=1507074&r1=1507073&r2=1507074&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/thrift2/ThriftUtilities.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/thrift2/ThriftUtilities.java Thu Jul 25 17:38:37 2013
@@ -165,7 +165,11 @@ public class ThriftUtilities {
out = new Put(in.getRow());
}
- out.setWriteToWAL(in.isWriteToWal());
+ if (in.isSetDurability()) {
+ out.setDurability(durabilityFromThrift(in.getDurability()));
+ } else if (in.isSetWriteToWal()) {
+ out.setWriteToWAL(in.isWriteToWal());
+ }
for (TColumnValue columnValue : in.getColumnValues()) {
if (columnValue.isSetTimestamp()) {
@@ -248,7 +252,12 @@ public class ThriftUtilities {
addAttributes(out,in.getAttributes());
}
- out.setWriteToWAL(in.isWriteToWal());
+ if (in.isSetDurability()) {
+ out.setDurability(durabilityFromThrift(in.getDurability()));
+ } else if (in.isSetWriteToWal()) {
+ out.setWriteToWAL(in.isWriteToWal());
+ }
+
return out;
}
@@ -405,4 +414,14 @@ public class ThriftUtilities {
op.setAttribute(name, value);
}
}
+
+ private static Durability durabilityFromThrift(TDurability tDurability) {
+ switch (tDurability.getValue()) {
+ case 1: return Durability.SKIP_WAL;
+ case 2: return Durability.ASYNC_WAL;
+ case 3: return Durability.SYNC_WAL;
+ case 4: return Durability.FSYNC_WAL;
+ default: return null;
+ }
+ }
}
Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TDelete.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TDelete.java?rev=1507074&r1=1507073&r2=1507074&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TDelete.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TDelete.java Thu Jul 25 17:38:37 2013
@@ -59,6 +59,7 @@ public class TDelete implements org.apac
private static final org.apache.thrift.protocol.TField DELETE_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("deleteType", org.apache.thrift.protocol.TType.I32, (short)4);
private static final org.apache.thrift.protocol.TField WRITE_TO_WAL_FIELD_DESC = new org.apache.thrift.protocol.TField("writeToWal", org.apache.thrift.protocol.TType.BOOL, (short)5);
private static final org.apache.thrift.protocol.TField ATTRIBUTES_FIELD_DESC = new org.apache.thrift.protocol.TField("attributes", org.apache.thrift.protocol.TType.MAP, (short)6);
+ private static final org.apache.thrift.protocol.TField DURABILITY_FIELD_DESC = new org.apache.thrift.protocol.TField("durability", org.apache.thrift.protocol.TType.I32, (short)7);
private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
static {
@@ -76,6 +77,11 @@ public class TDelete implements org.apac
public TDeleteType deleteType; // optional
public boolean writeToWal; // optional
public Map<ByteBuffer,ByteBuffer> attributes; // optional
+ /**
+ *
+ * @see TDurability
+ */
+ public TDurability durability; // optional
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -88,7 +94,12 @@ public class TDelete implements org.apac
*/
DELETE_TYPE((short)4, "deleteType"),
WRITE_TO_WAL((short)5, "writeToWal"),
- ATTRIBUTES((short)6, "attributes");
+ ATTRIBUTES((short)6, "attributes"),
+ /**
+ *
+ * @see TDurability
+ */
+ DURABILITY((short)7, "durability");
private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
@@ -115,6 +126,8 @@ public class TDelete implements org.apac
return WRITE_TO_WAL;
case 6: // ATTRIBUTES
return ATTRIBUTES;
+ case 7: // DURABILITY
+ return DURABILITY;
default:
return null;
}
@@ -158,7 +171,7 @@ public class TDelete implements org.apac
private static final int __TIMESTAMP_ISSET_ID = 0;
private static final int __WRITETOWAL_ISSET_ID = 1;
private BitSet __isset_bit_vector = new BitSet(2);
- private _Fields optionals[] = {_Fields.COLUMNS,_Fields.TIMESTAMP,_Fields.DELETE_TYPE,_Fields.WRITE_TO_WAL,_Fields.ATTRIBUTES};
+ private _Fields optionals[] = {_Fields.COLUMNS,_Fields.TIMESTAMP,_Fields.DELETE_TYPE,_Fields.WRITE_TO_WAL,_Fields.ATTRIBUTES,_Fields.DURABILITY};
public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
static {
Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
@@ -177,6 +190,8 @@ public class TDelete implements org.apac
new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP,
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING , true),
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING , true))));
+ tmpMap.put(_Fields.DURABILITY, new org.apache.thrift.meta_data.FieldMetaData("durability", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+ new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, TDurability.class)));
metaDataMap = Collections.unmodifiableMap(tmpMap);
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TDelete.class, metaDataMap);
}
@@ -184,8 +199,6 @@ public class TDelete implements org.apac
public TDelete() {
this.deleteType = org.apache.hadoop.hbase.thrift2.generated.TDeleteType.DELETE_COLUMNS;
- this.writeToWal = true;
-
}
public TDelete(
@@ -234,6 +247,9 @@ public class TDelete implements org.apac
}
this.attributes = __this__attributes;
}
+ if (other.isSetDurability()) {
+ this.durability = other.durability;
+ }
}
public TDelete deepCopy() {
@@ -248,9 +264,10 @@ public class TDelete implements org.apac
this.timestamp = 0;
this.deleteType = org.apache.hadoop.hbase.thrift2.generated.TDeleteType.DELETE_COLUMNS;
- this.writeToWal = true;
-
+ setWriteToWalIsSet(false);
+ this.writeToWal = false;
this.attributes = null;
+ this.durability = null;
}
public byte[] getRow() {
@@ -439,6 +456,38 @@ public class TDelete implements org.apac
}
}
+ /**
+ *
+ * @see TDurability
+ */
+ public TDurability getDurability() {
+ return this.durability;
+ }
+
+ /**
+ *
+ * @see TDurability
+ */
+ public TDelete setDurability(TDurability durability) {
+ this.durability = durability;
+ return this;
+ }
+
+ public void unsetDurability() {
+ this.durability = null;
+ }
+
+ /** Returns true if field durability is set (has been assigned a value) and false otherwise */
+ public boolean isSetDurability() {
+ return this.durability != null;
+ }
+
+ public void setDurabilityIsSet(boolean value) {
+ if (!value) {
+ this.durability = null;
+ }
+ }
+
public void setFieldValue(_Fields field, Object value) {
switch (field) {
case ROW:
@@ -489,6 +538,14 @@ public class TDelete implements org.apac
}
break;
+ case DURABILITY:
+ if (value == null) {
+ unsetDurability();
+ } else {
+ setDurability((TDurability)value);
+ }
+ break;
+
}
}
@@ -512,6 +569,9 @@ public class TDelete implements org.apac
case ATTRIBUTES:
return getAttributes();
+ case DURABILITY:
+ return getDurability();
+
}
throw new IllegalStateException();
}
@@ -535,6 +595,8 @@ public class TDelete implements org.apac
return isSetWriteToWal();
case ATTRIBUTES:
return isSetAttributes();
+ case DURABILITY:
+ return isSetDurability();
}
throw new IllegalStateException();
}
@@ -606,6 +668,15 @@ public class TDelete implements org.apac
return false;
}
+ boolean this_present_durability = true && this.isSetDurability();
+ boolean that_present_durability = true && that.isSetDurability();
+ if (this_present_durability || that_present_durability) {
+ if (!(this_present_durability && that_present_durability))
+ return false;
+ if (!this.durability.equals(that.durability))
+ return false;
+ }
+
return true;
}
@@ -682,6 +753,16 @@ public class TDelete implements org.apac
return lastComparison;
}
}
+ lastComparison = Boolean.valueOf(isSetDurability()).compareTo(typedOther.isSetDurability());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetDurability()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.durability, typedOther.durability);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
return 0;
}
@@ -751,6 +832,16 @@ public class TDelete implements org.apac
}
first = false;
}
+ if (isSetDurability()) {
+ if (!first) sb.append(", ");
+ sb.append("durability:");
+ if (this.durability == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.durability);
+ }
+ first = false;
+ }
sb.append(")");
return sb.toString();
}
@@ -869,6 +960,14 @@ public class TDelete implements org.apac
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
break;
+ case 7: // DURABILITY
+ if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+ struct.durability = TDurability.findByValue(iprot.readI32());
+ struct.setDurabilityIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
default:
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
@@ -935,6 +1034,13 @@ public class TDelete implements org.apac
oprot.writeFieldEnd();
}
}
+ if (struct.durability != null) {
+ if (struct.isSetDurability()) {
+ oprot.writeFieldBegin(DURABILITY_FIELD_DESC);
+ oprot.writeI32(struct.durability.getValue());
+ oprot.writeFieldEnd();
+ }
+ }
oprot.writeFieldStop();
oprot.writeStructEnd();
}
@@ -969,7 +1075,10 @@ public class TDelete implements org.apac
if (struct.isSetAttributes()) {
optionals.set(4);
}
- oprot.writeBitSet(optionals, 5);
+ if (struct.isSetDurability()) {
+ optionals.set(5);
+ }
+ oprot.writeBitSet(optionals, 6);
if (struct.isSetColumns()) {
{
oprot.writeI32(struct.columns.size());
@@ -998,6 +1107,9 @@ public class TDelete implements org.apac
}
}
}
+ if (struct.isSetDurability()) {
+ oprot.writeI32(struct.durability.getValue());
+ }
}
@Override
@@ -1005,7 +1117,7 @@ public class TDelete implements org.apac
TTupleProtocol iprot = (TTupleProtocol) prot;
struct.row = iprot.readBinary();
struct.setRowIsSet(true);
- BitSet incoming = iprot.readBitSet(5);
+ BitSet incoming = iprot.readBitSet(6);
if (incoming.get(0)) {
{
org.apache.thrift.protocol.TList _list55 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
@@ -1047,6 +1159,10 @@ public class TDelete implements org.apac
}
struct.setAttributesIsSet(true);
}
+ if (incoming.get(5)) {
+ struct.durability = TDurability.findByValue(iprot.readI32());
+ struct.setDurabilityIsSet(true);
+ }
}
}
Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TPut.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TPut.java?rev=1507074&r1=1507073&r2=1507074&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TPut.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TPut.java Thu Jul 25 17:38:37 2013
@@ -46,6 +46,7 @@ public class TPut implements org.apache.
private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField("timestamp", org.apache.thrift.protocol.TType.I64, (short)3);
private static final org.apache.thrift.protocol.TField WRITE_TO_WAL_FIELD_DESC = new org.apache.thrift.protocol.TField("writeToWal", org.apache.thrift.protocol.TType.BOOL, (short)4);
private static final org.apache.thrift.protocol.TField ATTRIBUTES_FIELD_DESC = new org.apache.thrift.protocol.TField("attributes", org.apache.thrift.protocol.TType.MAP, (short)5);
+ private static final org.apache.thrift.protocol.TField DURABILITY_FIELD_DESC = new org.apache.thrift.protocol.TField("durability", org.apache.thrift.protocol.TType.I32, (short)6);
private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
static {
@@ -58,6 +59,11 @@ public class TPut implements org.apache.
public long timestamp; // optional
public boolean writeToWal; // optional
public Map<ByteBuffer,ByteBuffer> attributes; // optional
+ /**
+ *
+ * @see TDurability
+ */
+ public TDurability durability; // optional
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -65,7 +71,12 @@ public class TPut implements org.apache.
COLUMN_VALUES((short)2, "columnValues"),
TIMESTAMP((short)3, "timestamp"),
WRITE_TO_WAL((short)4, "writeToWal"),
- ATTRIBUTES((short)5, "attributes");
+ ATTRIBUTES((short)5, "attributes"),
+ /**
+ *
+ * @see TDurability
+ */
+ DURABILITY((short)6, "durability");
private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
@@ -90,6 +101,8 @@ public class TPut implements org.apache.
return WRITE_TO_WAL;
case 5: // ATTRIBUTES
return ATTRIBUTES;
+ case 6: // DURABILITY
+ return DURABILITY;
default:
return null;
}
@@ -133,7 +146,7 @@ public class TPut implements org.apache.
private static final int __TIMESTAMP_ISSET_ID = 0;
private static final int __WRITETOWAL_ISSET_ID = 1;
private BitSet __isset_bit_vector = new BitSet(2);
- private _Fields optionals[] = {_Fields.TIMESTAMP,_Fields.WRITE_TO_WAL,_Fields.ATTRIBUTES};
+ private _Fields optionals[] = {_Fields.TIMESTAMP,_Fields.WRITE_TO_WAL,_Fields.ATTRIBUTES,_Fields.DURABILITY};
public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
static {
Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
@@ -150,13 +163,13 @@ public class TPut implements org.apache.
new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP,
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING , true),
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING , true))));
+ tmpMap.put(_Fields.DURABILITY, new org.apache.thrift.meta_data.FieldMetaData("durability", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+ new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, TDurability.class)));
metaDataMap = Collections.unmodifiableMap(tmpMap);
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TPut.class, metaDataMap);
}
public TPut() {
- this.writeToWal = true;
-
}
public TPut(
@@ -204,6 +217,9 @@ public class TPut implements org.apache.
}
this.attributes = __this__attributes;
}
+ if (other.isSetDurability()) {
+ this.durability = other.durability;
+ }
}
public TPut deepCopy() {
@@ -216,9 +232,10 @@ public class TPut implements org.apache.
this.columnValues = null;
setTimestampIsSet(false);
this.timestamp = 0;
- this.writeToWal = true;
-
+ setWriteToWalIsSet(false);
+ this.writeToWal = false;
this.attributes = null;
+ this.durability = null;
}
public byte[] getRow() {
@@ -375,6 +392,38 @@ public class TPut implements org.apache.
}
}
+ /**
+ *
+ * @see TDurability
+ */
+ public TDurability getDurability() {
+ return this.durability;
+ }
+
+ /**
+ *
+ * @see TDurability
+ */
+ public TPut setDurability(TDurability durability) {
+ this.durability = durability;
+ return this;
+ }
+
+ public void unsetDurability() {
+ this.durability = null;
+ }
+
+ /** Returns true if field durability is set (has been assigned a value) and false otherwise */
+ public boolean isSetDurability() {
+ return this.durability != null;
+ }
+
+ public void setDurabilityIsSet(boolean value) {
+ if (!value) {
+ this.durability = null;
+ }
+ }
+
public void setFieldValue(_Fields field, Object value) {
switch (field) {
case ROW:
@@ -417,6 +466,14 @@ public class TPut implements org.apache.
}
break;
+ case DURABILITY:
+ if (value == null) {
+ unsetDurability();
+ } else {
+ setDurability((TDurability)value);
+ }
+ break;
+
}
}
@@ -437,6 +494,9 @@ public class TPut implements org.apache.
case ATTRIBUTES:
return getAttributes();
+ case DURABILITY:
+ return getDurability();
+
}
throw new IllegalStateException();
}
@@ -458,6 +518,8 @@ public class TPut implements org.apache.
return isSetWriteToWal();
case ATTRIBUTES:
return isSetAttributes();
+ case DURABILITY:
+ return isSetDurability();
}
throw new IllegalStateException();
}
@@ -520,6 +582,15 @@ public class TPut implements org.apache.
return false;
}
+ boolean this_present_durability = true && this.isSetDurability();
+ boolean that_present_durability = true && that.isSetDurability();
+ if (this_present_durability || that_present_durability) {
+ if (!(this_present_durability && that_present_durability))
+ return false;
+ if (!this.durability.equals(that.durability))
+ return false;
+ }
+
return true;
}
@@ -586,6 +657,16 @@ public class TPut implements org.apache.
return lastComparison;
}
}
+ lastComparison = Boolean.valueOf(isSetDurability()).compareTo(typedOther.isSetDurability());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetDurability()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.durability, typedOther.durability);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
return 0;
}
@@ -643,6 +724,16 @@ public class TPut implements org.apache.
}
first = false;
}
+ if (isSetDurability()) {
+ if (!first) sb.append(", ");
+ sb.append("durability:");
+ if (this.durability == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.durability);
+ }
+ first = false;
+ }
sb.append(")");
return sb.toString();
}
@@ -756,6 +847,14 @@ public class TPut implements org.apache.
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
break;
+ case 6: // DURABILITY
+ if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+ struct.durability = TDurability.findByValue(iprot.readI32());
+ struct.setDurabilityIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
default:
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
@@ -813,6 +912,13 @@ public class TPut implements org.apache.
oprot.writeFieldEnd();
}
}
+ if (struct.durability != null) {
+ if (struct.isSetDurability()) {
+ oprot.writeFieldBegin(DURABILITY_FIELD_DESC);
+ oprot.writeI32(struct.durability.getValue());
+ oprot.writeFieldEnd();
+ }
+ }
oprot.writeFieldStop();
oprot.writeStructEnd();
}
@@ -848,7 +954,10 @@ public class TPut implements org.apache.
if (struct.isSetAttributes()) {
optionals.set(2);
}
- oprot.writeBitSet(optionals, 3);
+ if (struct.isSetDurability()) {
+ optionals.set(3);
+ }
+ oprot.writeBitSet(optionals, 4);
if (struct.isSetTimestamp()) {
oprot.writeI64(struct.timestamp);
}
@@ -865,6 +974,9 @@ public class TPut implements org.apache.
}
}
}
+ if (struct.isSetDurability()) {
+ oprot.writeI32(struct.durability.getValue());
+ }
}
@Override
@@ -884,7 +996,7 @@ public class TPut implements org.apache.
}
}
struct.setColumnValuesIsSet(true);
- BitSet incoming = iprot.readBitSet(3);
+ BitSet incoming = iprot.readBitSet(4);
if (incoming.get(0)) {
struct.timestamp = iprot.readI64();
struct.setTimestampIsSet(true);
@@ -908,6 +1020,10 @@ public class TPut implements org.apache.
}
struct.setAttributesIsSet(true);
}
+ if (incoming.get(3)) {
+ struct.durability = TDurability.findByValue(iprot.readI32());
+ struct.setDurabilityIsSet(true);
+ }
}
}
Modified: hbase/branches/0.94/src/main/resources/org/apache/hadoop/hbase/thrift2/hbase.thrift
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/resources/org/apache/hadoop/hbase/thrift2/hbase.thrift?rev=1507074&r1=1507073&r2=1507074&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/resources/org/apache/hadoop/hbase/thrift2/hbase.thrift (original)
+++ hbase/branches/0.94/src/main/resources/org/apache/hadoop/hbase/thrift2/hbase.thrift Thu Jul 25 17:38:37 2013
@@ -78,6 +78,21 @@ enum TDeleteType {
}
/**
+ * Specify Durability:
+ * - SKIP_WAL means do not write the Mutation to the WAL.
+ * - ASYNC_WAL means write the Mutation to the WAL asynchronously,
+ * - SYNC_WAL means write the Mutation to the WAL synchronously,
+ * - FSYNC_WAL means Write the Mutation to the WAL synchronously and force the entries to disk.
+ */
+
+enum TDurability {
+ SKIP_WAL = 1,
+ ASYNC_WAL = 2,
+ SYNC_WAL = 3,
+ FSYNC_WAL = 4
+}
+
+/**
* Used to perform Get operations on a single row.
*
* The scope can be further narrowed down by specifying a list of
@@ -117,8 +132,9 @@ struct TPut {
1: required binary row,
2: required list<TColumnValue> columnValues
3: optional i64 timestamp,
- 4: optional bool writeToWal = 1,
- 5: optional map<binary, binary> attributes
+ 4: optional bool writeToWal,
+ 5: optional map<binary, binary> attributes,
+ 6: optional TDurability durability
}
/**
@@ -149,8 +165,9 @@ struct TDelete {
2: optional list<TColumn> columns,
3: optional i64 timestamp,
4: optional TDeleteType deleteType = 1,
- 5: optional bool writeToWal = 1,
- 6: optional map<binary, binary> attributes
+ 5: optional bool writeToWal,
+ 6: optional map<binary, binary> attributes,
+ 7: optional TDurability durability
}
/**
Modified: hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.java?rev=1507074&r1=1507073&r2=1507074&view=diff
==============================================================================
--- hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.java (original)
+++ hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.java Thu Jul 25 17:38:37 2013
@@ -40,6 +40,7 @@ import org.apache.hadoop.hbase.client.Ge
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.client.Delete;
+import org.apache.hadoop.hbase.client.Durability;
import org.apache.hadoop.hbase.filter.ParseFilter;
import org.apache.hadoop.hbase.thrift.ThriftMetrics;
import org.apache.hadoop.hbase.thrift2.generated.TColumn;
@@ -57,6 +58,7 @@ import org.apache.hadoop.hbase.thrift2.g
import org.apache.hadoop.hbase.thrift2.generated.TScan;
import org.apache.hadoop.hbase.thrift2.generated.TMutation;
import org.apache.hadoop.hbase.thrift2.generated.TRowMutations;
+import org.apache.hadoop.hbase.thrift2.generated.TDurability;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.metrics.ContextFactory;
import org.apache.hadoop.metrics.MetricsContext;
@@ -851,6 +853,88 @@ public class TestThriftHBaseServiceHandl
assertTColumnValuesEqual(expectedColumnValues, returnedColumnValues);
}
+ /**
+ * Create TPut, TDelete , TIncrement objects, set durability then call ThriftUtility
+ * functions to get Put , Delete and Increment respectively. Use getDurability to make sure
+ * the returned objects have the appropriate durability setting.
+ *
+ * @throws Exception
+ */
+ @Test
+ public void testDurability() throws Exception {
+ byte[] rowName = "testDurability".getBytes();
+ List<TColumnValue> columnValues = new ArrayList<TColumnValue>();
+ columnValues.add(new TColumnValue(wrap(familyAname), wrap(qualifierAname), wrap(valueAname)));
+
+ List<TColumnIncrement> incrementColumns = new ArrayList<TColumnIncrement>();
+ incrementColumns.add(new TColumnIncrement(wrap(familyAname), wrap(qualifierAname)));
+
+ TDelete tDelete = new TDelete(wrap(rowName));
+
+ //if not setting writeToWal, check for default value
+ Delete delete = deleteFromThrift(tDelete);
+ assertEquals(delete.getDurability(), Durability.USE_DEFAULT);
+
+ //if setting writeToWal to true, durability should be CF default
+ tDelete.setWriteToWal(true);
+ delete = deleteFromThrift(tDelete);
+ assertEquals(delete.getDurability(), Durability.USE_DEFAULT);
+
+ //if setting writeToWal to false, durability should be SKIP_WAL
+ tDelete.setWriteToWal(false);
+ delete = deleteFromThrift(tDelete);
+ assertEquals(delete.getDurability(), Durability.SKIP_WAL);
+
+
+ tDelete.setDurability(TDurability.SKIP_WAL);
+ delete = deleteFromThrift(tDelete);
+ assertEquals(delete.getDurability(), Durability.SKIP_WAL);
+
+ tDelete.setDurability(TDurability.ASYNC_WAL);
+ delete = deleteFromThrift(tDelete);
+ assertEquals(delete.getDurability(), Durability.ASYNC_WAL);
+
+ tDelete.setDurability(TDurability.SYNC_WAL);
+ delete = deleteFromThrift(tDelete);
+ assertEquals(delete.getDurability(), Durability.SYNC_WAL);
+
+ tDelete.setDurability(TDurability.FSYNC_WAL);
+ delete = deleteFromThrift(tDelete);
+ assertEquals(delete.getDurability(), Durability.FSYNC_WAL);
+
+ TPut tPut = new TPut(wrap(rowName), columnValues);
+
+ //if not setting writeToWal, check for default value
+ Put put = putFromThrift(tPut);
+ assertEquals(put.getDurability(), Durability.USE_DEFAULT);
+
+ //if setting writeToWal to true, durability should be CF default
+ tPut.setWriteToWal(true);
+ put = putFromThrift(tPut);
+ assertEquals(put.getDurability(), Durability.USE_DEFAULT);
+
+ //if setting writeToWal to false, durability should be SKIP_WAL
+ tPut.setWriteToWal(false);
+ put = putFromThrift(tPut);
+ assertEquals(put.getDurability(), Durability.SKIP_WAL);
+
+ tPut.setDurability(TDurability.SKIP_WAL);
+ put = putFromThrift(tPut);
+ assertEquals(put.getDurability(), Durability.SKIP_WAL);
+
+ tPut.setDurability(TDurability.ASYNC_WAL);
+ put = putFromThrift(tPut);
+ assertEquals(put.getDurability(), Durability.ASYNC_WAL);
+
+ tPut.setDurability(TDurability.SYNC_WAL);
+ put = putFromThrift(tPut);
+ assertEquals(put.getDurability(), Durability.SYNC_WAL);
+
+ tPut.setDurability(TDurability.FSYNC_WAL);
+ put = putFromThrift(tPut);
+ assertEquals(put.getDurability(), Durability.FSYNC_WAL);
+ }
+
private static ThriftMetrics getMetrics(Configuration conf) throws Exception {
setupMetricsContext();
return new ThriftMetrics(Integer.parseInt(ThriftServer.DEFAULT_LISTEN_PORT),