hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mikhail Antonov (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-13252) Get rid of managed connections and connection caching
Date Fri, 27 Mar 2015 21:36:55 GMT

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

Mikhail Antonov commented on HBASE-13252:
-----------------------------------------

Thanks for review [~ndimiduk].

I'll update the patch to use try-with-resource everywhere.

On backward-compatibility note..

 - ClusterConnection and ConnectionAdapter are Private APIs
 - ConnectionFactory is {Public, Evolving} and I removed one package-level static method
 - ConnectionManager class, which I removed, was {Private}, and I moved some nested static
classes and methods from it to ConnectionImplementation (also Private). My motivation was
to reduce the number of ways to grab connections, and to prevent situations when there're
like 3 ways to do something, 2 out of which are deprecated.
 - HConnectionKey class (which I removed) didn't have any audience annotation at all, but
was only used as a key for connection cache
 - HConnectionTestingUtility class isn't marked with audience annotation (probably should
be Private?), and I removed one method.

One question where I'd appreciate comment - ServerResourceCheckerJUnitListener seems to be
not needed now, is that right? We don't trace leaking connection anymore, as we don't track
number of cached connections (as they are not cached at all).

So "technically" that looks backward compatible..In reality, that would break clients directly
using ClusterConnection or ConnectionManager. Clients abiding interface audience annotations
shouldn't be affected.. Would be good to run PE or YCSB to check possible performance degradation
(just I don't have proper rig handy right now).

So probably we can pull it into 1.1 with release note that internal connection lifecycle management
has changed. What do you think? Do you think it's something needed for 1.1?

> Get rid of managed connections and connection caching
> -----------------------------------------------------
>
>                 Key: HBASE-13252
>                 URL: https://issues.apache.org/jira/browse/HBASE-13252
>             Project: HBase
>          Issue Type: Sub-task
>          Components: API
>    Affects Versions: 2.0.0
>            Reporter: Mikhail Antonov
>            Assignee: Mikhail Antonov
>         Attachments: HBASE-13252-v0.patch, HBASE-13252-v1.patch, HBASE-13252-v1.patch,
HBASE-13252-v2.patch, HBASE-13252-v2.patch
>
>
> (Need to):
>  - Remove CONNECTION_INSTANCES from ConnectionManager
>  - Remove HConnectionKey
>  - Remove 'managed' property from ClusterConnection, HCI and places where it's used now
>  - AFAIS this property isn't visible to client (ClusterConnection is private interface),
so technically this would not even be backward-incompatible change, and no release note needed?
>  - In fact, ConnectionManager can be removed, too.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message