For an easy-to-read summary see: http://www.ebaytechblog.com/2014/08/21/quality-of-service-in-hadoop/
Several production Hadoop cluster incidents occurred where the Namenode was overloaded and failed to respond.
We can improve quality of service for users during namenode peak loads by replacing the FIFO call queue with a Fair Call Queue. (this plan supersedes rpc-congestion-control-draft-plan).
Excerpted from the communication of one incident, “The map task of a user was creating huge number of small files in the user directory. Due to the heavy load on NN, the JT also was unable to communicate with NN...The cluster became responsive only once the job was killed.”
Excerpted from the communication of another incident, “Namenode was overloaded by GetBlockLocation requests (Correction: should be getFileInfo requests. the job had a bug that called getFileInfo for a nonexistent file in an endless loop). All other requests to namenode were also affected by this and hence all jobs slowed down. Cluster almost came to a grinding halt…Eventually killed jobtracker to kill all jobs that are running.”
HDFS-945, “We've seen defective applications cause havoc on the NameNode, for e.g. by doing 100k+ 'listStatus' on very large directories (60k files) etc.”
|Allow RPCCallBenchmark to benchmark calls by different users||Open|
|Support configurable RPC fair share||Open||Unassigned|
|Support prioritization of DN RPCs over client RPCs||Open||Unassigned|
|Add Documentation for FairCallQueue||Open|
|Have FairCallQueue try all lower priority sub queues before backoff||Open||Unassigned|