hadoop git commit: HDFS-7990. IBR delete ack should not be delayed. Contributed by Daryn Sharp.

2015-03-27 Thread kihwal
Repository: hadoop
Updated Branches:
  refs/heads/trunk af618f23a -> 60882ab26


HDFS-7990. IBR delete ack should not be delayed. Contributed by Daryn Sharp.


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/60882ab2
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/60882ab2
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/60882ab2

Branch: refs/heads/trunk
Commit: 60882ab26d49f05cbf0686944af6559f86b3417d
Parents: af618f2
Author: Kihwal Lee 
Authored: Fri Mar 27 09:05:17 2015 -0500
Committer: Kihwal Lee 
Committed: Fri Mar 27 09:05:17 2015 -0500

--
 hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt|  2 ++
 .../hdfs/server/datanode/BPServiceActor.java   | 17 +++--
 .../apache/hadoop/hdfs/server/datanode/DNConf.java |  2 --
 .../hdfs/server/datanode/SimulatedFSDataset.java   | 13 -
 .../datanode/TestIncrementalBlockReports.java  |  4 ++--
 5 files changed, 23 insertions(+), 15 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hadoop/blob/60882ab2/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 dff8bd2..72ea4fb 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
+++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
@@ -342,6 +342,8 @@ Release 2.8.0 - UNRELEASED
 HDFS-7928. Scanning blocks from disk during rolling upgrade startup takes
 a lot of time if disks are busy (Rushabh S Shah via kihwal)
 
+HDFS-7990. IBR delete ack should not be delayed. (daryn via kihwal)
+
   OPTIMIZATIONS
 
   BUG FIXES

http://git-wip-us.apache.org/repos/asf/hadoop/blob/60882ab2/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 10cce45..3b4756c 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
@@ -82,12 +82,11 @@ class BPServiceActor implements Runnable {
 
   final BPOfferService bpos;
   
-  // lastBlockReport, lastDeletedReport and lastHeartbeat may be assigned/read
+  // lastBlockReport and lastHeartbeat may be assigned/read
   // by testing threads (through BPServiceActor#triggerXXX), while also 
   // assigned/read by the actor thread. Thus they should be declared as 
volatile
   // to make sure the "happens-before" consistency.
   volatile long lastBlockReport = 0;
-  volatile long lastDeletedReport = 0;
 
   boolean resetBlockReportTime = true;
 
@@ -417,10 +416,10 @@ class BPServiceActor implements Runnable {
   @VisibleForTesting
   void triggerDeletionReportForTests() {
 synchronized (pendingIncrementalBRperStorage) {
-  lastDeletedReport = 0;
+  sendImmediateIBR = true;
   pendingIncrementalBRperStorage.notifyAll();
 
-  while (lastDeletedReport == 0) {
+  while (sendImmediateIBR) {
 try {
   pendingIncrementalBRperStorage.wait(100);
 } catch (InterruptedException e) {
@@ -465,7 +464,6 @@ class BPServiceActor implements Runnable {
 // or we will report an RBW replica after the BlockReport already reports
 // a FINALIZED one.
 reportReceivedDeletedBlocks();
-lastDeletedReport = startTime;
 
 long brCreateStartTime = monotonicNow();
 Map perVolumeBlockLists =
@@ -674,7 +672,6 @@ class BPServiceActor implements Runnable {
*/
   private void offerService() throws Exception {
 LOG.info("For namenode " + nnAddr + " using"
-+ " DELETEREPORT_INTERVAL of " + dnConf.deleteReportInterval + " msec "
 + " BLOCKREPORT_INTERVAL of " + dnConf.blockReportInterval + "msec"
 + " CACHEREPORT_INTERVAL of " + dnConf.cacheReportInterval + "msec"
 + " Initial delay: " + dnConf.initialBlockReportDelay + "msec"
@@ -690,7 +687,9 @@ class BPServiceActor implements Runnable {
 //
 // Every so often, send heartbeat or block-report
 //
-if (startTime - lastHeartbeat >= dnConf.heartBeatInterval) {
+boolean sendHeartbeat =
+startTime - lastHeartbeat >= dnConf.heartBeatInterval;
+if (sendHeartbeat) {
   //
   // All heartbeat messages include following info:
   // -- Datanode name
@@ -729,10 +728,8 @@ class BPServiceActor implements Runnable {
 }
   }
 }

[03/20] hadoop git commit: HDFS-7990. IBR delete ack should not be delayed. Contributed by Daryn Sharp.

2015-03-30 Thread zjshen
HDFS-7990. IBR delete ack should not be delayed. Contributed by Daryn Sharp.


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/f402f6d5
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/f402f6d5
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/f402f6d5

Branch: refs/heads/YARN-2928
Commit: f402f6d592569601efee5682316aad0a403447b3
Parents: ee35265
Author: Kihwal Lee 
Authored: Fri Mar 27 09:05:17 2015 -0500
Committer: Zhijie Shen 
Committed: Mon Mar 30 12:10:46 2015 -0700

--
 hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt|  2 ++
 .../hdfs/server/datanode/BPServiceActor.java   | 17 +++--
 .../apache/hadoop/hdfs/server/datanode/DNConf.java |  2 --
 .../hdfs/server/datanode/SimulatedFSDataset.java   | 13 -
 .../datanode/TestIncrementalBlockReports.java  |  4 ++--
 5 files changed, 23 insertions(+), 15 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hadoop/blob/f402f6d5/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 dff8bd2..72ea4fb 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
+++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
@@ -342,6 +342,8 @@ Release 2.8.0 - UNRELEASED
 HDFS-7928. Scanning blocks from disk during rolling upgrade startup takes
 a lot of time if disks are busy (Rushabh S Shah via kihwal)
 
+HDFS-7990. IBR delete ack should not be delayed. (daryn via kihwal)
+
   OPTIMIZATIONS
 
   BUG FIXES

http://git-wip-us.apache.org/repos/asf/hadoop/blob/f402f6d5/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 10cce45..3b4756c 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
@@ -82,12 +82,11 @@ class BPServiceActor implements Runnable {
 
   final BPOfferService bpos;
   
-  // lastBlockReport, lastDeletedReport and lastHeartbeat may be assigned/read
+  // lastBlockReport and lastHeartbeat may be assigned/read
   // by testing threads (through BPServiceActor#triggerXXX), while also 
   // assigned/read by the actor thread. Thus they should be declared as 
volatile
   // to make sure the "happens-before" consistency.
   volatile long lastBlockReport = 0;
-  volatile long lastDeletedReport = 0;
 
   boolean resetBlockReportTime = true;
 
@@ -417,10 +416,10 @@ class BPServiceActor implements Runnable {
   @VisibleForTesting
   void triggerDeletionReportForTests() {
 synchronized (pendingIncrementalBRperStorage) {
-  lastDeletedReport = 0;
+  sendImmediateIBR = true;
   pendingIncrementalBRperStorage.notifyAll();
 
-  while (lastDeletedReport == 0) {
+  while (sendImmediateIBR) {
 try {
   pendingIncrementalBRperStorage.wait(100);
 } catch (InterruptedException e) {
@@ -465,7 +464,6 @@ class BPServiceActor implements Runnable {
 // or we will report an RBW replica after the BlockReport already reports
 // a FINALIZED one.
 reportReceivedDeletedBlocks();
-lastDeletedReport = startTime;
 
 long brCreateStartTime = monotonicNow();
 Map perVolumeBlockLists =
@@ -674,7 +672,6 @@ class BPServiceActor implements Runnable {
*/
   private void offerService() throws Exception {
 LOG.info("For namenode " + nnAddr + " using"
-+ " DELETEREPORT_INTERVAL of " + dnConf.deleteReportInterval + " msec "
 + " BLOCKREPORT_INTERVAL of " + dnConf.blockReportInterval + "msec"
 + " CACHEREPORT_INTERVAL of " + dnConf.cacheReportInterval + "msec"
 + " Initial delay: " + dnConf.initialBlockReportDelay + "msec"
@@ -690,7 +687,9 @@ class BPServiceActor implements Runnable {
 //
 // Every so often, send heartbeat or block-report
 //
-if (startTime - lastHeartbeat >= dnConf.heartBeatInterval) {
+boolean sendHeartbeat =
+startTime - lastHeartbeat >= dnConf.heartBeatInterval;
+if (sendHeartbeat) {
   //
   // All heartbeat messages include following info:
   // -- Datanode name
@@ -729,10 +728,8 @@ class BPServiceActor implements Runnable {
 }
   }
 }
-if (sendImmediateIBR ||
-(startTime - lastDeletedReport

[01/50] [abbrv] hadoop git commit: HDFS-7990. IBR delete ack should not be delayed. Contributed by Daryn Sharp.

2015-03-30 Thread zhz
Repository: hadoop
Updated Branches:
  refs/heads/HDFS-7285 27cb5701e -> a6543ac97 (forced update)


HDFS-7990. IBR delete ack should not be delayed. Contributed by Daryn Sharp.


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/60882ab2
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/60882ab2
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/60882ab2

Branch: refs/heads/HDFS-7285
Commit: 60882ab26d49f05cbf0686944af6559f86b3417d
Parents: af618f2
Author: Kihwal Lee 
Authored: Fri Mar 27 09:05:17 2015 -0500
Committer: Kihwal Lee 
Committed: Fri Mar 27 09:05:17 2015 -0500

--
 hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt|  2 ++
 .../hdfs/server/datanode/BPServiceActor.java   | 17 +++--
 .../apache/hadoop/hdfs/server/datanode/DNConf.java |  2 --
 .../hdfs/server/datanode/SimulatedFSDataset.java   | 13 -
 .../datanode/TestIncrementalBlockReports.java  |  4 ++--
 5 files changed, 23 insertions(+), 15 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hadoop/blob/60882ab2/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 dff8bd2..72ea4fb 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
+++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
@@ -342,6 +342,8 @@ Release 2.8.0 - UNRELEASED
 HDFS-7928. Scanning blocks from disk during rolling upgrade startup takes
 a lot of time if disks are busy (Rushabh S Shah via kihwal)
 
+HDFS-7990. IBR delete ack should not be delayed. (daryn via kihwal)
+
   OPTIMIZATIONS
 
   BUG FIXES

http://git-wip-us.apache.org/repos/asf/hadoop/blob/60882ab2/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 10cce45..3b4756c 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
@@ -82,12 +82,11 @@ class BPServiceActor implements Runnable {
 
   final BPOfferService bpos;
   
-  // lastBlockReport, lastDeletedReport and lastHeartbeat may be assigned/read
+  // lastBlockReport and lastHeartbeat may be assigned/read
   // by testing threads (through BPServiceActor#triggerXXX), while also 
   // assigned/read by the actor thread. Thus they should be declared as 
volatile
   // to make sure the "happens-before" consistency.
   volatile long lastBlockReport = 0;
-  volatile long lastDeletedReport = 0;
 
   boolean resetBlockReportTime = true;
 
@@ -417,10 +416,10 @@ class BPServiceActor implements Runnable {
   @VisibleForTesting
   void triggerDeletionReportForTests() {
 synchronized (pendingIncrementalBRperStorage) {
-  lastDeletedReport = 0;
+  sendImmediateIBR = true;
   pendingIncrementalBRperStorage.notifyAll();
 
-  while (lastDeletedReport == 0) {
+  while (sendImmediateIBR) {
 try {
   pendingIncrementalBRperStorage.wait(100);
 } catch (InterruptedException e) {
@@ -465,7 +464,6 @@ class BPServiceActor implements Runnable {
 // or we will report an RBW replica after the BlockReport already reports
 // a FINALIZED one.
 reportReceivedDeletedBlocks();
-lastDeletedReport = startTime;
 
 long brCreateStartTime = monotonicNow();
 Map perVolumeBlockLists =
@@ -674,7 +672,6 @@ class BPServiceActor implements Runnable {
*/
   private void offerService() throws Exception {
 LOG.info("For namenode " + nnAddr + " using"
-+ " DELETEREPORT_INTERVAL of " + dnConf.deleteReportInterval + " msec "
 + " BLOCKREPORT_INTERVAL of " + dnConf.blockReportInterval + "msec"
 + " CACHEREPORT_INTERVAL of " + dnConf.cacheReportInterval + "msec"
 + " Initial delay: " + dnConf.initialBlockReportDelay + "msec"
@@ -690,7 +687,9 @@ class BPServiceActor implements Runnable {
 //
 // Every so often, send heartbeat or block-report
 //
-if (startTime - lastHeartbeat >= dnConf.heartBeatInterval) {
+boolean sendHeartbeat =
+startTime - lastHeartbeat >= dnConf.heartBeatInterval;
+if (sendHeartbeat) {
   //
   // All heartbeat messages include following info:
   // -- Datanode name
@@ -729,10 +728,8 @@ class BPServiceActor implements Runnable {
 }

hadoop git commit: HDFS-7990. IBR delete ack should not be delayed. Contributed by Daryn Sharp. (cherry picked from commit 60882ab26d49f05cbf0686944af6559f86b3417d)

2015-03-27 Thread kihwal
Repository: hadoop
Updated Branches:
  refs/heads/branch-2 36371cddd -> 577ea0886


HDFS-7990. IBR delete ack should not be delayed. Contributed by Daryn Sharp.
(cherry picked from commit 60882ab26d49f05cbf0686944af6559f86b3417d)


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/577ea088
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/577ea088
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/577ea088

Branch: refs/heads/branch-2
Commit: 577ea088655480a7550d968c02f8b5dd8b0d5298
Parents: 36371cd
Author: Kihwal Lee 
Authored: Fri Mar 27 09:06:23 2015 -0500
Committer: Kihwal Lee 
Committed: Fri Mar 27 09:06:23 2015 -0500

--
 hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt|  2 ++
 .../hdfs/server/datanode/BPServiceActor.java   | 17 +++--
 .../apache/hadoop/hdfs/server/datanode/DNConf.java |  2 --
 .../hdfs/server/datanode/SimulatedFSDataset.java   | 13 -
 .../datanode/TestIncrementalBlockReports.java  |  4 ++--
 5 files changed, 23 insertions(+), 15 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hadoop/blob/577ea088/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 743a5c2..09bbfaa 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
+++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
@@ -27,6 +27,8 @@ Release 2.8.0 - UNRELEASED
 HDFS-7928. Scanning blocks from disk during rolling upgrade startup takes
 a lot of time if disks are busy (Rushabh S Shah via kihwal)
 
+HDFS-7990. IBR delete ack should not be delayed. (daryn via kihwal)
+
   OPTIMIZATIONS
 
   BUG FIXES

http://git-wip-us.apache.org/repos/asf/hadoop/blob/577ea088/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 10cce45..3b4756c 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
@@ -82,12 +82,11 @@ class BPServiceActor implements Runnable {
 
   final BPOfferService bpos;
   
-  // lastBlockReport, lastDeletedReport and lastHeartbeat may be assigned/read
+  // lastBlockReport and lastHeartbeat may be assigned/read
   // by testing threads (through BPServiceActor#triggerXXX), while also 
   // assigned/read by the actor thread. Thus they should be declared as 
volatile
   // to make sure the "happens-before" consistency.
   volatile long lastBlockReport = 0;
-  volatile long lastDeletedReport = 0;
 
   boolean resetBlockReportTime = true;
 
@@ -417,10 +416,10 @@ class BPServiceActor implements Runnable {
   @VisibleForTesting
   void triggerDeletionReportForTests() {
 synchronized (pendingIncrementalBRperStorage) {
-  lastDeletedReport = 0;
+  sendImmediateIBR = true;
   pendingIncrementalBRperStorage.notifyAll();
 
-  while (lastDeletedReport == 0) {
+  while (sendImmediateIBR) {
 try {
   pendingIncrementalBRperStorage.wait(100);
 } catch (InterruptedException e) {
@@ -465,7 +464,6 @@ class BPServiceActor implements Runnable {
 // or we will report an RBW replica after the BlockReport already reports
 // a FINALIZED one.
 reportReceivedDeletedBlocks();
-lastDeletedReport = startTime;
 
 long brCreateStartTime = monotonicNow();
 Map perVolumeBlockLists =
@@ -674,7 +672,6 @@ class BPServiceActor implements Runnable {
*/
   private void offerService() throws Exception {
 LOG.info("For namenode " + nnAddr + " using"
-+ " DELETEREPORT_INTERVAL of " + dnConf.deleteReportInterval + " msec "
 + " BLOCKREPORT_INTERVAL of " + dnConf.blockReportInterval + "msec"
 + " CACHEREPORT_INTERVAL of " + dnConf.cacheReportInterval + "msec"
 + " Initial delay: " + dnConf.initialBlockReportDelay + "msec"
@@ -690,7 +687,9 @@ class BPServiceActor implements Runnable {
 //
 // Every so often, send heartbeat or block-report
 //
-if (startTime - lastHeartbeat >= dnConf.heartBeatInterval) {
+boolean sendHeartbeat =
+startTime - lastHeartbeat >= dnConf.heartBeatInterval;
+if (sendHeartbeat) {
   //
   // All heartbeat messages include following info:
   // -- Datanode name
@@ -729,10 +728,8 @@ class BPS

[1/2] hadoop git commit: HDFS-7990. IBR delete ack should not be delayed. Contributed by Daryn Sharp. Backport HDFS-11838 by Vinitha Gankidi.

2017-05-18 Thread shv
Repository: hadoop
Updated Branches:
  refs/heads/branch-2.7 2b58fb8b0 -> 42c2d36ba


HDFS-7990. IBR delete ack should not be delayed. Contributed by Daryn Sharp. 
Backport HDFS-11838 by Vinitha Gankidi.

(cherry picked from commit 60882ab26d49f05cbf0686944af6559f86b3417d)

Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/2c3f6aed
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/2c3f6aed
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/2c3f6aed

Branch: refs/heads/branch-2.7
Commit: 2c3f6aedf11ef0729a306faab26e22854de4248d
Parents: 2b58fb8
Author: Konstantin V Shvachko 
Authored: Wed May 17 23:58:27 2017 -0700
Committer: Konstantin V Shvachko 
Committed: Wed May 17 23:58:27 2017 -0700

--
 hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt|  3 +++
 .../hadoop/hdfs/server/datanode/BPServiceActor.java| 13 +++--
 .../org/apache/hadoop/hdfs/server/datanode/DNConf.java |  2 --
 .../hdfs/server/datanode/SimulatedFSDataset.java   | 13 -
 .../server/datanode/TestIncrementalBlockReports.java   |  4 ++--
 5 files changed, 20 insertions(+), 15 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hadoop/blob/2c3f6aed/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 19b2996..32a5069 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
+++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
@@ -88,6 +88,9 @@ Release 2.7.4 - UNRELEASED
 HDFS-11785. Backport HDFS-9902 to branch-2.7: Support different values of
 dfs.datanode.du.reserved per storage type. (Brahma Reddy Battula)
 
+HDFS-7990. IBR delete ack should not be delayed. (Daryn Sharp.
+Backport HDFS-11838 by Vinitha Gankidi)
+
   OPTIMIZATIONS
 
 HDFS-10896. Move lock logging logic from FSNamesystem into 
FSNamesystemLock.

http://git-wip-us.apache.org/repos/asf/hadoop/blob/2c3f6aed/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 05aca6c..38b7e94 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
@@ -82,8 +82,6 @@ class BPServiceActor implements Runnable {
   HAServiceState state;
 
   final BPOfferService bpos;
-  
-  volatile long lastDeletedReport = 0;
 
   volatile long lastCacheReport = 0;
   private final Scheduler scheduler;
@@ -385,10 +383,10 @@ class BPServiceActor implements Runnable {
   @VisibleForTesting
   void triggerDeletionReportForTests() {
 synchronized (pendingIncrementalBRperStorage) {
-  lastDeletedReport = 0;
+  sendImmediateIBR = true;
   pendingIncrementalBRperStorage.notifyAll();
 
-  while (lastDeletedReport == 0) {
+  while (sendImmediateIBR) {
 try {
   pendingIncrementalBRperStorage.wait(100);
 } catch (InterruptedException e) {
@@ -421,7 +419,6 @@ class BPServiceActor implements Runnable {
*/
   List blockReport() throws IOException {
 // send block report if timer has expired.
-final long startTime = scheduler.monotonicNow(); 
 if (!scheduler.isBlockReportDue()) {
   return null;
 }
@@ -433,7 +430,6 @@ class BPServiceActor implements Runnable {
 // or we will report an RBW replica after the BlockReport already reports
 // a FINALIZED one.
 reportReceivedDeletedBlocks();
-lastDeletedReport = startTime;
 
 long brCreateStartTime = monotonicNow();
 Map perVolumeBlockLists =
@@ -624,7 +620,6 @@ class BPServiceActor implements Runnable {
*/
   private void offerService() throws Exception {
 LOG.info("For namenode " + nnAddr + " using"
-+ " DELETEREPORT_INTERVAL of " + dnConf.deleteReportInterval + " msec "
 + " BLOCKREPORT_INTERVAL of " + dnConf.blockReportInterval + "msec"
 + " CACHEREPORT_INTERVAL of " + dnConf.cacheReportInterval + "msec"
 + " Initial delay: " + dnConf.initialBlockReportDelay + "msec"
@@ -679,10 +674,8 @@ class BPServiceActor implements Runnable {
 }
   }
 }
-if (sendImmediateIBR ||
-(startTime - lastDeletedReport > dnConf.deleteReportInterval)) {
+if (sendImmediateIBR || sendHeartbeat) {
   reportReceivedDeletedBlocks();
-  lastDeletedRe