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

Andrew Purtell commented on HBASE-12897:
----------------------------------------

I am pretty sure instead of this:

{code}
diff --git 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java
 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java
index ce60aba..66004cc 100644
--- 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java
+++ 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java
@@ -141,9 +141,9 @@ class MemStoreFlusher implements FlushRequester {
   static long getMemStoreLimit(final long max, final float limit,
       final float defaultLimit) {
     float effectiveLimit = limit;
-    if (limit >= 0.9f || limit < 0.1f) {
+    if (limit >= 0.9f || limit <= 0f) {
       LOG.warn("Setting global memstore limit to default of " + defaultLimit +
-        " because supplied value outside allowed range of 0.1 -> 0.9");
+          " because supplied value outside allowed range of (0 -> 0.8]");
       effectiveLimit = defaultLimit;
     }
     return (long)(max * effectiveLimit);
{code}

you want the limit test to become {{limit >= 0.8f || limit <= 0f}}, as:

{code}
diff --git 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java
 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java
index ce60aba..66004cc 100644
--- 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java
+++ 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java
@@ -141,9 +141,9 @@ class MemStoreFlusher implements FlushRequester {
   static long getMemStoreLimit(final long max, final float limit,
       final float defaultLimit) {
     float effectiveLimit = limit;
-    if (limit >= 0.9f || limit < 0.1f) {
+    if (limit >= 0.8f || limit <= 0f) {
       LOG.warn("Setting global memstore limit to default of " + defaultLimit +
-        " because supplied value outside allowed range of 0.1 -> 0.9");
+          " because supplied value outside allowed range of (0 -> 0.8]");
       effectiveLimit = defaultLimit;
     }
     return (long)(max * effectiveLimit);
{code}

I will make this change upon commit in a few hours. Speak up if I have it 
wrong, please.

> Minimum memstore size is a percentage
> -------------------------------------
>
>                 Key: HBASE-12897
>                 URL: https://issues.apache.org/jira/browse/HBASE-12897
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 2.0.0, 0.98.10, 1.1.0
>            Reporter: churro morales
>            Assignee: churro morales
>             Fix For: 1.0.0, 2.0.0, 1.1.0
>
>         Attachments: HBASE-12897.0.98.patch, HBASE-12897.patch
>
>
> We have a cluster which is optimized for random reads.  Thus we have a large 
> block cache and a small memstore.  Currently our heap is 20GB and we wanted 
> to configure the memstore to take 4% or 800MB.  Right now the minimum 
> memstore size is 5%.  What do you guys think about reducing the minimum size 
> to 1%?  Suppose we log a warning if the memstore is below 5% but allow it?
> What do you folks think? 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to