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 zj...@apache.org on 2015/04/10 06:25:30 UTC
[34/47] hadoop git commit: HDFS-7979. Initialize block report IDs
with a random number.
HDFS-7979. Initialize block report IDs with a random number.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/1efbe9ce
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/1efbe9ce
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/1efbe9ce
Branch: refs/heads/YARN-2928
Commit: 1efbe9ce32c9ccaaf1f303025e54e8e9209e978b
Parents: 9c4c2dd
Author: Andrew Wang <an...@cloudera.com>
Authored: Wed Apr 8 21:43:42 2015 -0700
Committer: Zhijie Shen <zj...@apache.org>
Committed: Thu Apr 9 21:21:54 2015 -0700
----------------------------------------------------------------------
hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 2 ++
.../hadoop/hdfs/server/datanode/BPServiceActor.java | 16 +++++++++-------
.../hdfs/server/protocol/BlockReportContext.java | 3 +++
3 files changed, 14 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/1efbe9ce/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
index dacdb3f..19f264a 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
+++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
@@ -404,6 +404,8 @@ Release 2.8.0 - UNRELEASED
HDFS-8089. Move o.a.h.hdfs.web.resources.* to the client jars. (wheat9)
+ HDFS-7979. Initialize block report IDs with a random number. (wang)
+
OPTIMIZATIONS
HDFS-8026. Trace FSOutputSummer#writeChecksumChunks rather than
http://git-wip-us.apache.org/repos/asf/hadoop/blob/1efbe9ce/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BPServiceActor.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BPServiceActor.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BPServiceActor.java
index dd6f9ac..ba22225 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BPServiceActor.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BPServiceActor.java
@@ -118,6 +118,7 @@ class BPServiceActor implements Runnable {
private volatile boolean shouldServiceRun = true;
private final DataNode dn;
private final DNConf dnConf;
+ private long prevBlockReportId;
private DatanodeRegistration bpRegistration;
final LinkedList<BPServiceActorAction> bpThreadQueue
@@ -128,6 +129,7 @@ class BPServiceActor implements Runnable {
this.dn = bpos.getDataNode();
this.nnAddr = nnAddr;
this.dnConf = dn.getDnConf();
+ prevBlockReportId = DFSUtil.getRandom().nextLong();
}
boolean isAlive() {
@@ -434,15 +436,15 @@ class BPServiceActor implements Runnable {
return sendImmediateIBR;
}
- private long prevBlockReportId = 0;
-
private long generateUniqueBlockReportId() {
- long id = System.nanoTime();
- if (id <= prevBlockReportId) {
- id = prevBlockReportId + 1;
+ // Initialize the block report ID the first time through.
+ // Note that 0 is used on the NN to indicate "uninitialized", so we should
+ // not send a 0 value ourselves.
+ prevBlockReportId++;
+ while (prevBlockReportId == 0) {
+ prevBlockReportId = DFSUtil.getRandom().nextLong();
}
- prevBlockReportId = id;
- return id;
+ return prevBlockReportId;
}
/**
http://git-wip-us.apache.org/repos/asf/hadoop/blob/1efbe9ce/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/protocol/BlockReportContext.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/protocol/BlockReportContext.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/protocol/BlockReportContext.java
index a084a81..d0b0282 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/protocol/BlockReportContext.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/protocol/BlockReportContext.java
@@ -18,6 +18,8 @@
package org.apache.hadoop.hdfs.server.protocol;
+import org.apache.hadoop.classification.InterfaceAudience;
+
/**
* The context of the block report.
*
@@ -27,6 +29,7 @@ package org.apache.hadoop.hdfs.server.protocol;
* of RPCs which this block report is split into, and the index into that
* total for the current RPC.
*/
+@InterfaceAudience.Private
public class BlockReportContext {
private final int totalRpcs;
private final int curRpc;