You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by nd...@apache.org on 2015/05/20 20:49:15 UTC
hbase git commit: HBASE-13711 Provide an API to set min and max
versions in HColumnDescriptor (Stephen Yuan Jiang)
Repository: hbase
Updated Branches:
refs/heads/master 88f19ab69 -> 77d9719e2
HBASE-13711 Provide an API to set min and max versions in HColumnDescriptor (Stephen Yuan Jiang)
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/77d9719e
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/77d9719e
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/77d9719e
Branch: refs/heads/master
Commit: 77d9719e2bd7db20b0ad3bafb255c9d797d2b49d
Parents: 88f19ab
Author: Nick Dimiduk <nd...@apache.org>
Authored: Wed May 20 11:40:25 2015 -0700
Committer: Nick Dimiduk <nd...@apache.org>
Committed: Wed May 20 11:40:25 2015 -0700
----------------------------------------------------------------------
.../apache/hadoop/hbase/HColumnDescriptor.java | 24 ++++++++++++++++++++
.../chaos/actions/ChangeVersionsAction.java | 3 +--
2 files changed, 25 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/77d9719e/hbase-client/src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java
index 4091c11..2cb587b 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java
@@ -505,6 +505,30 @@ public class HColumnDescriptor implements Comparable<HColumnDescriptor> {
}
/**
+ * Set minimum and maximum versions to keep
+ *
+ * @param minVersions minimal number of versions
+ * @param maxVersions maximum number of versions
+ * @return this (for chained invocation)
+ */
+ public HColumnDescriptor setVersions(int minVersions, int maxVersions) {
+ if (minVersions <= 0) {
+ // TODO: Allow minVersion and maxVersion of 0 to be the way you say "Keep all versions".
+ // Until there is support, consider 0 or < 0 -- a configuration error.
+ throw new IllegalArgumentException("Minimum versions must be positive");
+ }
+
+ if (maxVersions < minVersions) {
+ throw new IllegalArgumentException("Unable to set MaxVersion to " + maxVersions
+ + " and set MinVersion to " + minVersions
+ + ", as maximum versions must be >= minimum versions.");
+ }
+ setMinVersions(minVersions);
+ setMaxVersions(maxVersions);
+ return this;
+ }
+
+ /**
* @return The storefile/hfile blocksize for this column family.
*/
public synchronized int getBlocksize() {
http://git-wip-us.apache.org/repos/asf/hbase/blob/77d9719e/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeVersionsAction.java
----------------------------------------------------------------------
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeVersionsAction.java b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeVersionsAction.java
index 0faa8a3..16f1cb0 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeVersionsAction.java
+++ b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeVersionsAction.java
@@ -59,8 +59,7 @@ public class ChangeVersionsAction extends Action {
int versions = random.nextInt(3) + 1;
for(HColumnDescriptor descriptor:columnDescriptors) {
- descriptor.setMaxVersions(versions);
- descriptor.setMinVersions(versions);
+ descriptor.setVersions(versions, versions);
}
LOG.debug("Performing action: Changing versions on " + tableName.getNameAsString());
admin.modifyTable(tableName, tableDescriptor);