Hi Andy We are using the stubleupon async client. Very fast and good. On 26 Aug 2011, at 04:58, Zhong, Andy wrote:
> Hey Michael, > I am also looking to the performance gain to use HTablePool instead of > created HTable using a singleton instance of HBaseConfiguration. If the > use case is for a web service to handle multi-threaded write/reading > from a single Hbase table, are you suggest to use HTablePool to > pre-created a pool of Htable instances? > > But below two comments concern me: > 1. Concern of restarting Hadoop/HBase cluster: > http://comments.gmane.org/gmane.comp.java.hadoop.hbase.user/13128 > "The problem with the HTablePool is that it does not "ride over restart" > meaning that if you need to restart your cluster, HtablePool will still > be pointing at the old ports and not realize the cluster is back-up." > 2. Seems no performance gain, and even worse: > http://www.srikanthps.com/2011/06/hbase-benchmarking-for-multi-threaded. > html if no of concurrent put <10000. > 3. Does anyone uses glisthub: claim a fully asynchronous, non-blocking, > thread-safe, high-performance HBase client (not sure if anyone uses it): > http://github.com/stumbleupon/asynchbase > > What do you think of it, and welcome any one's advices or comments on > this. > > Thanks, > Andy Zhong > > > -----Original Message----- > From: Michael Segel [mailto:[email protected]] > Sent: Tuesday, August 23, 2011 10:57 PM > To: [email protected] > Subject: RE: question on HTablePool and threads > > > Sujee, > > You are correct in creating a separate HTable instance in each thread. > (HTable isn't thread safe, but since the scope is within the thread it > works.) > > You could use the HTablePool class, but I don't think its a better > solution for what you are doing. > > In your example it sounds like you're creating the connection in each > thread and you're using it for the life of the thread/application. So > there's no real benefit in trying to create a pool of threads and then > request a thread from the pool. > > JMHO > > -Mike > > >> From: [email protected] >> Date: Tue, 23 Aug 2011 16:34:32 -0700 >> Subject: question on HTablePool and threads >> To: [email protected] >> >> Hi all, >> >> Right now I have a java client program that accesses Hbase in >> multiple threads for read / write. Each thread creates its own >> instance of HTable of the _same_ table. >> >> I am looking into HTablePool class. Not clear on if it is a >> correct/better choice for accessing the _same_ table with multiple > threads. >> >> Is this a valid / thread-safe ? >> >> create HtablePool in 'main' >> pass HTablePool instance to threads >> each thread does a 'htablepool.get(table)' >> read / write to table >> 'htablepool.put (table) ' when done (all this is done within a >> single JVM) >> >> thanks >> Sujee Maniyam >> http://sujee.net > > > This message, including any attachments, is the property of Sears Holdings > Corporation and/or one of its subsidiaries. It is confidential and may > contain proprietary or legally privileged information. If you are not the > intended recipient, please delete it without reading the contents. Thank you.
