You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hbase.apache.org by Gaojinchao <ga...@huawei.com> on 2011/04/26 11:29:52 UTC

A question about HBASE-3773

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;
  }

Re: A question about HBASE-3773

Posted by Jean-Daniel Cryans <jd...@apache.org>.
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;
>  }
>

Re: A question about HBASE-3773

Posted by Jean-Daniel Cryans <jd...@apache.org>.
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;
>  }
>