When logging JIRA, please use formal writing instead of pasting contents of
email directly.

I will post a comment on the JIRA related to PooledHTable.close().

On Fri, Jul 1, 2011 at 9:06 AM, Daniel Iancu <[email protected]> wrote:

> HTablePoolEnhanced.close is inherited and should do same thing on the
> enhanced pool
>
> Jira opened with patch
> https://issues.apache.org/**jira/browse/HBASE-4054<https://issues.apache.org/jira/browse/HBASE-4054>
>
> Have a look and let me know if it needs changes
>
>
>
> On 07/01/2011 05:42 PM, Srikanth P. Shreenivas wrote:
>
>> This will be very helpful.  Also, wouldn't it be good idea to add close()
>> to HTablePoolEnhanced so that underlying HTables can be closed by client
>> apps as part of application shutdown.
>>
>> Regards,
>> Srikanth
>>
>> -----Original Message-----
>> From: Daniel Iancu [mailto:[email protected]]
>> Sent: Friday, July 01, 2011 7:55 PM
>> To: [email protected]
>> Subject: Usability improvement to HTablePool
>>
>> Hi
>> It look like the usage of HTablePool might be improved. Now, once you
>> get the connection from pool you must take good care to return it by
>> calling  HTablePool.putTable(table);
>> If you close the table  (say, you don't read carefully the Javadoc)
>> your htable will not be reused.
>> Other case might be if you build a Datasource like object to obtain
>> HTables and, in this case, from the client you don't have a reference to
>> the pool to return the table once done with it.
>>
>> I've fixed all this by subclassing the HTablePool and overriding the
>> getTable method
>>
>> public class HTablePoolEnhanced extends HTablePool
>>     @Override
>>      public HTableInterface getTable(String tableName) {
>>          return new PooledHTable(super.getTable(**tableName));
>>      }
>>
>>   where  PooledHTable is a inner class that wraps a HTable and
>> reimplements the close method to return the table to pool
>>
>>   public class PooledHTable implements HTableInterface {
>>
>>          private HTableInterface table;
>>
>>          public PooledHTable(HTableInterface table) {
>>              this.table = table;
>>          }
>>
>>         @Override
>>          public void close() throws IOException {
>>              putTable(table);
>>          }
>>   ...
>> }
>>
>> }
>>
>> Does it make sense to have this implementation in Hbase also ? It look
>> that all it needs is to have a new HTableInterfaceFactory implementation
>> to create some proxy tables like i did.
>>
>> Regards
>> Daniel
>>
>> ______________________________**__
>>
>> http://www.mindtree.com/email/**disclaimer.html<http://www.mindtree.com/email/disclaimer.html>
>>
>
> --
> Daniel Iancu
> Java Developer,Web Components Romania
> 1&1 Internet Development srl.
> 18 Mircea Eliade St
> Sect 1, Bucharest
> RO Bucharest, 012015
> www.1and1.ro
> Phone:+40-031-223-9081
>
>
>
>

Reply via email to