make autoconfiguration happen only if key_cache_size_in_mb value was left blank in conf/cassandra.yaml (CASSANDRA-4087)

This commit is contained in:
Pavel Yaskevich 2012-03-27 23:02:43 +03:00
parent 731af1a432
commit 25828cacef
3 changed files with 6 additions and 6 deletions

View File

@ -77,8 +77,8 @@ commitlog_directory: /var/lib/cassandra/commitlog
#
# NOTE: if you reduce the size, you may not get you hottest keys loaded on startup.
#
# Default value is "auto" (min(5% of Heap (in MB), 100MB)). Set to 0 to disable key cache.
key_cache_size_in_mb: auto
# Default value is empty to make it "auto" (min(5% of Heap (in MB), 100MB)). Set to 0 to disable key cache.
key_cache_size_in_mb:
# Duration in seconds after which Cassandra should
# safe the keys cache. Caches are saved to saved_caches_directory as

View File

@ -126,7 +126,7 @@ public class Config
public boolean trickle_fsync = false;
public int trickle_fsync_interval_in_kb = 10240;
public String key_cache_size_in_mb = "auto";
public Integer key_cache_size_in_mb = null;
public int key_cache_save_period = 14400;
public int key_cache_keys_to_save = Integer.MAX_VALUE;

View File

@ -418,9 +418,9 @@ public class DatabaseDescriptor
try
{
// if key_cache_size_in_mb option was set to "auto" then size of the cache should be "min(5% of Heap (in MB), 100MB)
keyCacheSizeInMB = "auto".equalsIgnoreCase(conf.key_cache_size_in_mb)
keyCacheSizeInMB = (conf.key_cache_size_in_mb == null)
? Math.min((int) (Runtime.getRuntime().totalMemory() * 0.05 / 1024 / 1024), 100)
: Integer.valueOf(conf.key_cache_size_in_mb);
: conf.key_cache_size_in_mb;
if (keyCacheSizeInMB < 0)
throw new NumberFormatException(); // to escape duplicating error message
@ -428,7 +428,7 @@ public class DatabaseDescriptor
catch (NumberFormatException e)
{
throw new ConfigurationException("key_cache_size_in_mb option was set incorrectly to '"
+ conf.key_cache_size_in_mb + "', supported values are 'auto' and <integer> >= 0.");
+ conf.key_cache_size_in_mb + "', supported values are <integer> >= 0.");
}
rowCacheProvider = FBUtilities.newCacheProvider(conf.row_cache_provider);