You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2009/08/08 02:59:15 UTC

svn commit: r802276 - in /incubator/cassandra/trunk: conf/storage-conf.xml src/java/org/apache/cassandra/config/DatabaseDescriptor.java src/java/org/apache/cassandra/io/SSTableWriter.java test/conf/storage-conf.xml

Author: jbellis
Date: Sat Aug  8 00:59:14 2009
New Revision: 802276

URL: http://svn.apache.org/viewvc?rev=802276&view=rev
Log:
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

Modified:
    incubator/cassandra/trunk/conf/storage-conf.xml
    incubator/cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableWriter.java
    incubator/cassandra/trunk/test/conf/storage-conf.xml

Modified: incubator/cassandra/trunk/conf/storage-conf.xml
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/conf/storage-conf.xml?rev=802276&r1=802275&r2=802276&view=diff
==============================================================================
--- incubator/cassandra/trunk/conf/storage-conf.xml (original)
+++ incubator/cassandra/trunk/conf/storage-conf.xml Sat Aug  8 00:59:14 2009
@@ -196,7 +196,10 @@
     <!-- Buffer size to use when flushing memtables to disk.
          (Only one memtable is ever flushed at a time.)
          Increase (decrease) the index buffer size relative to the data buffer
-         if you have few (many) columns per key. -->
+         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.)
+      -->
     <FlushDataBufferSizeInMB>32</FlushDataBufferSizeInMB>
     <FlushIndexBufferSizeInMB>8</FlushIndexBufferSizeInMB>
 

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java?rev=802276&r1=802275&r2=802276&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java Sat Aug  8 00:59:14 2009
@@ -68,8 +68,8 @@
     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<String> tables_ = new ArrayList<String>();
     private static Set<String> applicationColumnFamilies_ = new HashSet<String>();
 
@@ -230,12 +230,12 @@
             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 @@
         return commitLogSync_;
     }
 
-    public static int getFlushDataBufferSizeInMB()
+    public static double getFlushDataBufferSizeInMB()
     {
         return flushDataBufferSizeInMB_;
     }
 
-    public static int getFlushIndexBufferSizeInMB()
+    public static double getFlushIndexBufferSizeInMB()
     {
         return flushIndexBufferSizeInMB_;
     }

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableWriter.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableWriter.java?rev=802276&r1=802275&r2=802276&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableWriter.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableWriter.java Sat Aug  8 00:59:14 2009
@@ -27,8 +27,8 @@
     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);
     }
 

Modified: incubator/cassandra/trunk/test/conf/storage-conf.xml
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/test/conf/storage-conf.xml?rev=802276&r1=802275&r2=802276&view=diff
==============================================================================
--- incubator/cassandra/trunk/test/conf/storage-conf.xml (original)
+++ incubator/cassandra/trunk/test/conf/storage-conf.xml Sat Aug  8 00:59:14 2009
@@ -18,6 +18,8 @@
  -->
 <Storage>
    <ClusterName>Test Cluster</ClusterName>
+   <FlushDataBufferSizeInMB>1</FlushDataBufferSizeInMB>
+   <FlushIndexBufferSizeInMB>0.1</FlushIndexBufferSizeInMB>
    <CommitLogSync>true</CommitLogSync>
    <CommitLogSyncDelay>1000</CommitLogSyncDelay>
    <Partitioner>org.apache.cassandra.dht.CollatingOrderPreservingPartitioner</Partitioner>