hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Purtell (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-12897) Minimum memstore size is a percentage
Date Wed, 11 Feb 2015 21:55:14 GMT

    [ 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)

Mime
View raw message