Hi, When batch get some data from cluster, the client will block some threads base on region server amount In code client use Future.get block a thread for each related region servers and wait them finish one by one. In our case we have 12 region servers, so most of time the client will cost 12 threads for a batch get, if we have many concurrent request it will OOM by can not create native threads. I suggest we use some kind async or call back to process region server's response.