make out-of-the-box config 1GB-friendly. patch by jbellis; reviewed by Eric Evans for CASSANDRA-118

git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@770811 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Jonathan Ellis 2009-05-01 20:14:35 +00:00
parent 0776714f71
commit e4e5629b13
5 changed files with 14 additions and 9 deletions

View File

@ -22,7 +22,7 @@ JVM_OPTS=" \
-Xdebug \
-Xrunjdwp:transport=dt_socket,server=y,address=8888,suspend=n \
-Xms128M \
-Xmx2G \
-Xmx1G \
-XX:SurvivorRatio=8 \
-XX:TargetSurvivorRatio=90 \
-XX:+AggressiveOpts \

View File

@ -79,13 +79,14 @@
is based solely on the amount of data stored, not actual heap memory
usage (there is some overhead in indexing the columns).
-->
<MemtableSizeInMB>64</MemtableSizeInMB>
<MemtableSizeInMB>32</MemtableSizeInMB>
<!--
The maximum number of columns in millions to store in memory
before flushing to disk. Use with MemtableSizeInMB to tune memory usage.
before flushing to disk. This is also a per-memtable setting.
Use with MemtableSizeInMB to tune memory usage.
-->
<MemtableObjectCountInMillions>1</MemtableObjectCountInMillions>
<MemtableObjectCountInMillions>0.1</MemtableObjectCountInMillions>
<!-- Time to wait before garbage-collection deletion markers.
Set this to a large enough value that you are confident

View File

@ -97,7 +97,7 @@ public class DatabaseDescriptor
/* Size of the memtable in memory before it is dumped */
private static int memtableSize_ = 128;
/* Number of objects in millions in the memtable before it is dumped */
private static int memtableObjectCount_ = 1;
private static double memtableObjectCount_ = 1;
/*
* This parameter enables or disables consistency checks.
* If set to false the read repairs are disable for very
@ -214,7 +214,11 @@ public class DatabaseDescriptor
/* Number of objects in millions in the memtable before it is dumped */
String memtableObjectCount = xmlUtils.getNodeValue("/Storage/MemtableObjectCountInMillions");
if ( memtableObjectCount != null )
memtableObjectCount_ = Integer.parseInt(memtableObjectCount);
memtableObjectCount_ = Double.parseDouble(memtableObjectCount);
if (memtableObjectCount_ <= 0)
{
throw new ConfigurationException("Memtable object count must be a positive double");
}
/* This parameter enables or disables consistency checks.
* If set to false the read repairs are disable for very
@ -516,7 +520,7 @@ public class DatabaseDescriptor
return memtableSize_;
}
public static int getMemtableObjectCount()
public static double getMemtableObjectCount()
{
return memtableObjectCount_;
}

View File

@ -73,7 +73,7 @@ public class Memtable implements Comparable<Memtable>
private MemtableThreadPoolExecutor executor_;
private int threshold_ = DatabaseDescriptor.getMemtableSize()*1024*1024;
private int thresholdCount_ = DatabaseDescriptor.getMemtableObjectCount()*1024*1024;
private int thresholdCount_ = (int)(DatabaseDescriptor.getMemtableObjectCount()*1024*1024);
private AtomicInteger currentSize_ = new AtomicInteger(0);
private AtomicInteger currentObjectCount_ = new AtomicInteger(0);

View File

@ -23,7 +23,7 @@ JVM_OPTS=" \
-Xdebug \
-Xrunjdwp:transport=dt_socket,server=y,address=8888,suspend=n \
-Xms128M \
-Xmx2G \
-Xmx1G \
-XX:SurvivorRatio=8 \
-XX:TargetSurvivorRatio=90 \
-XX:+AggressiveOpts \