Repository: hbase Updated Branches: refs/heads/branch-1 c6e73f80c -> 967873b57
HBASE-14851 Add test showing how to use per put TTL from thrift Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/967873b5 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/967873b5 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/967873b5 Branch: refs/heads/branch-1 Commit: 967873b5783cc682c0bcd2c2a25aad7baa49f3a3 Parents: c6e73f8 Author: Elliott Clark <[email protected]> Authored: Thu Nov 19 14:19:00 2015 -0800 Committer: Elliott Clark <[email protected]> Committed: Wed Dec 9 15:59:41 2015 -0800 ---------------------------------------------------------------------- .../thrift2/TestThriftHBaseServiceHandler.java | 50 ++++++++++++++++++++ 1 file changed, 50 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/967873b5/hbase-thrift/src/test/java/org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.java ---------------------------------------------------------------------- diff --git a/hbase-thrift/src/test/java/org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.java b/hbase-thrift/src/test/java/org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.java index 65abb0b..1575429 100644 --- a/hbase-thrift/src/test/java/org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.java +++ b/hbase-thrift/src/test/java/org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.java @@ -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 *
