Hi Ryan, Thanks HTablePool fits the bill. Will start using it.
I kinda discovered the re-use of Configuration object after zookeeper "too many connections" errors. Although I could not find it documented anywhere. Had to dig into HTable code to figure it out. Thanks and regards, - Ashish On Mon, 4 Apr 2011 00:50:34 -0700 Ryan Rawson <[email protected]> wrote: > Hey, > > HTable instances are not really thread safe at this time. You can > cache them, check out HTablePool. But the creation cost of a HTable > instance isnt that high, the actual TCP socket creation and management > is done at a lower level and all HTable interfaces share these common > caches and sockets. So you can create a number of HTable instances > without creating a large number of sockets. > > Oh and be sure to re-use the same Configuration object, or else you'll > end up with multiple sockets. This is because we use the Config > object to know when two HTables are accessing the same cluster. > > -ryan > > On Mon, Apr 4, 2011 at 12:45 AM, Ashish Shinde <[email protected]> > wrote: > > Hi, > > > > We are using hbase to power a web application. The current > > implementation of the data access classes maintain a static HTable > > instance to read and write. The reason being getting hold of HTable > > instance looks costly. > > > > In this scenario the HTable instances could more or less be > > perpetually cached. Is it reasonable to assume that HTables do not > > have some inherent timeout and are threadsafe across gets and puts? > > > > Thanks and regards, > > - Ashish > > > > > >
