[
https://issues.apache.org/jira/browse/CASSANDRA-13172?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Kurt Greaves updated CASSANDRA-13172:
-------------------------------------
Description:
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:
{code}
public static int getCompactionLargePartitionWarningThreshold() { return
conf.compaction_large_partition_warning_threshold_mb * 1024 * 1024; }
{code}
which is called in
{code}
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());
}
}
{code}
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
was:
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
> 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
> Attachments: 13172.patch
>
>
> 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:
> {code}
> public static int getCompactionLargePartitionWarningThreshold() { return
> conf.compaction_large_partition_warning_threshold_mb * 1024 * 1024; }
> {code}
> which is called in
> {code}
> 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());
> }
> }
> {code}
> 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: [email protected]
For additional commands, e-mail: [email protected]