You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Nick Dimiduk (JIRA)" <ji...@apache.org> on 2014/03/04 19:11:24 UTC

[jira] [Comment Edited] (HBASE-9117) Remove HTablePool and all HConnection pooling related APIs

    [ https://issues.apache.org/jira/browse/HBASE-9117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13919716#comment-13919716 ] 

Nick Dimiduk edited comment on HBASE-9117 at 3/4/14 6:09 PM:
-------------------------------------------------------------

Here's what I have in mind in terms of breakdown of work.

{noformat}
 1. warn on connection cache hit (configurable, off by default. 0.98)
 2. deprecate all public HTable constructors (0.98)
 3. deprecate ConnectionManager#{delete,get}Connection (0.98)
 4. replace internal ConnectionManager#{delete,get}Connection use with #close, #createConnection (0.98, 0.99)
 5. replace internal HTable constructor use with HConnection#getTable (0.98, 0.99)
 6. delete all public HTable constructors (0.99)
 7. delete ConnectionManager#{delete,get}Connection (0.99)
{noformat}

There's some other tasks mixed in there as well that will be required to replace internal usage patterns. Thinks like MetaReader#getRegionCount accepting an HConnection instance instead of a Configuration. Will tease those out as I go.

Does this plan make sense? I don't want to create a bunch of JIRA noise without reasonable consensus. I'll push a pile of patches to a github branch so you can see what things are looking like.

Formatting edited for legibility.


was (Author: ndimiduk):
Here's what I have in mind in terms of breakdown of work.

 # warn on connection cache hit (configurable, off by default. 0.98)
 # deprecate all public HTable constructors (0.98)
 # deprecate ConnectionManager#{delete,get}Connection (0.98)
 # replace internal ConnectionManager#{delete,get}Connection use with #close, #createConnection (0.98, 0.99)
 # replace internal HTable constructor use with HConnection#getTable (0.98, 0.99)
 # delete all public HTable constructors (0.99)
 # delete ConnectionManager#{delete,get}Connection (0.99)

There's some other tasks mixed in there as well that will be required to replace internal usage patterns. Thinks like MetaReader#getRegionCount accepting an HConnection instance instead of a Configuration. Will tease those out as I go.

Does this plan make sense? I don't want to create a bunch of JIRA noise without reasonable consensus. I'll push a pile of patches to a github branch so you can see what things are looking like.

> Remove HTablePool and all HConnection pooling related APIs
> ----------------------------------------------------------
>
>                 Key: HBASE-9117
>                 URL: https://issues.apache.org/jira/browse/HBASE-9117
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Lars Hofhansl
>            Assignee: Nick Dimiduk
>            Priority: Critical
>             Fix For: 0.99.0
>
>         Attachments: HBASE-9117.00.patch, HBASE-9117.01.patch, HBASE-9117.02.patch, HBASE-9117.03.patch, HBASE-9117.04.patch, HBASE-9117.05.patch, HBASE-9117.06.patch
>
>
> The recommended way is now:
> # Create an HConnection: HConnectionManager.createConnection(...)
> # Create a light HTable: HConnection.getTable(...)
> # table.close()
> # connection.close()
> All other API and pooling will be removed.



--
This message was sent by Atlassian JIRA
(v6.2#6252)