You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@metron.apache.org by ni...@apache.org on 2018/08/20 19:36:21 UTC
metron git commit: METRON-1706 HbaseClient.mutate should return the
number of mutations (nickwallen) closes apache/metron#1147
Repository: metron
Updated Branches:
refs/heads/feature/METRON-1699-create-batch-profiler 5eff97fbe -> 401bd7a18
METRON-1706 HbaseClient.mutate should return the number of mutations (nickwallen) closes apache/metron#1147
Project: http://git-wip-us.apache.org/repos/asf/metron/repo
Commit: http://git-wip-us.apache.org/repos/asf/metron/commit/401bd7a1
Tree: http://git-wip-us.apache.org/repos/asf/metron/tree/401bd7a1
Diff: http://git-wip-us.apache.org/repos/asf/metron/diff/401bd7a1
Branch: refs/heads/feature/METRON-1699-create-batch-profiler
Commit: 401bd7a180dad4ff805fd6e5840ab826ee4e94b7
Parents: 5eff97f
Author: nickwallen <ni...@nickallen.org>
Authored: Mon Aug 20 15:35:57 2018 -0400
Committer: nickallen <ni...@apache.org>
Committed: Mon Aug 20 15:35:57 2018 -0400
----------------------------------------------------------------------
.../apache/metron/hbase/client/HBaseClient.java | 8 ++++--
.../metron/hbase/client/HBaseClientTest.java | 30 +++++++++++++++++++-
2 files changed, 35 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/metron/blob/401bd7a1/metron-platform/metron-hbase/src/main/java/org/apache/metron/hbase/client/HBaseClient.java
----------------------------------------------------------------------
diff --git a/metron-platform/metron-hbase/src/main/java/org/apache/metron/hbase/client/HBaseClient.java b/metron-platform/metron-hbase/src/main/java/org/apache/metron/hbase/client/HBaseClient.java
index c027c5c..f0a0a10 100644
--- a/metron-platform/metron-hbase/src/main/java/org/apache/metron/hbase/client/HBaseClient.java
+++ b/metron-platform/metron-hbase/src/main/java/org/apache/metron/hbase/client/HBaseClient.java
@@ -133,9 +133,11 @@ public class HBaseClient implements Closeable {
/**
* Submits all queued Mutations.
+ * @return The number of mutation submitted.
*/
- public void mutate() {
- Object[] result = new Object[mutations.size()];
+ public int mutate() {
+ int mutationCount = mutations.size();
+ Object[] result = new Object[mutationCount];
try {
table.batch(mutations, result);
mutations.clear();
@@ -144,6 +146,8 @@ public class HBaseClient implements Closeable {
LOG.warn("Error performing a mutation to HBase.", e);
throw new RuntimeException(e);
}
+
+ return mutationCount;
}
/**
http://git-wip-us.apache.org/repos/asf/metron/blob/401bd7a1/metron-platform/metron-hbase/src/test/java/org/apache/metron/hbase/client/HBaseClientTest.java
----------------------------------------------------------------------
diff --git a/metron-platform/metron-hbase/src/test/java/org/apache/metron/hbase/client/HBaseClientTest.java b/metron-platform/metron-hbase/src/test/java/org/apache/metron/hbase/client/HBaseClientTest.java
index 1849745..ca1f5a6 100644
--- a/metron-platform/metron-hbase/src/test/java/org/apache/metron/hbase/client/HBaseClientTest.java
+++ b/metron-platform/metron-hbase/src/test/java/org/apache/metron/hbase/client/HBaseClientTest.java
@@ -160,7 +160,10 @@ public class HBaseClientTest {
// add two mutations to the queue
client.addMutation(rowKey1, cols1, Durability.SYNC_WAL);
client.addMutation(rowKey2, cols2, Durability.SYNC_WAL);
- client.mutate();
+ int count = client.mutate();
+
+ // there were two mutations
+ Assert.assertEquals(2, count);
HBaseProjectionCriteria criteria = new HBaseProjectionCriteria();
criteria.addColumnFamily(WidgetMapper.CF_STRING);
@@ -180,6 +183,31 @@ public class HBaseClientTest {
}
/**
+ * What happens when there is nothing in the batch to write?
+ */
+ @Test
+ public void testEmptyBatch() throws Exception {
+
+ // do not add any mutations before attempting to write
+ int count = client.mutate();
+ Assert.assertEquals(0, count);
+
+ HBaseProjectionCriteria criteria = new HBaseProjectionCriteria();
+ criteria.addColumnFamily(WidgetMapper.CF_STRING);
+
+ // read back both
+ client.addGet(rowKey1, criteria);
+ client.addGet(rowKey2, criteria);
+ Result[] results = client.getAll();
+
+ // validate - there should be nothing to find
+ assertEquals(2, results.length);
+ for(Result result : results) {
+ Assert.assertTrue(result.isEmpty());
+ }
+ }
+
+ /**
* Should be able to read back widgets that were written with a TTL 30 days out.
*/
@Test