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