Description
When dfs.namenode.edits.asynclogging=true, FSEditLogAsync starts to work, which is very helpful for improving the speed of NameNode processing Call.
But there is a strange phenomenon here. When a lot of calls enter the NameNode through RPC within a period of time, the handler will be forced to wait, in seconds:
FSEditLogAsync#enqueueEdit():
if (Thread.holdsLock(this)) {
int permits = overflowMutex.drainPermits();
try {
do
while (!editPendingQ.offer(edit));
} finally
}
We should reduce this.wait(1000) here so that edit can be processed quickly.