HBASE-14851 Add test showing how to use per put TTL from thrift
This commit is contained in:
parent
c1e0fcc26d
commit
9647fee3f0
|
@ -684,6 +684,56 @@ public class TestThriftHBaseServiceHandler {
|
|||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPutTTL() throws Exception {
|
||||
ThriftHBaseServiceHandler handler = createHandler();
|
||||
byte[] rowName = "testPutTTL".getBytes();
|
||||
ByteBuffer table = wrap(tableAname);
|
||||
List<TColumnValue> columnValues = new ArrayList<TColumnValue>();
|
||||
|
||||
// Add some dummy data
|
||||
columnValues.add(
|
||||
new TColumnValue(
|
||||
wrap(familyAname),
|
||||
wrap(qualifierAname),
|
||||
wrap(Bytes.toBytes(1L))));
|
||||
|
||||
|
||||
TPut put = new TPut(wrap(rowName), columnValues);
|
||||
put.setColumnValues(columnValues);
|
||||
|
||||
Map<ByteBuffer, ByteBuffer> attributes = new HashMap<>();
|
||||
|
||||
// Time in ms for the kv's to live.
|
||||
long ttlTimeMs = 2000L;
|
||||
|
||||
// the _ttl attribute is a number of ms ttl for key values in this put.
|
||||
attributes.put(wrap(Bytes.toBytes("_ttl")), wrap(Bytes.toBytes(ttlTimeMs)));
|
||||
// Attach the attributes
|
||||
put.setAttributes(attributes);
|
||||
// Send it.
|
||||
handler.put(table, put);
|
||||
|
||||
// Now get the data back
|
||||
TGet getOne = new TGet(wrap(rowName));
|
||||
TResult resultOne = handler.get(table, getOne);
|
||||
|
||||
// It's there.
|
||||
assertArrayEquals(rowName, resultOne.getRow());
|
||||
assertEquals(1, resultOne.getColumnValuesSize());
|
||||
|
||||
// Sleep 30 seconds just to make 100% sure that the key value should be expired.
|
||||
Thread.sleep(ttlTimeMs * 15);
|
||||
|
||||
TGet getTwo = new TGet(wrap(rowName));
|
||||
TResult resultTwo = handler.get(table, getTwo);
|
||||
|
||||
|
||||
// Nothing should be there since it's ttl'd out.
|
||||
assertNull(resultTwo.getRow());
|
||||
assertEquals(0, resultTwo.getColumnValuesSize());
|
||||
}
|
||||
|
||||
/**
|
||||
* Padding numbers to make comparison of sort order easier in a for loop
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue