hbase-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From syuanji...@apache.org
Subject [04/26] hbase git commit: HBASE-14851 Add test showing how to use per put TTL from thrift
Date Tue, 15 Dec 2015 17:43:18 GMT
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/9647fee3
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/9647fee3
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/9647fee3

Branch: refs/heads/hbase-12439
Commit: 9647fee3f0f196d064879afd41b9eff51d5aa036
Parents: c1e0fcc
Author: Elliott Clark <eclark@apache.org>
Authored: Thu Nov 19 14:19:00 2015 -0800
Committer: Elliott Clark <eclark@apache.org>
Committed: Wed Dec 9 16:04:10 2015 -0800

----------------------------------------------------------------------
 .../thrift2/TestThriftHBaseServiceHandler.java  | 50 ++++++++++++++++++++
 1 file changed, 50 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/9647fee3/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 8003bff..654324d 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
    *


Mime
View raw message