You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by Jean-Daniel Cryans <jd...@apache.org> on 2011/04/26 19:26:49 UTC

Re: A question about HBASE-3773

Looks like I missed it, will commit the fix. Thanks for figuring this one out.

Also in the future please address your development-related questions
to the dev@ mailing list and not the user@ mailing list.

J-D

On Tue, Apr 26, 2011 at 2:29 AM, Gaojinchao <ga...@huawei.com> wrote:
> It has modified the parameter hbase.zookeeper.property.maxClientCnxns
> It seems like that MAX_CACHED_HBASE_INSTANCES also needs modify.
> Why does it get from configure parameter ?
>
>
> @SuppressWarnings("serial")
> public class HConnectionManager {
>  static final int MAX_CACHED_HBASE_INSTANCES = 31;
>
>  // A LRU Map of Configuration hashcode -> TableServers. We set instances to 31.
>  // The zk default max connections to the ensemble from the one client is 30 so
>  // should run into zk issues before hit this value of 31.
>  private static final Map<Configuration, HConnectionImplementation> HBASE_INSTANCES =
>    new LinkedHashMap<Configuration, HConnectionImplementation>
>      ((int) (MAX_CACHED_HBASE_INSTANCES/0.75F)+1, 0.75F, true) {
>      @Override
>      protected boolean removeEldestEntry(Map.Entry<Configuration, HConnectionImplementation> eldest) {
>        return size() > MAX_CACHED_HBASE_INSTANCES;
>      }
>  };
>
> // Does it have any connection leak?
>
>
>  public static HConnection getConnection(Configuration conf)
>  throws ZooKeeperConnectionException {
>    HConnectionImplementation connection;
>    synchronized (HBASE_INSTANCES) {
>      connection = HBASE_INSTANCES.get(conf);
>      if (connection == null) {
>        connection = new HConnectionImplementation(conf);
>        HBASE_INSTANCES.put(conf, connection);
>      }
>    }
>    return connection;
>  }
>