You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Kurt Greaves (JIRA)" <ji...@apache.org> on 2017/06/15 23:05:00 UTC
[jira] [Updated] (CASSANDRA-13172)
compaction_large_partition_warning_threshold_mb not working properly when
set to high value
[ https://issues.apache.org/jira/browse/CASSANDRA-13172?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Kurt Greaves updated CASSANDRA-13172:
-------------------------------------
Assignee: Kurt Greaves
Reproduced In: 3.0.13, 2.2.9, 2.1.15 (was: 2.1.15)
Status: Patch Available (was: Open)
Should be fine to just make the calculation as a long and return it. {{DatabaseDescriptor.getCompactionLargePartitionWarningThreshold()}} only gets called in one place where it won't matter if given a long.
On that note this isn't the first time I've seen this issue, and it seems there are a few other config properties that will suffer from the same problem. Not that it's ever a good idea to set these settings that high, however I have found use for some in the past, and I suspect others would too. Regardless, in my opinion if we are going to let users tune these things we should make them work as expected.
> compaction_large_partition_warning_threshold_mb not working properly when set to high value
> -------------------------------------------------------------------------------------------
>
> Key: CASSANDRA-13172
> URL: https://issues.apache.org/jira/browse/CASSANDRA-13172
> Project: Cassandra
> Issue Type: Bug
> Components: Configuration
> Reporter: Vladimir Vavro
> Assignee: Kurt Greaves
> Priority: Minor
>
> compaction_large_partition_warning_threshold_mb has been set either by mistake or as an attempt to disable warnings completely to high value 512000
> However system started to produce warning no matter what the partition size is:
> Compacting large partition system/compactions_in_progress:e631fe20-e488-11e6-bcd7-bf6151c7fa28 (32 bytes)
> When looking into the code:
> public static int getCompactionLargePartitionWarningThreshold() { return conf.compaction_large_partition_warning_threshold_mb * 1024 * 1024; }
> which is called in
> private void maybeLogLargePartitionWarning(DecoratedKey key, long rowSize)
> {
> if (rowSize > DatabaseDescriptor.getCompactionLargePartitionWarningThreshold())
> {
> String keyString = metadata().partitionKeyType.getString(key.getKey());
> logger.warn("Writing large partition {}/{}:{} ({}) to sstable {}", metadata.keyspace, metadata.name, keyString, FBUtilities.prettyPrintMemory(rowSize), getFilename());
> }
> }
> it looks like 512000 is multiplied by 1M and returned as int so being out of range... Maybe it would be better to use long as it is used for rowSize
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org