I have a moderately large HBase table of about 1M rows distributed across 4 region servers. I also have a requirement to retrieve a 1000 rows from that table (one can assume keys are randomly distributed) at the same time. I would ideally like to have a facility to batch read of all 1000 rows at the same time, but I do not think HBase has such a facility. The only way I was able to find is to sequentially retrieve one row at a time using Get row API. Is there a way to improve on it?
One way I can think of is to create an HTable object pool and issue concurrent requests to HBase. This would probably help, but I do not expect for performance to increase X time, where X is the number of threads in my application. Is there a clever way to batch requests, so at least you can issue multiple row reads to the same region server at the same time? Any other tricks or suggestions will be appreciated. -- Thanks, Boris http://twitter.com/baleksan http://www.linkedin.com/in/baleksan