private void InternalTestCaching(ColumnFamilyCaching?columnFamilyCaching) { var name = TestSchemaUtils.GetRandomColumnFamilyName(); var originalColumnFamily = new ColumnFamily { Name = name, CompactionStrategy = CompactionStrategy.LeveledCompactionStrategy(sstableSizeInMb: 10), GCGraceSeconds = 123, ReadRepairChance = 0.3 }; if (columnFamilyCaching != null) { originalColumnFamily.Caching = columnFamilyCaching.Value; } keyspaceConnection.AddColumnFamily(originalColumnFamily); var columnFamily = keyspaceConnection.DescribeKeyspace().ColumnFamilies[name]; if (columnFamilyCaching != null) { Assert.That(columnFamily.Caching, Is.EqualTo(columnFamilyCaching)); } else { Assert.That(columnFamily.Caching, Is.EqualTo(ColumnFamilyCaching.KeysOnly)); } }
// fullCompactionStrategy returns a compactionStrategy for higher level generations of TSM files. // It returns nil if there are no TSM files to compact. private CompactionStrategy fullCompactionStrategy() { bool optimize = false; List <CompactionGroup> compactionGroups = compactionPlan.Plan(wal.LastWriteTime); if (compactionGroups == null || compactionGroups.Count == 0) { optimize = true; compactionGroups = compactionPlan.PlanOptimize(); } if (compactionGroups == null || compactionGroups.Count == 0) { return(null); } CompactionStrategy result = new CompactionStrategy() { compactionGroups = compactionGroups, fileStore = fileStore, compactor = compactor, fast = optimize }; if (optimize) { result.description = "optimize"; result.stat = stats.OptimizeStat; } else { result.description = "full"; result.stat = stats.FullStat; } return(result); }
private void compactTSMLevel(bool fast, int level) { CompactionStrategy s = levelCompactionStrategy(fast, level); if (s != null) { s.Apply(); compactionPlan.Release(s.compactionGroups); } }
private static bool CompareCompactionStrategy(CompactionStrategy lhs, CompactionStrategy rhs) { if (lhs == null && rhs == null) { return(true); } if (lhs != null && rhs != null) { return(lhs.CompactionStrategyType == rhs.CompactionStrategyType && CompareCompactionStrategyOptions(lhs.CompactionStrategyOptions, rhs.CompactionStrategyOptions)); } return(false); }
public void TestChangeCompactionProperties() { var scheme = new KeyspaceScheme { Name = TestSchemaUtils.GetRandomKeyspaceName(), Configuration = new KeyspaceConfiguration { ColumnFamilies = new[] { new ColumnFamily { Name = "CF1" } } } }; ActualizeKeyspaces(scheme); Assert.That(cluster.UpdateColumnFamilyInvokeCount, Is.EqualTo(0)); scheme.Configuration.ColumnFamilies[0].CompactionStrategy = CompactionStrategy.SizeTieredCompactionStrategy(4, 32); ActualizeKeyspaces(scheme); Assert.That(cluster.UpdateColumnFamilyInvokeCount, Is.EqualTo(0)); scheme.Configuration.ColumnFamilies[0].CompactionStrategy = CompactionStrategy.SizeTieredCompactionStrategy(3, 32); ActualizeKeyspaces(scheme); Assert.That(cluster.UpdateColumnFamilyInvokeCount, Is.EqualTo(1)); scheme.Configuration.ColumnFamilies[0].CompactionStrategy = CompactionStrategy.SizeTieredCompactionStrategy(3, 31); ActualizeKeyspaces(scheme); Assert.That(cluster.UpdateColumnFamilyInvokeCount, Is.EqualTo(2)); ActualizeKeyspaces(scheme); Assert.That(cluster.UpdateColumnFamilyInvokeCount, Is.EqualTo(2)); scheme.Configuration.ColumnFamilies[0].CompactionStrategy = CompactionStrategy.LeveledCompactionStrategy(10); ActualizeKeyspaces(scheme); Assert.That(cluster.UpdateColumnFamilyInvokeCount, Is.EqualTo(3)); scheme.Configuration.ColumnFamilies[0].CompactionStrategy = CompactionStrategy.LeveledCompactionStrategy(11); ActualizeKeyspaces(scheme); Assert.That(cluster.UpdateColumnFamilyInvokeCount, Is.EqualTo(4)); scheme.Configuration.ColumnFamilies[0].CompactionStrategy = CompactionStrategy.LeveledCompactionStrategy(11); ActualizeKeyspaces(scheme); Assert.That(cluster.UpdateColumnFamilyInvokeCount, Is.EqualTo(4)); }
public void TestUpdateColumnFamilyCaching() { var name = TestSchemaUtils.GetRandomColumnFamilyName(); var originalColumnFamily = new ColumnFamily { Name = name, CompactionStrategy = CompactionStrategy.LeveledCompactionStrategy(sstableSizeInMb: 10), GCGraceSeconds = 123, ReadRepairChance = 0.3, Caching = ColumnFamilyCaching.All }; var keyspaceName = TestSchemaUtils.GetRandomKeyspaceName(); var keyspaceSchemes = new[] { new KeyspaceScheme { Name = keyspaceName, Configuration = new KeyspaceConfiguration { ColumnFamilies = new[] { originalColumnFamily } } } }; cluster.ActualizeKeyspaces(keyspaceSchemes); originalColumnFamily.Caching = ColumnFamilyCaching.None; cluster.ActualizeKeyspaces(keyspaceSchemes); Assert.That(cluster.RetrieveKeyspaceConnection(keyspaceName).DescribeKeyspace().ColumnFamilies[name].Caching, Is.EqualTo(ColumnFamilyCaching.None)); originalColumnFamily.Caching = ColumnFamilyCaching.KeysOnly; cluster.ActualizeKeyspaces(keyspaceSchemes); Assert.That(cluster.RetrieveKeyspaceConnection(keyspaceName).DescribeKeyspace().ColumnFamilies[name].Caching, Is.EqualTo(ColumnFamilyCaching.KeysOnly)); originalColumnFamily.Caching = ColumnFamilyCaching.RowsOnly; cluster.ActualizeKeyspaces(keyspaceSchemes); Assert.That(cluster.RetrieveKeyspaceConnection(keyspaceName).DescribeKeyspace().ColumnFamilies[name].Caching, Is.EqualTo(ColumnFamilyCaching.RowsOnly)); originalColumnFamily.Caching = ColumnFamilyCaching.All; cluster.ActualizeKeyspaces(keyspaceSchemes); Assert.That(cluster.RetrieveKeyspaceConnection(keyspaceName).DescribeKeyspace().ColumnFamilies[name].Caching, Is.EqualTo(ColumnFamilyCaching.All)); }
public static void SetUp() { var templateDirectory = Path.Combine(FindCassandraTemplateDirectory(AppDomain.CurrentDomain.BaseDirectory), @"v3.11.x"); var deployDirectory = Path.Combine(Path.GetTempPath(), "deployed_cassandra_v3.11.x"); cassandraNode = new LocalCassandraNode(templateDirectory, deployDirectory) { RpcPort = 9360, CqlPort = 9343, JmxPort = 7399, GossipPort = 7400, }; cassandraNode.Restart(timeout: TimeSpan.FromMinutes(1)); cassandraCluster = new CassandraCluster(cassandraNode.CreateSettings(), Logger.Instance); var cassandraSchemaActualizer = new CassandraSchemaActualizer(cassandraCluster, null, Logger.Instance); cassandraSchemaActualizer.ActualizeKeyspaces(new[] { new KeyspaceSchema { Name = ksName, Configuration = new KeyspaceConfiguration { ReplicationStrategy = SimpleReplicationStrategy.Create(replicationFactor: 1), ColumnFamilies = new[] { new ColumnFamily { Name = minTicksCfName, CompactionStrategy = CompactionStrategy.LeveledCompactionStrategy(sstableSizeInMb: 160), Caching = ColumnFamilyCaching.All }, new ColumnFamily { Name = maxTicksCfName, CompactionStrategy = CompactionStrategy.LeveledCompactionStrategy(sstableSizeInMb: 160), Caching = ColumnFamilyCaching.KeysOnly } } } }, }, changeExistingKeyspaceMetadata: false); }
private void compactTSMFull() { bool cold = shard.IsOld() && DateTime.Now.Ticks - LastModified() > Constants.DefaultCompactFullWriteColdDuration; if (cold) { compactionPlan.ForceFull(); quitCompact.Cancel(); quitCompact = null; } CompactionStrategy s = fullCompactionStrategy(); if (s != null) { s.Apply(); compactionPlan.Release(s.compactionGroups); } }
public void TestCreateColumnFamily() { var name = TestSchemaUtils.GetRandomColumnFamilyName(); var originalColumnFamily = new ColumnFamily { Name = name, CompactionStrategy = CompactionStrategy.LeveledCompactionStrategy(sstableSizeInMb: 10), GCGraceSeconds = 123, ReadRepairChance = 0.3 }; keyspaceConnection.AddColumnFamily(originalColumnFamily); var columnFamily = keyspaceConnection.DescribeKeyspace().ColumnFamilies[name]; Assert.That(columnFamily.Name, Is.EqualTo(originalColumnFamily.Name)); Assert.That(columnFamily.CompactionStrategy.CompactionStrategyType, Is.EqualTo(originalColumnFamily.CompactionStrategy.CompactionStrategyType)); Assert.That(columnFamily.CompactionStrategy.CompactionStrategyOptions.SstableSizeInMb, Is.EqualTo(originalColumnFamily.CompactionStrategy.CompactionStrategyOptions.SstableSizeInMb)); Assert.That(columnFamily.GCGraceSeconds, Is.EqualTo(originalColumnFamily.GCGraceSeconds)); Assert.That(columnFamily.ReadRepairChance, Is.EqualTo(originalColumnFamily.ReadRepairChance)); }
public void TestUpdateColumnFamily() { var name = TestSchemaUtils.GetRandomColumnFamilyName(); var originalColumnFamily = new ColumnFamily { Name = name, CompactionStrategy = CompactionStrategy.LeveledCompactionStrategy(sstableSizeInMb: 10), GCGraceSeconds = 123, ReadRepairChance = 0.3, Caching = ColumnFamilyCaching.All }; keyspaceConnection.AddColumnFamily(originalColumnFamily); originalColumnFamily.CompactionStrategy = CompactionStrategy.LeveledCompactionStrategy(sstableSizeInMb: 20); originalColumnFamily.GCGraceSeconds = 321; originalColumnFamily.ReadRepairChance = 0.9; originalColumnFamily.Caching = ColumnFamilyCaching.None; keyspaceConnection.UpdateColumnFamily(originalColumnFamily); var columnFamily = keyspaceConnection.DescribeKeyspace().ColumnFamilies[name]; Assert.That(columnFamily.Name, Is.EqualTo(originalColumnFamily.Name)); Assert.That(columnFamily.CompactionStrategy.CompactionStrategyType, Is.EqualTo(originalColumnFamily.CompactionStrategy.CompactionStrategyType)); Assert.That(columnFamily.CompactionStrategy.CompactionStrategyOptions.SstableSizeInMb, Is.EqualTo(originalColumnFamily.CompactionStrategy.CompactionStrategyOptions.SstableSizeInMb)); Assert.That(columnFamily.GCGraceSeconds, Is.EqualTo(originalColumnFamily.GCGraceSeconds)); Assert.That(columnFamily.ReadRepairChance, Is.EqualTo(originalColumnFamily.ReadRepairChance)); originalColumnFamily.CompactionStrategy = CompactionStrategy.SizeTieredCompactionStrategy(minThreshold: 5, maxThreshold: 17); keyspaceConnection.UpdateColumnFamily(originalColumnFamily); columnFamily = keyspaceConnection.DescribeKeyspace().ColumnFamilies[name]; Assert.That(columnFamily.Name, Is.EqualTo(originalColumnFamily.Name)); Assert.That(columnFamily.CompactionStrategy.CompactionStrategyType, Is.EqualTo(originalColumnFamily.CompactionStrategy.CompactionStrategyType)); Assert.That(columnFamily.CompactionStrategy.CompactionStrategyOptions.Enabled, Is.EqualTo(originalColumnFamily.CompactionStrategy.CompactionStrategyOptions.Enabled)); Assert.That(columnFamily.CompactionStrategy.CompactionStrategyOptions.MinThreshold, Is.EqualTo(originalColumnFamily.CompactionStrategy.CompactionStrategyOptions.MinThreshold)); Assert.That(columnFamily.CompactionStrategy.CompactionStrategyOptions.MaxThreshold, Is.EqualTo(originalColumnFamily.CompactionStrategy.CompactionStrategyOptions.MaxThreshold)); Assert.That(columnFamily.GCGraceSeconds, Is.EqualTo(originalColumnFamily.GCGraceSeconds)); Assert.That(columnFamily.ReadRepairChance, Is.EqualTo(originalColumnFamily.ReadRepairChance)); }
public void TestCompareColumnFamiliesByCompactionStrategy() { Assert.That( !comparer.NeedUpdateColumnFamily( new ColumnFamily { Name = "name", CompactionStrategy = CompactionStrategy.LeveledCompactionStrategy(10) }, new ColumnFamily { Name = "name", CompactionStrategy = CompactionStrategy.LeveledCompactionStrategy(10) }) ); Assert.That( !comparer.NeedUpdateColumnFamily( new ColumnFamily { Name = "name", CompactionStrategy = CompactionStrategy.LeveledCompactionStrategyDisabled() }, new ColumnFamily { Name = "name", CompactionStrategy = CompactionStrategy.LeveledCompactionStrategyDisabled() }) ); Assert.That( !comparer.NeedUpdateColumnFamily( new ColumnFamily { Name = "name", CompactionStrategy = CompactionStrategy.SizeTieredCompactionStrategy(4, 32) }, new ColumnFamily { Name = "name", CompactionStrategy = CompactionStrategy.SizeTieredCompactionStrategy(4, 32) }) ); Assert.That( !comparer.NeedUpdateColumnFamily( new ColumnFamily { Name = "name", CompactionStrategy = CompactionStrategy.SizeTieredCompactionStrategyDisabled() }, new ColumnFamily { Name = "name", CompactionStrategy = CompactionStrategy.SizeTieredCompactionStrategyDisabled() }) ); Assert.That( !comparer.NeedUpdateColumnFamily( new ColumnFamily { Name = "name", CompactionStrategy = CompactionStrategy.SizeTieredCompactionStrategyDisabled() }, new ColumnFamily { Name = "name", CompactionStrategy = new CompactionStrategy(CompactionStrategyType.SizeTiered, new CompactionStrategyOptions { Enabled = false, MinThreshold = 4, MaxThreshold = 32 }) }) ); Assert.That( comparer.NeedUpdateColumnFamily( new ColumnFamily { Name = "name", CompactionStrategy = CompactionStrategy.SizeTieredCompactionStrategy(4, 32) }, new ColumnFamily { Name = "name", CompactionStrategy = CompactionStrategy.SizeTieredCompactionStrategyDisabled() }) ); Assert.That( comparer.NeedUpdateColumnFamily( new ColumnFamily { Name = "name", CompactionStrategy = CompactionStrategy.SizeTieredCompactionStrategy(4, 32) }, new ColumnFamily { Name = "name", CompactionStrategy = CompactionStrategy.SizeTieredCompactionStrategy(16, 32) }) ); Assert.That( comparer.NeedUpdateColumnFamily( new ColumnFamily { Name = "name", CompactionStrategy = CompactionStrategy.SizeTieredCompactionStrategy(4, 32) }, new ColumnFamily { Name = "name", CompactionStrategy = CompactionStrategy.SizeTieredCompactionStrategy(4, 16) }) ); Assert.That( comparer.NeedUpdateColumnFamily( new ColumnFamily { Name = "name", CompactionStrategy = CompactionStrategy.LeveledCompactionStrategy(20) }, new ColumnFamily { Name = "name", CompactionStrategy = CompactionStrategy.LeveledCompactionStrategy(10) }) ); Assert.That( comparer.NeedUpdateColumnFamily( new ColumnFamily { Name = "name", CompactionStrategy = CompactionStrategy.LeveledCompactionStrategy(4) }, new ColumnFamily { Name = "name", CompactionStrategy = CompactionStrategy.SizeTieredCompactionStrategy(4, 4) }) ); Assert.That( comparer.NeedUpdateColumnFamily( new ColumnFamily { Name = "name", CompactionStrategy = CompactionStrategy.LeveledCompactionStrategyDisabled() }, new ColumnFamily { Name = "name", CompactionStrategy = CompactionStrategy.SizeTieredCompactionStrategyDisabled() }) ); Assert.That( comparer.NeedUpdateColumnFamily( new ColumnFamily { Name = "name", CompactionStrategy = CompactionStrategy.LeveledCompactionStrategyDisabled() }, new ColumnFamily { Name = "name", CompactionStrategy = null }) ); }