HDFS-9484. NNThroughputBenchmark$BlockReportStats should not send empty block reports. Contributed by Mingliang Liu.

This commit is contained in:
Konstantin V Shvachko 2015-12-03 14:51:06 -08:00
parent 3aa73a867a
commit 33d4588a7c
2 changed files with 6 additions and 3 deletions

View File

@ -1571,6 +1571,9 @@ Release 2.8.0 - UNRELEASED
HDFS-9429. Tests in TestDFSAdminWithHA intermittently fail with HDFS-9429. Tests in TestDFSAdminWithHA intermittently fail with
EOFException (Xiao Chen via Colin P. McCabe) EOFException (Xiao Chen via Colin P. McCabe)
HDFS-9484. NNThroughputBenchmark$BlockReportStats should not send empty
block reports. (Mingliang Liu via shv)
Release 2.7.3 - UNRELEASED Release 2.7.3 - UNRELEASED
INCOMPATIBLE CHANGES INCOMPATIBLE CHANGES

View File

@ -925,7 +925,7 @@ private static class TinyDatanode implements Comparable<String> {
NamespaceInfo nsInfo; NamespaceInfo nsInfo;
DatanodeRegistration dnRegistration; DatanodeRegistration dnRegistration;
DatanodeStorage storage; //only one storage DatanodeStorage storage; //only one storage
final ArrayList<BlockReportReplica> blocks; final List<BlockReportReplica> blocks;
int nrBlocks; // actual number of blocks int nrBlocks; // actual number of blocks
BlockListAsLongs blockReportList; BlockListAsLongs blockReportList;
final int dnIdx; final int dnIdx;
@ -938,7 +938,7 @@ private static int getNodePort(int num) throws IOException {
TinyDatanode(int dnIdx, int blockCapacity) throws IOException { TinyDatanode(int dnIdx, int blockCapacity) throws IOException {
this.dnIdx = dnIdx; this.dnIdx = dnIdx;
this.blocks = new ArrayList<BlockReportReplica>(blockCapacity); this.blocks = Arrays.asList(new BlockReportReplica[blockCapacity]);
this.nrBlocks = 0; this.nrBlocks = 0;
} }
@ -1013,7 +1013,7 @@ void formBlockReport() {
Block block = new Block(blocks.size() - idx, 0, 0); Block block = new Block(blocks.size() - idx, 0, 0);
blocks.set(idx, new BlockReportReplica(block)); blocks.set(idx, new BlockReportReplica(block));
} }
blockReportList = BlockListAsLongs.EMPTY; blockReportList = BlockListAsLongs.encode(blocks);
} }
BlockListAsLongs getBlockReportList() { BlockListAsLongs getBlockReportList() {