You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by el...@apache.org on 2018/09/19 15:10:35 UTC
hadoop git commit: HDDS-458. numberofKeys is 0 for all containers
even when keys are present. Contributed by LiXin Ge.
Repository: hadoop
Updated Branches:
refs/heads/ozone-0.2 3fcdc865c -> 8600b049a
HDDS-458. numberofKeys is 0 for all containers even when keys are present. Contributed by LiXin Ge.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/8600b049
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/8600b049
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/8600b049
Branch: refs/heads/ozone-0.2
Commit: 8600b049af184af04dfb93b6bc353740e3e821d3
Parents: 3fcdc86
Author: Márton Elek <el...@apache.org>
Authored: Wed Sep 19 14:51:03 2018 +0200
Committer: Márton Elek <el...@apache.org>
Committed: Wed Sep 19 16:28:28 2018 +0200
----------------------------------------------------------------------
.../container/keyvalue/KeyValueContainer.java | 1 +
.../scm/container/TestContainerMapping.java | 46 ++++++++++++++++++++
2 files changed, 47 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/8600b049/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/KeyValueContainer.java
----------------------------------------------------------------------
diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/KeyValueContainer.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/KeyValueContainer.java
index b893a38..0870c76 100644
--- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/KeyValueContainer.java
+++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/KeyValueContainer.java
@@ -521,6 +521,7 @@ public class KeyValueContainer implements Container<KeyValueContainerData> {
.setWriteCount(containerData.getWriteCount())
.setReadBytes(containerData.getReadBytes())
.setWriteBytes(containerData.getWriteBytes())
+ .setKeyCount(containerData.getKeyCount())
.setUsed(containerData.getBytesUsed())
.setState(getHddsState())
.setDeleteTransactionId(containerData.getDeleteTransactionId());
http://git-wip-us.apache.org/repos/asf/hadoop/blob/8600b049/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestContainerMapping.java
----------------------------------------------------------------------
diff --git a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestContainerMapping.java b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestContainerMapping.java
index 224f6ddd..f9a881e 100644
--- a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestContainerMapping.java
+++ b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestContainerMapping.java
@@ -281,6 +281,52 @@ public class TestContainerMapping {
}
@Test
+ public void testListContainerAfterReport() throws Exception {
+ ContainerInfo info1 = createContainer();
+ ContainerInfo info2 = createContainer();
+ DatanodeDetails datanodeDetails = TestUtils.randomDatanodeDetails();
+ List<StorageContainerDatanodeProtocolProtos.ContainerInfo> reports =
+ new ArrayList<>();
+ StorageContainerDatanodeProtocolProtos.ContainerInfo.Builder ciBuilder =
+ StorageContainerDatanodeProtocolProtos.ContainerInfo.newBuilder();
+ long cID1 = info1.getContainerID();
+ long cID2 = info2.getContainerID();
+ ciBuilder.setFinalhash("e16cc9d6024365750ed8dbd194ea46d2")
+ .setSize(1000000000L)
+ .setUsed(987654321L)
+ .setKeyCount(100000000L)
+ .setReadBytes(1000000000L)
+ .setWriteBytes(1000000000L)
+ .setContainerID(cID1);
+ reports.add(ciBuilder.build());
+
+ ciBuilder.setFinalhash("e16cc9d6024365750ed8dbd194ea54a9")
+ .setSize(1000000000L)
+ .setUsed(123456789L)
+ .setKeyCount(200000000L)
+ .setReadBytes(3000000000L)
+ .setWriteBytes(4000000000L)
+ .setContainerID(cID2);
+ reports.add(ciBuilder.build());
+
+ ContainerReportsProto.Builder crBuilder = ContainerReportsProto
+ .newBuilder();
+ crBuilder.addAllReports(reports);
+
+ mapping.processContainerReports(datanodeDetails, crBuilder.build(), false);
+
+ List<ContainerInfo> list = mapping.listContainer(0, 50);
+ Assert.assertEquals(2, list.stream().filter(
+ x -> x.getContainerID() == cID1 || x.getContainerID() == cID2).count());
+ Assert.assertEquals(300000000L, list.stream().filter(
+ x -> x.getContainerID() == cID1 || x.getContainerID() == cID2)
+ .mapToLong(x -> x.getNumberOfKeys()).sum());
+ Assert.assertEquals(1111111110L, list.stream().filter(
+ x -> x.getContainerID() == cID1 || x.getContainerID() == cID2)
+ .mapToLong(x -> x.getUsedBytes()).sum());
+ }
+
+ @Test
public void testCloseContainer() throws IOException {
ContainerInfo info = createContainer();
mapping.updateContainerState(info.getContainerID(),
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org