Configuration uses unsynchronized lists and hash set. On the other hand if it is used in a read-only manner after initialization that would be ok.
I don't think sharing a scanner across threads would be ok because of the cache of RowResults as an unsynchronized linked list. Otherwise HTable looks ok to me. Am I being overly conservative? --- On Mon, 10/13/08, Jim Kellerman (POWERSET) <[EMAIL PROTECTED]> wrote: > From: Jim Kellerman (POWERSET) <[EMAIL PROTECTED]> > Subject: RE: Questions on client API > To: "[email protected]" <[email protected]> > Date: Monday, October 13, 2008, 10:48 AM > Andrew, > > What methods in HBaseConfiguration and HTable do you think > are not re-entrant? > > --- > Jim Kellerman, Powerset (Live Search, Microsoft > Corporation) > > > > -----Original Message----- > > From: Michael Dagaev [mailto:[EMAIL PROTECTED] > > Sent: Monday, October 13, 2008 10:24 AM > > To: [email protected]; [EMAIL PROTECTED] > > Subject: Re: Questions on client API > > > > Hi Andrew > > > > Hmmm ...I would not like to instantiate > HBaseConfiguration per > > thread. I would prefer to create it once per > application so many > > threads will use it concurrently. > > > > Thank you for pointing out this issue. I will check > the code. > > M. > > > > On Mon, Oct 13, 2008 at 6:54 PM, Andrew Purtell > <[EMAIL PROTECTED]> > > wrote: > > > Hello Michael, > > > > > > Your understanding regarding connection pooling > is correct. > > > > > > Looking at the code, I see that some methods of > > > HBaseConfiguration and HTable are not fully > reentrant, so I > > > would not share them across multiple threads, or > at least I > > > would explicitly synchronize access to them. > > > > > > - Andy > > > > > > > > >> From: Michael Dagaev > <[EMAIL PROTECTED]> > > >> Subject: Questions on client API > > >> To: [email protected] > > >> Date: Monday, October 13, 2008, 2:54 AM > > >> Hi All > > >> > > >> As I understand, the HTable class uses > > >> HConnectionManager class, which holds > connections to the > > >> master and region servers. The connections > are pooled as > > >> entries in a thread-safe static table (map). > Thus, a > > >> client application should not care about > connection > > >> pooling. Is it correct? > > >> > > >> May several threads share the same > instance of > > >> HbaseConfiguration ? HTable? > > >> > > >> Thank you for your cooperation, > > >> M. > > > > > > > > > > > > > > >
