You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ozone.apache.org by el...@apache.org on 2021/02/24 08:45:58 UTC
[ozone] 09/27: unit test
This is an automated email from the ASF dual-hosted git repository.
elek pushed a commit to branch HDDS-3816-ec
in repository https://gitbox.apache.org/repos/asf/ozone.git
commit 834fb0ae251d672eb6097bb586c6fcb207e8404c
Author: Elek Márton <el...@apache.org>
AuthorDate: Tue Jan 26 13:57:40 2021 +0100
unit test
---
.../freon/containergenerator/BaseGenerator.java | 4 ++
.../containergenerator/GeneratorDatanode.java | 35 +++++++++---
.../containergenerator/TestGeneratorDatanode.java | 62 ++++++++++++++++++++++
3 files changed, 93 insertions(+), 8 deletions(-)
diff --git a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/BaseGenerator.java b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/BaseGenerator.java
index 4f7f468..beebd2b 100644
--- a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/BaseGenerator.java
+++ b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/BaseGenerator.java
@@ -66,4 +66,8 @@ public abstract class BaseGenerator extends BaseFreonGenerator implements
public int getKeySize() {
return keySize;
}
+
+ public void setContainerIdOffset(int i) {
+ this.containerIdOffset = i;
+ }
}
diff --git a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorDatanode.java b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorDatanode.java
index 8d59101..82b9fbc 100644
--- a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorDatanode.java
+++ b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorDatanode.java
@@ -109,12 +109,7 @@ public class GeneratorDatanode extends BaseGenerator {
public Void call() throws Exception {
init();
- numberOfPipelines = datanodes / 3;
-
- //generate only containers for one datanodes
- setTestNo(getTestNo() / numberOfPipelines);
-
- currentPipeline = (datanodeIndex - 1) % numberOfPipelines;
+ initIndexParameters();
config = createOzoneConfiguration();
@@ -164,12 +159,20 @@ public class GeneratorDatanode extends BaseGenerator {
return null;
}
+ public void initIndexParameters() {
+ numberOfPipelines = datanodes / 3;
+
+ //generate only containers for one datanodes
+ setTestNo(getTestNo() / numberOfPipelines);
+
+ currentPipeline = (datanodeIndex - 1) % numberOfPipelines;
+ }
+
private void generateData(long index) throws Exception {
timer.time((Callable<Void>) () -> {
- long containerId =
- getContainerIdOffset() + index * numberOfPipelines + currentPipeline;
+ long containerId = getContainerIdForIndex(index);
SplittableRandom random = new SplittableRandom(containerId);
@@ -230,6 +233,10 @@ public class GeneratorDatanode extends BaseGenerator {
}
+ public long getContainerIdForIndex(long index) {
+ return getContainerIdOffset() + index * numberOfPipelines + currentPipeline;
+ }
+
private void generatedRandomData(SplittableRandom random, byte[] data) {
int bit = 0;
int writtenBytes = 0;
@@ -300,4 +307,16 @@ public class GeneratorDatanode extends BaseGenerator {
chunkManager.finishWriteChunks(container, new BlockData(blockId));
}
+ public void setDatanodes(int datanodes) {
+ this.datanodes = datanodes;
+ }
+
+ public void setDatanodeIndex(int datanodeIndex) {
+ this.datanodeIndex = datanodeIndex;
+ }
+
+ public void setNumberOfPipelines(int i) {
+ this.numberOfPipelines = i;
+ }
+
}
diff --git a/hadoop-ozone/tools/src/test/java/org/apache/hadoop/ozone/freon/containergenerator/TestGeneratorDatanode.java b/hadoop-ozone/tools/src/test/java/org/apache/hadoop/ozone/freon/containergenerator/TestGeneratorDatanode.java
new file mode 100644
index 0000000..560fa24
--- /dev/null
+++ b/hadoop-ozone/tools/src/test/java/org/apache/hadoop/ozone/freon/containergenerator/TestGeneratorDatanode.java
@@ -0,0 +1,62 @@
+package org.apache.hadoop.ozone.freon.containergenerator;
+
+import org.junit.Assert;
+import static org.junit.Assert.*;
+import org.junit.Test;
+
+public class TestGeneratorDatanode {
+
+ @Test
+ public void indexForOnePipeline() {
+ final GeneratorDatanode generatorDatanode = new GeneratorDatanode();
+ generatorDatanode.setThreadNo(50);
+ generatorDatanode.setDatanodeIndex(1);
+ generatorDatanode.setDatanodes(3);
+ generatorDatanode.setNumberOfPipelines(3);
+ generatorDatanode.setContainerIdOffset(1);
+
+ for (int i = 1; i <= 3; i++) {
+ generatorDatanode.setDatanodeIndex(i);
+ generatorDatanode.initIndexParameters();
+ Assert.assertEquals(1L, generatorDatanode.getContainerIdForIndex(0L));
+ Assert.assertEquals(2L, generatorDatanode.getContainerIdForIndex(1L));
+ Assert.assertEquals(3L, generatorDatanode.getContainerIdForIndex(2L));
+ Assert.assertEquals(4L, generatorDatanode.getContainerIdForIndex(3L));
+ Assert.assertEquals(5L, generatorDatanode.getContainerIdForIndex(4L));
+ Assert.assertEquals(6L, generatorDatanode.getContainerIdForIndex(5L));
+ }
+ }
+
+ @Test
+ public void indexForNineNode() {
+ final GeneratorDatanode generatorDatanode = new GeneratorDatanode();
+ generatorDatanode.setThreadNo(50);
+ generatorDatanode.setDatanodeIndex(1);
+ generatorDatanode.setDatanodes(3);
+ generatorDatanode.setNumberOfPipelines(3);
+ generatorDatanode.setContainerIdOffset(1);
+
+ generatorDatanode.setDatanodeIndex(1);
+ Assert.assertEquals(1L, generatorDatanode.getContainerIdForIndex(1L));
+ Assert.assertEquals(2L, generatorDatanode.getContainerIdForIndex(2L));
+ Assert.assertEquals(3L, generatorDatanode.getContainerIdForIndex(3L));
+ Assert.assertEquals(4L, generatorDatanode.getContainerIdForIndex(4L));
+ Assert.assertEquals(5L, generatorDatanode.getContainerIdForIndex(5L));
+
+ generatorDatanode.setDatanodeIndex(2);
+ Assert.assertEquals(1L, generatorDatanode.getContainerIdForIndex(1L));
+ Assert.assertEquals(2L, generatorDatanode.getContainerIdForIndex(2L));
+ Assert.assertEquals(3L, generatorDatanode.getContainerIdForIndex(3L));
+ Assert.assertEquals(4L, generatorDatanode.getContainerIdForIndex(4L));
+ Assert.assertEquals(5L, generatorDatanode.getContainerIdForIndex(5L));
+
+ generatorDatanode.setDatanodeIndex(3);
+ Assert.assertEquals(1L, generatorDatanode.getContainerIdForIndex(1L));
+ Assert.assertEquals(2L, generatorDatanode.getContainerIdForIndex(2L));
+ Assert.assertEquals(3L, generatorDatanode.getContainerIdForIndex(3L));
+ Assert.assertEquals(4L, generatorDatanode.getContainerIdForIndex(4L));
+ Assert.assertEquals(5L, generatorDatanode.getContainerIdForIndex(5L));
+
+ }
+
+}
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@ozone.apache.org
For additional commands, e-mail: commits-help@ozone.apache.org