Our current rpc scheduler default is FIFO. Good for speed but as soon as the server gets overloaded, our behavior goes south. We can do better, or a plan is better than none. Our FB brothers and sisters added an rpc scheduler that is smarter around overloading over in
HBASE-15136. The implementation is the codification of FIFO when all is dandy flipping to LIFO with CoDel and load shedding when under duress. The algorithm is used elsewhere at FB w/ a nice writeup on why it 'works' and why. Makes sense to me. Has nice feature that tuning knobs are few and we should be able to nail defaults easy enough that will work for majority of cases. Lets adopt it as our default going forward.
This is an umbrella issue for enabling it in 2.0.0. We need to do a few things as subissues. The mighty Mikhail Antonov and crew want to get some production experience first w/ their particular implementation – makes sense – and we need to add the speedup from
HBASE-16023 (currently the codel scheduler is much slower than our default). Another consideration for here or as a follow on is the suggestion that when all is running smooth, let the Reader thread run the request rather than do handoff to handler (From Hiroshi Ikeda over on HBASE-14479)