From 9d6f4752b6353c1374469fa78649b9bcda1e2e46 Mon Sep 17 00:00:00 2001 From: Jonathan Ellis Date: Sat, 8 Aug 2009 00:59:14 +0000 Subject: [PATCH] reduce buffer sizes for test suite since it forces lots of small flushes. reduces NameSortTest from ~30s back to < 10s. patch by jbellis for CASSANDRA-339 git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@802276 13f79535-47bb-0310-9956-ffa450edef68 --- conf/storage-conf.xml | 5 ++++- .../apache/cassandra/config/DatabaseDescriptor.java | 12 ++++++------ src/java/org/apache/cassandra/io/SSTableWriter.java | 4 ++-- test/conf/storage-conf.xml | 2 ++ 4 files changed, 14 insertions(+), 9 deletions(-) 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