HDFS-7217. Better batching of IBRs. Contributed by Kihwal Lee.

This commit is contained in:
Kihwal Lee 2014-10-09 12:07:51 -05:00
parent 8d7c54967d
commit db71bb54bc
4 changed files with 12 additions and 6 deletions

View File

@ -660,6 +660,8 @@ Release 2.6.0 - UNRELEASED
HDFS-7169. Add SE_BAD_FIELD to findbugsExcludeFile.xml. (szetszwo)
HDFS-7217. Better batching of IBRs. (kihwal)
OPTIMIZATIONS
HDFS-6690. Deduplicate xattr names in memory. (wang)

View File

@ -236,7 +236,7 @@ void notifyNamenodeReceivedBlock(
delHint);
for (BPServiceActor actor : bpServices) {
actor.notifyNamenodeBlockImmediately(bInfo, storageUuid);
actor.notifyNamenodeBlock(bInfo, storageUuid, true);
}
}
@ -264,7 +264,7 @@ void notifyNamenodeReceivingBlock(ExtendedBlock block, String storageUuid) {
block.getLocalBlock(), BlockStatus.RECEIVING_BLOCK, null);
for (BPServiceActor actor : bpServices) {
actor.notifyNamenodeBlockImmediately(bInfo, storageUuid);
actor.notifyNamenodeBlock(bInfo, storageUuid, false);
}
}

View File

@ -368,13 +368,17 @@ void addPendingReplicationBlockInfo(ReceivedDeletedBlockInfo bInfo,
* till namenode is informed before responding with success to the
* client? For now we don't.
*/
void notifyNamenodeBlockImmediately(
ReceivedDeletedBlockInfo bInfo, String storageUuid) {
void notifyNamenodeBlock(ReceivedDeletedBlockInfo bInfo,
String storageUuid, boolean now) {
synchronized (pendingIncrementalBRperStorage) {
addPendingReplicationBlockInfo(
bInfo, dn.getFSDataset().getStorage(storageUuid));
sendImmediateIBR = true;
pendingIncrementalBRperStorage.notifyAll();
// If now is true, the report is sent right away.
// Otherwise, it will be sent out in the next heartbeat.
if (now) {
pendingIncrementalBRperStorage.notifyAll();
}
}
}

View File

@ -84,7 +84,7 @@ private static Block getDummyBlock() {
private void injectBlockReceived() {
ReceivedDeletedBlockInfo rdbi = new ReceivedDeletedBlockInfo(
getDummyBlock(), BlockStatus.RECEIVED_BLOCK, null);
actor.notifyNamenodeBlockImmediately(rdbi, storageUuid);
actor.notifyNamenodeBlock(rdbi, storageUuid, true);
}
/**