Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
0.12.0
-
None
-
None
Description
When the namenode restarts, all datanodes report their blocks to the namenode. The namenode inserts these blocks into neededReplication(). When safemode exists, pendingTransfers removes them from neededReplication. This is non-optimal because pendingTransfer consumes plenty of CPU just after exiting safe-mode.
The problem is that neededReplications.remove(block) does not remove a block if oldExpectedReplicas is exactly equal to oldReplicas.