Great, thanks for confirming Jonathan.
On Wed, 2011-09-28 at 16:01 +0000, Jonathan Gray wrote: > Yes, you can use the Result once you give back the HTable reference. Result > is self contained. > > > -----Original Message----- > > From: Joel Halbert [mailto:j...@su3analytics.com] > > Sent: Wednesday, September 28, 2011 6:27 AM > > To: user@hbase.apache.org > > Subject: Re: Correct use of HTablePool > > > > Sure, but is the usage below correct in a multi-threaded context? > > > > i.e. Can i return the table to the pool before using the Result (or > > Scanner) ? > > > > HTablePool pool = myPool; > > Get get = myGet; > > HTable table = pool.getTable(myTableName);; Result result = null; try { > > result = table.get(get); > > } finally { > > pool.putTable(table); > > } > > > > // use Result now table has been returned to pool. > > r.getValue(Bytes.toBytes("COL"), Bytes.toBytes("ID")) > > > > > > > > On Tue, 2011-09-27 at 10:17 -0700, Jean-Daniel Cryans wrote: > > > Like the doc says: > > > http://hbase.apache.org/book.html#client.connections > > > > > > "For applications which require high-end multithreaded access (e.g., > > > web-servers or application servers that may serve many application > > > threads in a single JVM), see HTablePool." > > > > > > J-D > > > > > > On Tue, Sep 27, 2011 at 8:52 AM, Joel Halbert <j...@su3analytics.com> > > wrote: > > > > But in a highly multi-threaded context? > > > > > > > > I guess my question is: is it thread-safe? > > > > > > > > On Tue, 2011-09-27 at 09:18 -0500, Michael Segel wrote: > > > >> Outside of a M/R context, sure, why not? > > > >> > > > >> > > > >> > Subject: Correct use of HTablePool > > > >> > From: j...@su3analytics.com > > > >> > To: user@hbase.apache.org > > > >> > Date: Tue, 27 Sep 2011 10:19:04 +0100 > > > >> > > > > >> > When using an HTablePool and calling get() or scan() can I return > > > >> > the Table to the pool as soon as I have the Result of Scanner object? > > > >> > > > > >> > i.e. is this valid? > > > >> > > > > >> > HTablePool pool = myPool; > > > >> > Get get = myGet; > > > >> > HTable table = pool.getTable(myTableName);; Result result = null; > > > >> > try { > > > >> > result = table.get(get); > > > >> > } finally { > > > >> > pool.putTable(table); > > > >> > } > > > >> > > > > >> > // use Result now table has been returned to pool. > > > >> > r.getValue(Bytes.toBytes("COL"), Bytes.toBytes("ID")) > > > >> > > > > >> > > > > >> > and likewise with a Scanner > > > >> > > > > >> > Rgs > > > >> > Joel > > > >> > > > > > > > > > > > > > > >