Merge branch 'cassandra-4.1' into trunk

This commit is contained in:
Ekaterina Dimitrova 2022-07-15 12:35:51 -04:00
commit 1c2cd30125
8 changed files with 18 additions and 17 deletions

View File

@ -16,6 +16,7 @@
* Add guardrail for ALTER TABLE ADD / DROP / REMOVE column operations (CASSANDRA-17495)
* Rename DisableFlag class to EnableFlag on guardrails (CASSANDRA-17544)
Merged from 4.1:
* min_tracked_partition_size_bytes parameter from 4.1 alpha1 was renamed to min_tracked_partition_size (CASSANDRA-17733)
* Remove commons-lang dependency during build runtime (CASSANDRA-17724)
* Relax synchronization on StreamSession#onError() to avoid deadlock (CASSANDRA-17706)
* Fix AbstractCell#toString throws MarshalException for cell in collection (CASSANDRA-17695)

View File

@ -192,6 +192,7 @@ New features
Upgrading
---------
- min_tracked_partition_size_bytes parameter from 4.1 alpha1 was renamed to min_tracked_partition_size.
- Parameters of type data storage, duration and data rate cannot be set to Long.MAX_VALUE (former parameters of long type)
and Integer.MAX_VALUE (former parameters of int type). Those numbers are used during conversion between units to prevent
an overflow from happening. (CASSANDRA-17571)

View File

@ -1040,7 +1040,7 @@ public class Config
public volatile int max_top_size_partition_count = 10;
public volatile int max_top_tombstone_partition_count = 10;
public volatile DataStorageSpec.LongBytesBound min_tracked_partition_size_bytes = new DataStorageSpec.LongBytesBound("1MiB");
public volatile DataStorageSpec.LongBytesBound min_tracked_partition_size = new DataStorageSpec.LongBytesBound("1MiB");
public volatile long min_tracked_partition_tombstone_count = 5000;
public volatile boolean top_partitions_enabled = true;

View File

@ -4213,14 +4213,14 @@ public class DatabaseDescriptor
conf.max_top_tombstone_partition_count = value;
}
public static DataStorageSpec.LongBytesBound getMinTrackedPartitionSize()
public static DataStorageSpec.LongBytesBound getMinTrackedPartitionSizeInBytes()
{
return conf.min_tracked_partition_size_bytes;
return conf.min_tracked_partition_size;
}
public static void setMinTrackedPartitionSize(DataStorageSpec.LongBytesBound spec)
public static void setMinTrackedPartitionSizeInBytes(DataStorageSpec.LongBytesBound spec)
{
conf.min_tracked_partition_size_bytes = spec;
conf.min_tracked_partition_size = spec;
}
public static long getMinTrackedPartitionTombstoneCount()

View File

@ -48,7 +48,6 @@ import org.apache.cassandra.dht.Token;
import org.apache.cassandra.io.sstable.SSTable;
import org.apache.cassandra.schema.TableMetadata;
import org.apache.cassandra.service.StorageService;
import org.apache.cassandra.utils.Clock;
import static org.apache.cassandra.utils.Clock.Global.currentTimeMillis;
@ -86,7 +85,7 @@ public class TopPartitionTracker implements Closeable
this.metadata = metadata;
topSizes.set(new TopHolder(SystemKeyspace.getTopPartitions(metadata, SIZES),
DatabaseDescriptor.getMaxTopSizePartitionCount(),
DatabaseDescriptor.getMinTrackedPartitionSize().toBytes()));
DatabaseDescriptor.getMinTrackedPartitionSizeInBytes().toBytes()));
topTombstones.set(new TopHolder(SystemKeyspace.getTopPartitions(metadata, TOMBSTONES),
DatabaseDescriptor.getMaxTopTombstonePartitionCount(),
DatabaseDescriptor.getMinTrackedPartitionTombstoneCount()));
@ -176,7 +175,7 @@ public class TopPartitionTracker implements Closeable
DatabaseDescriptor.getMinTrackedPartitionTombstoneCount(),
ranges);
this.sizes = new TopHolder(DatabaseDescriptor.getMaxTopSizePartitionCount(),
DatabaseDescriptor.getMinTrackedPartitionSize().toBytes(),
DatabaseDescriptor.getMinTrackedPartitionSizeInBytes().toBytes(),
ranges);
}

View File

@ -6729,13 +6729,13 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
@Override
public String getMinTrackedPartitionSize()
{
return DatabaseDescriptor.getMinTrackedPartitionSize().toString();
return DatabaseDescriptor.getMinTrackedPartitionSizeInBytes().toString();
}
@Override
public void setMinTrackedPartitionSize(String value)
{
DatabaseDescriptor.setMinTrackedPartitionSize(parseDataStorageSpec(value));
DatabaseDescriptor.setMinTrackedPartitionSizeInBytes(parseDataStorageSpec(value));
}
@Override

View File

@ -74,7 +74,7 @@ public class TopPartitionsTest extends TestBaseImpl
public static void setup() throws IOException
{
CLUSTER = init(Cluster.build(2).withConfig(config ->
config.set("min_tracked_partition_size_bytes", "0MiB")
config.set("min_tracked_partition_size", "0MiB")
.set("min_tracked_partition_tombstone_count", 0)
.with(GOSSIP, NETWORK))
.start());

View File

@ -54,7 +54,7 @@ public class TopPartitionTrackerTest extends CQLTester
{
createTable("create table %s (id bigint primary key, x int)");
DatabaseDescriptor.setMaxTopSizePartitionCount(5);
DatabaseDescriptor.setMinTrackedPartitionSize(new DataStorageSpec.LongBytesBound("12B"));
DatabaseDescriptor.setMinTrackedPartitionSizeInBytes(new DataStorageSpec.LongBytesBound("12B"));
Collection<Range<Token>> fullRange = Collections.singleton(r(0, 0));
TopPartitionTracker tpt = new TopPartitionTracker(getCurrentColumnFamilyStore().metadata());
@ -85,7 +85,7 @@ public class TopPartitionTrackerTest extends CQLTester
public void testCountLimit()
{
createTable("create table %s (id bigint primary key, x int)");
DatabaseDescriptor.setMinTrackedPartitionSize(new DataStorageSpec.LongBytesBound("0B"));
DatabaseDescriptor.setMinTrackedPartitionSizeInBytes(new DataStorageSpec.LongBytesBound("0B"));
DatabaseDescriptor.setMaxTopSizePartitionCount(5);
Collection<Range<Token>> fullRange = Collections.singleton(r(0, 0));
TopPartitionTracker tpt = new TopPartitionTracker(getCurrentColumnFamilyStore().metadata());
@ -111,7 +111,7 @@ public class TopPartitionTrackerTest extends CQLTester
public void testSubRangeMerge()
{
createTable("create table %s (id bigint primary key, x int)");
DatabaseDescriptor.setMinTrackedPartitionSize(new DataStorageSpec.LongBytesBound("0B"));
DatabaseDescriptor.setMinTrackedPartitionSizeInBytes(new DataStorageSpec.LongBytesBound("0B"));
DatabaseDescriptor.setMaxTopSizePartitionCount(10);
Collection<Range<Token>> fullRange = Collections.singleton(r(0, 0));
TopPartitionTracker tpt = new TopPartitionTracker(getCurrentColumnFamilyStore().metadata());
@ -140,7 +140,7 @@ public class TopPartitionTrackerTest extends CQLTester
public void testSaveLoad()
{
createTable("create table %s (id bigint primary key, x int)");
DatabaseDescriptor.setMinTrackedPartitionSize(new DataStorageSpec.LongBytesBound("0B"));
DatabaseDescriptor.setMinTrackedPartitionSizeInBytes(new DataStorageSpec.LongBytesBound("0B"));
DatabaseDescriptor.setMinTrackedPartitionTombstoneCount(0);
DatabaseDescriptor.setMaxTopSizePartitionCount(10);
DatabaseDescriptor.setMaxTopTombstonePartitionCount(10);
@ -205,7 +205,7 @@ public class TopPartitionTrackerTest extends CQLTester
public void randomTest()
{
createTable("create table %s (id bigint primary key, x int)");
DatabaseDescriptor.setMinTrackedPartitionSize(new DataStorageSpec.LongBytesBound("0B"));
DatabaseDescriptor.setMinTrackedPartitionSizeInBytes(new DataStorageSpec.LongBytesBound("0B"));
DatabaseDescriptor.setMaxTopSizePartitionCount(1000);
int keyCount = 10000;
long seed = System.currentTimeMillis();
@ -254,7 +254,7 @@ public class TopPartitionTrackerTest extends CQLTester
public void testRanges() throws UnknownHostException
{
createTable("create table %s (id bigint primary key, x int)");
DatabaseDescriptor.setMinTrackedPartitionSize(new DataStorageSpec.LongBytesBound("0B"));
DatabaseDescriptor.setMinTrackedPartitionSizeInBytes(new DataStorageSpec.LongBytesBound("0B"));
DatabaseDescriptor.setMaxTopSizePartitionCount(1000);
long seed = System.currentTimeMillis();
Random r = new Random(seed);