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

Xiao Liu commented on HBASE-28601:
----------------------------------

h2. Case1

default setting \{{hbase.regionserver.global.memstore.size}} will take effect

{code:language=bash|borderStyle=solid|theme=RDark|linenumbers=true|collapse=false}
export HBASE_HEAPSIZE=1G
Memstore On-Heap Limit: 409.6 MB (1G * 0.4)
{code}

h2. Case2

Setting \{{hbase.regionserver.global.memstore.memory.size}} directly in a 
human-readable format will take effect.

{code:language=bash|borderStyle=solid|theme=RDark|linenumbers=true|collapse=false}
export HBASE_HEAPSIZE=1G
hbase.regionserver.global.memstore.memory.size=100m
Memstore On-Heap Limit: 100MB
{code}

h2. Case3

When both parameters are set, 
\{{hbase.regionserver.global.memstore.memory.size}} will take effect

{code:language=bash|borderStyle=solid|theme=RDark|linenumbers=true|collapse=false}
export HBASE_HEAPSIZE=1G
hbase.regionserver.global.memstore.memory.size=209715200
hbase.regionserver.global.memstore.size=0.4
Memstore On-Heap Limit: 200MB
{code}

h2. Case4

If the limit is exceeded, an exception will be issued

{code:language=bash|borderStyle=solid|theme=RDark|linenumbers=true|collapse=false}
export HBASE_HEAPSIZE=1G
hbase.regionserver.global.memstore.memory.size=524288000
hbase.regionserver.global.memstore.size=0.4
{code}

{code:language=|borderStyle=solid|theme=RDark|linenumbers=true|collapse=false}
Caused by: java.lang.RuntimeException: RegionServer heap memory allocation is 
invalid: total memory usage exceeds 100% (memStore + blockCache + 
requiredFreeHeap). Check the following configuration values:
- hbase.regionserver.global.memstore.memory.size = 524288000
- hbase.regionserver.global.memstore.size = 0.4
- hfile.block.cache.memory.size = null
- hfile.block.cache.size = 0.4
- hbase.regionserver.free.heap.min.memory.size = null
at 
org.apache.hadoop.hbase.io.util.MemorySizeUtil.validateRegionServerHeapMemoryAllocation(MemorySizeUtil.java:107)
at 
org.apache.hadoop.hbase.regionserver.HRegionServer.<init>(HRegionServer.java:513)
at 
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
 Method)
at 
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
at 
java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at 
java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
at 
org.apache.hadoop.hbase.util.JVMClusterUtil.createRegionServerThread(JVMClusterUtil.java:85)
... 8 more
{code}

 

> Enable setting memstore on-heap sizes in bytes
> ----------------------------------------------
>
>                 Key: HBASE-28601
>                 URL: https://issues.apache.org/jira/browse/HBASE-28601
>             Project: HBase
>          Issue Type: Improvement
>          Components: regionserver
>            Reporter: Nick Dimiduk
>            Assignee: Xiao Liu
>            Priority: Major
>              Labels: pull-request-available
>
> Specifying blockcache and memstore sizes as a percentage of heap is not 
> always ideal. Sometimes it's easier to specify exact values rather than 
> backing into a percentage. Let's introduce new configuration settings 
> (perhaps named similarly to {{hbase.bucketcache.size}}) that accept byte 
> values. Even nicer would be if these settings accepted human-friendly byte 
> values like {{512m}} or {{10g}}. 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to