diff --git a/conf/storage-conf.xml b/conf/storage-conf.xml
index 5b9d429a89..3ae592bf6c 100644
--- a/conf/storage-conf.xml
+++ b/conf/storage-conf.xml
@@ -196,7 +196,10 @@
+ if you have few (many) columns per key.
+ Bigger is only better _if_ your memtables get large enough to use the space.
+ (Check in your data directory after your app has been running long enough.)
+ -->
32
8
diff --git a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
index 68aa4a14f4..213374a6fa 100644
--- a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
+++ b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
@@ -68,8 +68,8 @@ public class DatabaseDescriptor
private static int concurrentReaders_ = 8;
private static int concurrentWriters_ = 32;
- private static int flushDataBufferSizeInMB_ = 32;
- private static int flushIndexBufferSizeInMB_ = 32;
+ private static double flushDataBufferSizeInMB_ = 32;
+ private static double flushIndexBufferSizeInMB_ = 8;
private static List tables_ = new ArrayList();
private static Set applicationColumnFamilies_ = new HashSet();
@@ -230,12 +230,12 @@ public class DatabaseDescriptor
String rawFlushData = xmlUtils.getNodeValue("/Storage/FlushDataBufferSizeInMB");
if (rawFlushData != null)
{
- flushDataBufferSizeInMB_ = Integer.parseInt(rawFlushData);
+ flushDataBufferSizeInMB_ = Double.parseDouble(rawFlushData);
}
String rawFlushIndex = xmlUtils.getNodeValue("/Storage/FlushIndexBufferSizeInMB");
if (rawFlushIndex != null)
{
- flushIndexBufferSizeInMB_ = Integer.parseInt(rawFlushIndex);
+ flushIndexBufferSizeInMB_ = Double.parseDouble(rawFlushIndex);
}
/* TCP port on which the storage system listens */
@@ -924,12 +924,12 @@ public class DatabaseDescriptor
return commitLogSync_;
}
- public static int getFlushDataBufferSizeInMB()
+ public static double getFlushDataBufferSizeInMB()
{
return flushDataBufferSizeInMB_;
}
- public static int getFlushIndexBufferSizeInMB()
+ public static double getFlushIndexBufferSizeInMB()
{
return flushIndexBufferSizeInMB_;
}
diff --git a/src/java/org/apache/cassandra/io/SSTableWriter.java b/src/java/org/apache/cassandra/io/SSTableWriter.java
index 9098c11718..14fe47b9ca 100644
--- a/src/java/org/apache/cassandra/io/SSTableWriter.java
+++ b/src/java/org/apache/cassandra/io/SSTableWriter.java
@@ -27,8 +27,8 @@ public class SSTableWriter extends SSTable
public SSTableWriter(String filename, int keyCount, IPartitioner partitioner) throws IOException
{
super(filename, partitioner);
- dataFile = new BufferedRandomAccessFile(path, "rw", DatabaseDescriptor.getFlushDataBufferSizeInMB() * 1024 * 1024);
- indexFile = new BufferedRandomAccessFile(indexFilename(), "rw", DatabaseDescriptor.getFlushIndexBufferSizeInMB() * 1024 * 1024);
+ dataFile = new BufferedRandomAccessFile(path, "rw", (int)(DatabaseDescriptor.getFlushDataBufferSizeInMB() * 1024 * 1024));
+ indexFile = new BufferedRandomAccessFile(indexFilename(), "rw", (int)(DatabaseDescriptor.getFlushIndexBufferSizeInMB() * 1024 * 1024));
bf = new BloomFilter(keyCount, 15);
}
diff --git a/test/conf/storage-conf.xml b/test/conf/storage-conf.xml
index 4b5e94d359..2478068bab 100644
--- a/test/conf/storage-conf.xml
+++ b/test/conf/storage-conf.xml
@@ -18,6 +18,8 @@
-->
Test Cluster
+ 1
+ 0.1
true
1000
org.apache.cassandra.dht.CollatingOrderPreservingPartitioner