Skip to content

Commit

Permalink
HDFS-15694. Avoid calling UpdateHeartBeatState inside DataNodeDescrip…
Browse files Browse the repository at this point in the history
…tor. (#2487) Contributed by Kuhu Shukla and Ahmed Hussein

(cherry picked from commit 918ba9e)
  • Loading branch information
amahussein authored and jbrennan333 committed Dec 1, 2020
1 parent 7e89bd5 commit 625f85f
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -237,7 +237,8 @@ public Type getType() {
*/
public DatanodeDescriptor(DatanodeID nodeID) {
super(nodeID);
updateHeartbeatState(StorageReport.EMPTY_ARRAY, 0L, 0L, 0, 0, null);
setLastUpdate(Time.now());
setLastUpdateMonotonic(Time.monotonicNow());
}

/**
Expand All @@ -248,7 +249,8 @@ public DatanodeDescriptor(DatanodeID nodeID) {
public DatanodeDescriptor(DatanodeID nodeID,
String networkLocation) {
super(nodeID, networkLocation);
updateHeartbeatState(StorageReport.EMPTY_ARRAY, 0L, 0L, 0, 0, null);
setLastUpdate(Time.now());
setLastUpdateMonotonic(Time.monotonicNow());
}

public CachedBlocksList getPendingCached() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertTrue;

import java.util.ArrayList;
Expand Down Expand Up @@ -63,16 +64,16 @@ public void testBlocksCounter() throws Exception {
DatanodeStorageInfo[] storages = dd.getStorageInfos();
assertTrue(storages.length > 0);
// add first block
assertTrue(storages[0].addBlock(blk) == AddBlockResult.ADDED);
assertEquals(AddBlockResult.ADDED, storages[0].addBlock(blk));
assertEquals(1, dd.numBlocks());
// remove a non-existent block
assertFalse(BlocksMap.removeBlock(dd, blk1));
assertEquals(1, dd.numBlocks());
// add an existent block
assertFalse(storages[0].addBlock(blk) == AddBlockResult.ADDED);
assertNotEquals(AddBlockResult.ADDED, storages[0].addBlock(blk));
assertEquals(1, dd.numBlocks());
// add second block
assertTrue(storages[0].addBlock(blk1) == AddBlockResult.ADDED);
assertEquals(AddBlockResult.ADDED, storages[0].addBlock(blk1));
assertEquals(2, dd.numBlocks());
// remove first block
assertTrue(BlocksMap.removeBlock(dd, blk));
Expand Down

0 comments on commit 625f85f

Please sign in to comment.