cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kurt Greaves (JIRA)" <>
Subject [jira] [Updated] (CASSANDRA-13172) compaction_large_partition_warning_threshold_mb not working properly when set to high value
Date Thu, 15 Jun 2017 23:05:00 GMT


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
> -------------------------------------------------------------------------------------------
>                 Key: CASSANDRA-13172
>                 URL:
>             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,, 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

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message