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 2010/01/18 16:51:26 UTC
svn commit: r900435 - in /incubator/cassandra/trunk: conf/storage-conf.xml
src/java/org/apache/cassandra/config/DatabaseDescriptor.java
src/java/org/apache/cassandra/db/ColumnFamilyStore.java
test/conf/storage-conf.xml
Author: jbellis
Date: Mon Jan 18 15:51:26 2010
New Revision: 900435
URL: http://svn.apache.org/viewvc?rev=900435&view=rev
Log:
change RowsCachedFraction option to RowsCached, specified either as an absolute number or as a percentage of rows in the CF
patch by jbellis; reviewed by goffinet for CASSANDRA-688
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/db/ColumnFamilyStore.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=900435&r1=900434&r2=900435&view=diff
==============================================================================
--- incubator/cassandra/trunk/conf/storage-conf.xml (original)
+++ incubator/cassandra/trunk/conf/storage-conf.xml Mon Jan 18 15:51:26 2010
@@ -91,15 +91,16 @@
~ index. Consider increasing this if you have fewer, wider rows.
~ Set to 0 to disable entirely.
~
- ~ The optional RowsCachedFraction attribute specifies
- ~ The fraction of rows per sstable whose entire contents we cache in
- ~ memory. Do not use this on ColumnFamilies with large rows, or
+ ~ The optional RowsCached attribute specifies the number of rows
+ ~ whose entire contents we cache in memory, either as a fixed number
+ ~ of rows or as a percent of rows in the ColumnFamily.
+ ~ Do not use this on ColumnFamilies with large rows, or
~ ColumnFamilies with high write:read ratios. As with key caching,
~ valid values are from 0 to 1. The default 0 disables it entirely.
-->
<ColumnFamily CompareWith="BytesType"
Name="Standard1"
- RowsCachedFraction="0.1"
+ RowsCached="10%"
KeysCachedFraction="0"/>
<ColumnFamily CompareWith="UTF8Type" Name="Standard2"/>
<ColumnFamily CompareWith="TimeUUIDType" Name="StandardByUUID1"/>
@@ -107,6 +108,8 @@
CompareWith="UTF8Type"
CompareSubcolumnsWith="UTF8Type"
Name="Super1"
+ RowsCached="1000"
+ KeysCachedFraction="0"
Comment="A column family with supercolumns, whose column and subcolumn names are UTF8 strings"/>
</Keyspace>
</Keyspaces>
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=900435&r1=900434&r2=900435&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 Mon Jan 18 15:51:26 2010
@@ -87,7 +87,7 @@
private static int bmtThreshold_ = 256;
private static Map<Pair<String, String>, Double> tableKeysCachedFractions_ = new HashMap<Pair<String, String>, Double>();
- private static Map<Pair<String, String>, Double> tableRowsCachedFractions_ = new HashMap<Pair<String, String>, Double>();
+ private static Map<Pair<String, String>, Double> tableRowCacheSizes = new HashMap<Pair<String, String>, Double>();
/*
* A map from table names to the set of column families for the table and the
@@ -523,9 +523,16 @@
tableKeysCachedFractions_.put(Pair.create(tName, cfName), Double.valueOf(value));
}
- if ((value = XMLUtils.getAttributeValue(columnFamily, "RowsCachedFraction")) != null)
+ if ((value = XMLUtils.getAttributeValue(columnFamily, "RowsCached")) != null)
{
- tableRowsCachedFractions_.put(Pair.create(tName, cfName), Double.valueOf(value));
+ if (value.endsWith("%"))
+ {
+ tableRowCacheSizes.put(Pair.create(tName, cfName), Double.valueOf(value.substring(0, value.length() - 1)) / 100);
+ }
+ else
+ {
+ tableRowCacheSizes.put(Pair.create(tName, cfName), Double.valueOf(value));
+ }
}
// Parse out user-specified logical names for the various dimensions
@@ -964,7 +971,7 @@
public static double getRowsCachedFraction(String tableName, String columnFamilyName)
{
- Double v = tableRowsCachedFractions_.get(Pair.create(tableName, columnFamilyName));
+ Double v = tableRowCacheSizes.get(Pair.create(tableName, columnFamilyName));
return v == null ? 0 : v;
}
Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java?rev=900435&r1=900434&r2=900435&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java Mon Jan 18 15:51:26 2010
@@ -191,7 +191,11 @@
double v = DatabaseDescriptor.getRowsCachedFraction(table, columnFamilyName);
if (v > 0)
{
- int cacheSize = Math.max(1, (int)(v * SSTableReader.estimatedKeys(columnFamilyName)));
+ int cacheSize;
+ if (v < 1)
+ cacheSize = Math.max(1, (int)(v * SSTableReader.estimatedKeys(columnFamilyName)));
+ else
+ cacheSize = (int)v;
if (logger_.isDebugEnabled())
logger_.debug("enabling row cache for " + columnFamilyName + " with size " + cacheSize);
rowCache = new JMXInstrumentedCache<String, ColumnFamily>(table, columnFamilyName + "RowCache", cacheSize);
Modified: incubator/cassandra/trunk/test/conf/storage-conf.xml
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/test/conf/storage-conf.xml?rev=900435&r1=900434&r2=900435&view=diff
==============================================================================
--- incubator/cassandra/trunk/test/conf/storage-conf.xml (original)
+++ incubator/cassandra/trunk/test/conf/storage-conf.xml Mon Jan 18 15:51:26 2010
@@ -44,11 +44,11 @@
<MemtableOperationsInMillions>0.00002</MemtableOperationsInMillions> <!-- 20 -->
<Keyspaces>
<Keyspace Name = "Keyspace1">
- <ColumnFamily Name="Standard1" RowsCachedFraction="0.1" KeysCachedFraction="0"/>
+ <ColumnFamily Name="Standard1" RowsCached="10%" KeysCachedFraction="0"/>
<ColumnFamily Name="Standard2"/>
<ColumnFamily CompareWith="LongType" Name="StandardLong1"/>
<ColumnFamily CompareWith="LongType" Name="StandardLong2"/>
- <ColumnFamily ColumnType="Super" CompareSubcolumnsWith="LongType" Name="Super1" RowsCachedFraction="0.1" KeysCachedFraction="0"/>
+ <ColumnFamily ColumnType="Super" CompareSubcolumnsWith="LongType" Name="Super1" RowsCached="1000" KeysCachedFraction="0"/>
<ColumnFamily ColumnType="Super" CompareSubcolumnsWith="LongType" Name="Super2"/>
<ColumnFamily ColumnType="Super" CompareSubcolumnsWith="LongType" Name="Super3"/>
<ColumnFamily ColumnType="Super" CompareSubcolumnsWith="UTF8Type" Name="Super4"/>