[
https://issues.apache.org/jira/browse/HBASE-6341?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13408366#comment-13408366
]
Micah Whitacre commented on HBASE-6341:
---------------------------------------
As I indicated above the common use case we have is to maintain a cache of
Configuration -> HTablePool instances. In the our processing infrastructure
(Storm) Hadoop Configuration objects are serialized and passed into the
processing workers. Instead of creating new HTable instances we'd like to
reuse HTablePool instances to retrieve existing HTableInterface instances.
Since the Configuration objects are new instances we can't use a
Map<Configuration, HTablePool> to reuse HTablePool instances and HConnectionKey
would fill that gap nicely. Additionally if we don't cache HTablePool
instances we'd lose the benefit of reusing connections because we'd end up with
multiple HTablePool instances containing one pooled table.
We have other similar higher order constructs which take a Configuration and it
would be nice to reuse instances which interact with the same underlying
HBaseTableInterface/Pool instance.
I've seen this elsewhere in discussions but essentially we need an efficient
way to identify a Configuration object represents the same underlying HBase
cluster. I don't have a link handy but I remember seeing conversations which
talked about adding a "uniquifier" to Configuration and I perceived the
HConnectionKey to be the resolution to that. If there is a better solution for
solving that I'd be willing to adopt that.
> Publicly expose HConnectionKey
> ------------------------------
>
> Key: HBASE-6341
> URL: https://issues.apache.org/jira/browse/HBASE-6341
> Project: HBase
> Issue Type: Improvement
> Components: client
> Affects Versions: 0.92.0
> Reporter: Micah Whitacre
> Priority: Trivial
> Attachments: hbase_6341.patch
>
>
> HBASE-3777 introduced the concept of a HConnectionKey to quickly identify and
> compare Configuration instances which lack equals/hashCode values.
> We currently have use cases where being able to key Configuration objects in
> a similar way would be helpful. An example of this would be maintain a cache
> of HTablePool instances based on the HConnectionKey instead of the
> Configuration instance.
> I propose that HConnectionKey be made publicly available instead of its
> current package scope. Or another possibility would be to move it from being
> a static inner class to being part of the API.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira