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