Description
NameNode meta save hold global write lock currently, so following RPC r/w request or inner-thread of NameNode could be paused if they try to acquire global read/write lock and have to wait before metasave release it.
I propose to change write lock to read lock and let some read request could be process normally. I think it could not change informations which meta save try to get if we try to open read request.
Actually, we need ensure that there are only one thread to execute metaSave, otherwise, output streams could meet exception especially both streams hold the same file handle or some other same output stream.