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

stack commented on HBASE-11520:
-------------------------------

Here is what happens if you set a bucketcache size > allocated direct memory:

{code}
2014-07-16 14:03:02,081 INFO  [main] zookeeper.ZooKeeper: Initiating client 
connection, connectString=c2020.halxg.cloudera.com:2181 sessionTimeout=90000 
watcher=master:16020, quorum=c2020.halxg.cloudera.com:2181, baseZNode=/hbase
2014-07-16 14:03:02,309 ERROR [main] master.HMasterCommandLine: Master exiting
java.lang.RuntimeException: Failed construction of Master: class 
org.apache.hadoop.hbase.master.HMaster
        at 
org.apache.hadoop.hbase.master.HMaster.constructMaster(HMaster.java:1796)
        at 
org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.java:194)
        at 
org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:139)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
        at 
org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:126)
        at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:1810)
Caused by: java.lang.OutOfMemoryError: Direct buffer memory
        at java.nio.Bits.reserveMemory(Bits.java:658)
        at java.nio.DirectByteBuffer.<init>(DirectByteBuffer.java:123)
        at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:306)
        at 
org.apache.zookeeper.ClientCnxnSocket.<init>(ClientCnxnSocket.java:51)
        at 
org.apache.zookeeper.ClientCnxnSocketNIO.<init>(ClientCnxnSocketNIO.java:48)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
        at java.lang.Class.newInstance(Class.java:374)
        at 
org.apache.zookeeper.ZooKeeper.getClientCnxnSocket(ZooKeeper.java:1779)
        at org.apache.zookeeper.ZooKeeper.<init>(ZooKeeper.java:447)
        at org.apache.zookeeper.ZooKeeper.<init>(ZooKeeper.java:380)
        at 
org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.<init>(RecoverableZooKeeper.java:112)
        at org.apache.hadoop.hbase.zookeeper.ZKUtil.connect(ZKUtil.java:132)
        at 
org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.<init>(ZooKeeperWatcher.java:164)
        at 
org.apache.hadoop.hbase.regionserver.HRegionServer.<init>(HRegionServer.java:502)
        at org.apache.hadoop.hbase.master.HMaster.<init>(HMaster.java:267)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
        at 
org.apache.hadoop.hbase.master.HMaster.constructMaster(HMaster.java:1791)
        ... 5 more
{code}

> Simplify offheap cache config by removing the confusing 
> "hbase.bucketcache.percentage.in.combinedcache"
> -------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-11520
>                 URL: https://issues.apache.org/jira/browse/HBASE-11520
>             Project: HBase
>          Issue Type: Sub-task
>          Components: io
>    Affects Versions: 0.99.0
>            Reporter: stack
>            Assignee: stack
>             Fix For: 0.99.0, 2.0.0
>
>         Attachments: 11520.txt, 11520v2.txt, 11520v3.txt, 11520v3.txt
>
>
> Remove "hbase.bucketcache.percentage.in.combinedcache".  It is unnecessary 
> complication of block cache config.  Let L1 config setup be as it is whether 
> a L2 present or not, just set hfile.block.cache.size (not 
> hbase.bucketcache.size * (1.0 - 
> hbase.bucketcache.percentage.in.combinedcache)).  For L2, let 
> hbase.bucketcache.size be the actual size of the bucket cache, not 
> hbase.bucketcache.size * hbase.bucketcache.percentage.in.combinedcache.
> Attached patch removes the config. and updates docs.  Adds tests to confirm 
> configs are as expected whether a CombinedBlockCache deploy or a strict L1+L2 
> deploy.



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

Reply via email to