internal BigFamily(ColumnFamily family, string tableId) { var prefix = tableId + BigtableConstants.Templates.FamilyAdjunct; Name = family.Name.Replace(prefix, ""); RetentionPolicy = new RetentionPolicy(family.GcRule, family.GcExpression); }
public override FluentColumn Execute() { var schema = ColumnFamily.GetSchema(); var path = new CassandraColumnPath { ColumnFamily = ColumnFamily.FamilyName }; if (SuperColumnName != null) { path.SuperColumn = SuperColumnName.GetValue(schema.SuperColumnNameType) as CassandraObject; } if (ColumnName != null) { path.Column = ColumnName.GetValue(schema.ColumnNameType) as CassandraObject; } var output = Session.GetClient().get( Key, path, Session.ReadConsistency ); return((FluentColumn)Helper.ConvertToFluentBaseColumn(output, schema)); }
public void ShouldSetColumns() { //Arrange string keyspace = "TestExample"; string colValue1 = "sampleValue1"; string colName1 = "sampleName1"; string colValue2 = "sampleValue2"; string colName2 = "sampleName2"; Dictionary <object, object> map = new Dictionary <object, object>(); map.Add(colName1, colValue1); map.Add(colName2, colValue2); string[] colNames = new string[] { colName1, colName2 }; string key = "sampleKey"; string colFamilyName = "cf"; using (Client client = new Client()) { client.dropIfExistsAndCreateKeyspace(keyspace); ColumnFamily cf = new ColumnFamily(); cf.Name = colFamilyName; client.createColumnFamily(keyspace, cf); //Act client.setColumns(keyspace, cf, key.ToByteArray(), map); var cols = client.getAllColumns <string, string>(keyspace, cf, key); ColumnSlice <string, string> results = client.getColumns <string, string>(keyspace, cf, key, colNames); //Assert foreach (var item in map) { Assert.NotNull(results.getColumnByName((string)item.Key)); } } }
public override IEnumerable <FluentSuperColumnFamily> Execute() { var schema = ColumnFamily.GetSchema(); var parent = new CassandraColumnParent { ColumnFamily = ColumnFamily.FamilyName }; SlicePredicate = Helper.SetSchemaForSlicePredicate(SlicePredicate, schema, SuperColumnName == null); var output = Session.GetClient().get_range_slices( parent, SlicePredicate, KeyRange, Session.ReadConsistency ); foreach (var result in output) { var key = CassandraObject.GetCassandraObjectFromDatabaseByteArray(result.Key, schema.KeyValueType); var r = new FluentSuperColumnFamily(key, ColumnFamily.FamilyName, schema, result.Columns.Select(col => { var superCol = Helper.ConvertSuperColumnToFluentSuperColumn(col.Super_column, schema); ColumnFamily.Context.Attach(superCol); superCol.MutationTracker.Clear(); return(superCol); })); ColumnFamily.Context.Attach(r); r.MutationTracker.Clear(); yield return(r); } }
public override IDictionary <CassandraObject, int> Execute() { var schema = ColumnFamily.GetSchema(); var parent = new CassandraColumnParent { ColumnFamily = ColumnFamily.FamilyName }; if (SuperColumnName != null) { parent.SuperColumn = SuperColumnName; } SlicePredicate = Helper.SetSchemaForSlicePredicate(SlicePredicate, schema, SuperColumnName == null); var output = Session.GetClient().multiget_count( Keys, parent, SlicePredicate, Session.ReadConsistency ); var results = new Dictionary <CassandraObject, int>(); foreach (var result in output) { results.Add(result.Key, result.Value); } return(results); }
public override IEnumerable <FluentSuperColumnFamily> Execute() { var schema = ColumnFamily.GetSchema(); var parent = new CassandraColumnParent { ColumnFamily = ColumnFamily.FamilyName }; SlicePredicate = Helper.SetSchemaForSlicePredicate(SlicePredicate, schema); var output = Session.GetClient().get_indexed_slices( parent, IndexClause, SlicePredicate, Session.ReadConsistency ); foreach (var result in output) { var r = new FluentSuperColumnFamily(result.Key, ColumnFamily.FamilyName, ColumnFamily.GetSchema(), result.Columns.Select(col => { var superCol = Helper.ConvertSuperColumnToFluentSuperColumn(col.Super_column, schema); ColumnFamily.Context.Attach(superCol); superCol.MutationTracker.Clear(); return(superCol); })); ColumnFamily.Context.Attach(r); r.MutationTracker.Clear(); yield return(r); } }
public void ShouldGetRowsForGivenColumnNames() { //Arrange string keyspace = "TestExample"; string colValue1 = "sampleValue1"; string colName1 = "sampleName1"; string colValue2 = "sampleValue2"; string colName2 = "sampleName2"; string[] colNames = new string[] { colName1, colName2 }; string colFamilyName = "cf"; string[] keys = new string[] { "key1", "key2" }; using (Client client = new Client()) { client.dropIfExistsAndCreateKeyspace(keyspace); ColumnFamily cf = new ColumnFamily(); cf.Name = colFamilyName; client.createColumnFamily(keyspace, cf); client.setColumn(keyspace, cf, keys[0], colName1, colValue1); client.setColumn(keyspace, cf, keys[1], colName2, colValue2); //Act Rows <string, string, string> results = client.getRows <string, string, string>(keyspace, cf, keys, colNames); //Assert Assert.Equal(keys.Length, results.rowsList.Count); } }
private IEnumerable <FluentColumn> GetColumns(BaseCassandraColumnFamily columnFamily) { var schema = ColumnFamily.GetSchema(); var list = new List <FluentColumn>(); var parent = new CassandraColumnParent { ColumnFamily = columnFamily.FamilyName, SuperColumn = SuperColumnName }; SlicePredicate = Helper.SetSchemaForSlicePredicate(SlicePredicate, schema, SuperColumnName == null); var output = Session.GetClient().get_slice( Key, parent, SlicePredicate, Session.ReadConsistency ); foreach (var result in output) { var r = Helper.ConvertColumnToFluentColumn(result.Column, schema); list.Add(r); } return(list); }
public void ShouldGetRowKeySet() { //Arrange string keyspace = "TestExample"; string colValue = "sampleValue"; string colName = "sampleName"; string colFamilyName = "cf"; string[] keys = new string[] { "key1", "key2" }; using (Client client = new Client()) { client.dropIfExistsAndCreateKeyspace(keyspace); ColumnFamily cf = new ColumnFamily(); cf.Name = colFamilyName; client.createColumnFamily(keyspace, cf); client.setColumn(keyspace, cf, keys[0], colName, colValue); client.setColumn(keyspace, cf, keys[1], colName, colValue); //Act HashSet <string> results = client.getRowKeySet <string>(keyspace, cf); //Assert foreach (var key in keys) { Assert.True(results.Contains(key)); } } }
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)); } }
public override IEnumerable <FluentColumnFamily> Execute() { var schema = ColumnFamily.GetSchema(); var list = new List <FluentColumnFamily>(); var parent = new CassandraColumnParent { ColumnFamily = ColumnFamily.FamilyName }; SlicePredicate = Helper.SetSchemaForSlicePredicate(SlicePredicate, schema); var output = Session.GetClient().get_indexed_slices( parent, IndexClause, SlicePredicate, Session.ReadConsistency ); foreach (var result in output) { var key = CassandraObject.GetCassandraObjectFromDatabaseByteArray(result.Key, schema.KeyValueType); var r = new FluentColumnFamily(key, ColumnFamily.FamilyName, schema, result.Columns.Select(col => { return(Helper.ConvertColumnToFluentColumn(col.Column, schema)); })); ColumnFamily.Context.Attach(r); r.MutationTracker.Clear(); list.Add(r); } return(list); }
public void ShouldMultiGetColumns() { //Arrange string keyspace = "TestExample"; string colValue = "sampleValue"; string colName = "sampleName"; string colFamilyName = "cf"; List <object> keys = new List <object>(); keys.Add("key1"); keys.Add("key2"); using (Client client = new Client()) { client.dropIfExistsAndCreateKeyspace(keyspace); ColumnFamily cf = new ColumnFamily(); cf.Name = colFamilyName; client.createColumnFamily(keyspace, cf); client.setColumn(keyspace, cf, keys[0], colName, colValue); client.setColumn(keyspace, cf, keys[1], colName, colValue); //Act Dictionary <byte[], List <NColumn <byte[], byte[]> > > results = client.multiGetColumns(keyspace, cf, keys, colName, colName, 100, false); //Assert Assert.Equal(keys.Count, results.Count); } }
public void ShouldDeleteColumn() { //Arrange string keyspace = "TestExample"; string colValue = "sampleValue"; string colName = "sampleName"; string key = "sampleKey"; string colFamilyName = "cf"; using (Client client = new Client()) { client.dropIfExistsAndCreateKeyspace(keyspace); ColumnFamily cf = new ColumnFamily(); cf.Name = colFamilyName; client.createColumnFamily(keyspace, cf); //Act client.setColumn(keyspace, cf, key, colName, colValue); bool beforeResult = client.columnExists(keyspace, cf, key, colName); client.deleteColumn(keyspace, cf, key, colName); bool afterResult = client.columnExists(keyspace, cf, key, colName); //Assert Assert.True(beforeResult); Assert.False(afterResult); } }
public override Void Execute() { var schema = ColumnFamily.GetSchema(); var parent = new CassandraColumnParent { ColumnFamily = ColumnFamily.FamilyName, }; if (SuperColumnName != null) { parent.SuperColumn = SuperColumnName.GetValue(schema.SuperColumnNameType); } var column = new CassandraColumn { Name = ColumnName.GetValue(schema.ColumnNameType), Value = ColumnValue, Timestamp = Timestamp, Ttl = TimeToLive }; Session.GetClient().insert( Key, parent, column, Session.WriteConsistency ); return(new Void()); }
private IEnumerable <FluentColumnFamily> GetFamilies(BaseCassandraColumnFamily columnFamily) { var schema = ColumnFamily.GetSchema(); var parent = new CassandraColumnParent { ColumnFamily = columnFamily.FamilyName }; SlicePredicate = Helper.SetSchemaForSlicePredicate(SlicePredicate, schema); var output = Session.GetClient().get_range_slices( parent, SlicePredicate, KeyRange, Session.ReadConsistency ); foreach (var result in output) { var r = new FluentColumnFamily(result.Key, columnFamily.FamilyName, columnFamily.GetSchema(), result.Columns.Select(col => { return(Helper.ConvertColumnToFluentColumn(col.Column, schema)); })); columnFamily.Context.Attach(r); r.MutationTracker.Clear(); yield return(r); } }
private IEnumerable <FluentSuperColumn> GetColumns(BaseCassandraColumnFamily columnFamily) { var schema = ColumnFamily.GetSchema(); var parent = new CassandraColumnParent { ColumnFamily = columnFamily.FamilyName }; SlicePredicate = Helper.SetSchemaForSlicePredicate(SlicePredicate, schema); var output = Session.GetClient().get_slice( Key, parent, SlicePredicate, Session.ReadConsistency ); foreach (var result in output) { var r = Helper.ConvertSuperColumnToFluentSuperColumn(result.Super_column, schema); columnFamily.Context.Attach(r); r.MutationTracker.Clear(); yield return(r); } }
public override FluentColumnFamily Execute() { var result = new FluentColumnFamily(Key, ColumnFamily.FamilyName, ColumnFamily.GetSchema(), GetColumns(ColumnFamily)); ColumnFamily.Context.Attach(result); result.MutationTracker.Clear(); return(result); }
static void Main(string[] args) { string keyspace = "ConsoleExample"; /* Some columns the first and second will be string columns (Both Name and Value) * The third will be an int column (Name and Value) */ string colValue1 = "sampleValue1"; string colName1 = "sampleName1"; string colValue2 = "sampleValue2"; string colName2 = "sampleName2"; int colValue3 = 33; int colName3 = 3; DateTime colValue4 = DateTime.UtcNow; DateTime colName4 = DateTime.UtcNow.AddDays(20.0d); // Using a dictionary to store the columns Dictionary <object, object> map = new Dictionary <object, object>(); map.Add(colName1, colValue1); map.Add(colName2, colValue2); map.Add(colName3, colValue3); map.Add(colName4, colValue4); //We will use this to query the string columns later string[] colNames = new string[] { colName1, colName2 }; //Row key string key = "sampleKey"; string colFamilyName = "cf"; using (Client client = new Client()) { client.dropIfExistsAndCreateKeyspace(keyspace); ColumnFamily cf = new ColumnFamily(); cf.Name = colFamilyName; client.createColumnFamily(keyspace, cf); //Lets insert all the columns into the given row in one go client.setColumns(keyspace, cf, key.ToByteArray(), map); //Get the columns given in the colNames array ColumnSlice <string, string> stringColumnResult = client.getColumns <string, string>(keyspace, cf, key, colNames); //Get the int column NColumn <int, int> intColumnResult = client.getColumn <int, int>(keyspace, cf, key, colName3); Console.WriteLine(intColumnResult.Name); Console.WriteLine(intColumnResult.Value); //Get the DateTime column NColumn <DateTime, DateTime> dateTimeColumnResult = client.getColumn <DateTime, DateTime>(keyspace, cf, key, colName4); Console.WriteLine(dateTimeColumnResult.Name); Console.WriteLine(dateTimeColumnResult.Value); client.dropKeyspace(keyspace); Console.ReadLine(); } }
private static object CreateMaxVersionsFamily(string tableId) { // [START bigtable_create_bigtableTableAdminClient] BigtableTableAdminClient bigtableTableAdminClient = BigtableTableAdminClient.Create(); // [END bigtable_create_bigtableTableAdminClient] Console.WriteLine("Creating column family cf2 with max versions GC rule..."); // [START bigtable_create_family_gc_max_versions] // Create a column family with GC policy : most recent N versions // where 1 = most recent version // Initialize request argument(s). // Define the GC policy to retain only the most recent 2 versions GcRule maxVersionsRule = new GcRule { MaxNumVersions = 2 }; // Column family to create ColumnFamily columnFamily = new ColumnFamily { GcRule = maxVersionsRule }; TableName tableName = new TableName(projectId, instanceId, tableId); // Modification to create column family ModifyColumnFamiliesRequest.Types.Modification modification = new ModifyColumnFamiliesRequest.Types.Modification { Create = columnFamily, Id = "cf2" }; ModifyColumnFamiliesRequest request = new ModifyColumnFamiliesRequest { TableName = tableName, Modifications = { modification } }; try { // Make the request Table response = bigtableTableAdminClient.ModifyColumnFamilies(request); Console.WriteLine("Created column family"); // [END bigtable_create_family_gc_max_versions] // Print table information. GetTable(tableId); // [START bigtable_create_family_gc_max_versions] } catch (Exception ex) { Console.WriteLine($"Error creating column family {ex.Message}"); } // [END bigtable_create_family_gc_max_versions] return(0); }
private static object UpdateFamily(string tableId) { // [START bigtable_create_bigtableTableAdminClient] BigtableTableAdminClient bigtableTableAdminClient = BigtableTableAdminClient.Create(); // [END bigtable_create_bigtableTableAdminClient] Console.WriteLine("Updating column family cf1 GC rule..."); // [START bigtable_update_gc_rule] // Update the column family metadata to update the GC rule. // Initialize request argument(s). // Updated column family GC rule. GcRule maxVersionsRule = new GcRule { MaxNumVersions = 1 }; // Column family to create ColumnFamily columnFamily = new ColumnFamily { GcRule = maxVersionsRule }; TableName tableName = new TableName(projectId, instanceId, tableId); // Modification to update column family ModifyColumnFamiliesRequest.Types.Modification modification = new ModifyColumnFamiliesRequest.Types.Modification { Update = columnFamily, Id = "cf1" }; ModifyColumnFamiliesRequest request = new ModifyColumnFamiliesRequest { TableName = tableName, Modifications = { modification } }; try { // Make the request Table response = bigtableTableAdminClient.ModifyColumnFamilies(request); Console.WriteLine("Updated column family"); // [END bigtable_update_gc_rule] // Print table information. GetTable(tableId); // [START bigtable_update_gc_rule] } catch (Exception ex) { Console.WriteLine($"Error updating column family {ex.Message}"); } // [END bigtable_update_gc_rule] return(0); }
private static object CreateMaxAgeFamily(string tableId) { // [START bigtable_create_bigtableTableAdminClient] BigtableTableAdminClient bigtableTableAdminClient = BigtableTableAdminClient.Create(); // [END bigtable_create_bigtableTableAdminClient] Console.WriteLine("Creating column family cf1 with max age GC rule..."); // [START bigtable_create_family_gc_max_age] // Create a column family with GC policy : maximum age // where age = current time minus cell timestamp // Initialize request argument(s). // Define the GC rule to retain data with max age of 5 days GcRule MaxAgeRule = new GcRule { MaxAge = Duration.FromTimeSpan(TimeSpan.FromDays(5.0)) }; // Column family to create ColumnFamily columnFamily = new ColumnFamily { GcRule = MaxAgeRule }; TableName tableName = new TableName(projectId, instanceId, tableId); // Modification to create column family ModifyColumnFamiliesRequest.Types.Modification modification = new ModifyColumnFamiliesRequest.Types.Modification { Create = columnFamily, Id = "cf1" }; ModifyColumnFamiliesRequest request = new ModifyColumnFamiliesRequest { TableName = tableName, Modifications = { modification } }; try { // Make the request Table response = bigtableTableAdminClient.ModifyColumnFamilies(request); Console.WriteLine("Created column family"); // [END bigtable_create_bigtableTableAdminClient] // Print table information. GetTable(tableId); // [START bigtable_create_bigtableTableAdminClient] } catch (Exception ex) { Console.WriteLine($"Error creating column family {ex.Message}"); } // [END bigtable_create_family_gc_max_age] return(0); }
public override IEnumerable <FluentSuperColumnFamily> Execute() { var schema = ColumnFamily.GetSchema(); var parent = new CassandraColumnParent { ColumnFamily = ColumnFamily.FamilyName }; if (SuperColumnName != null) { parent.SuperColumn = SuperColumnName; } SlicePredicate = Helper.SetSchemaForSlicePredicate(SlicePredicate, schema, SuperColumnName == null); var output = Session.GetClient().multiget_slice( Keys, parent, SlicePredicate, Session.ReadConsistency ); foreach (var result in output) { var key = CassandraObject.GetCassandraObjectFromDatabaseByteArray(result.Key, schema.KeyValueType); var superColumns = (IEnumerable <FluentSuperColumn>)null; if (SuperColumnName != null) { var superColSchema = new CassandraColumnSchema { NameType = schema.SuperColumnNameType, Name = SuperColumnName, ValueType = schema.ColumnNameType }; var superCol = new FluentSuperColumn(superColSchema, result.Value.Select(col => Helper.ConvertColumnToFluentColumn(col.Column, schema))); ColumnFamily.Context.Attach(superCol); superColumns = new[] { superCol }; } else { superColumns = result.Value.Select(col => Helper.ConvertSuperColumnToFluentSuperColumn(col.Super_column, schema)); } var familyName = ColumnFamily.FamilyName; var r = new FluentSuperColumnFamily(key, familyName, schema, superColumns); ColumnFamily.Context.Attach(r); yield return(r); } }
public void TestDefaultCompression() { var name = TestSchemaUtils.GetRandomColumnFamilyName(); var originalColumnFamily = new ColumnFamily { Name = name, Compression = null }; keyspaceConnection.AddColumnFamily(originalColumnFamily); var columnFamily = keyspaceConnection.DescribeKeyspace().ColumnFamilies[name]; Assert.That(columnFamily.Compression.IsEnabled, Is.True); Assert.That(columnFamily.Compression.Algorithm, Is.EqualTo(CompressionAlgorithms.LZ4)); Assert.That(columnFamily.Compression.Options.ChunkLengthInKb, Is.Null.Or.EqualTo(64)); }
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { _uiapp = commandData.Application; _uidoc = _uiapp.ActiveUIDocument; _doc = _uidoc.Document; try { ColumnFamily cf = new ColumnFamily(_doc); cf.AdjustWholeColumnFamilyTypeName(); return(Result.Succeeded); } catch (Autodesk.Revit.Exceptions.OperationCanceledException) { return(Result.Cancelled); } }
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 override FluentSuperColumn Execute() { var schema = ColumnFamily.GetSchema(); var superColSchema = new CassandraColumnSchema { NameType = schema.SuperColumnNameType, Name = SuperColumnName, ValueType = schema.ColumnNameType }; var result = new FluentSuperColumn(superColSchema, GetColumns(ColumnFamily)) { ColumnName = SuperColumnName }; ColumnFamily.Context.Attach(result); result.MutationTracker.Clear(); return(result); }
public void ShouldCreateColumnFamily() { //Arrange string keyspace = "TestExample"; using (Client client = new Client()) { client.dropIfExistsAndCreateKeyspace(keyspace); ColumnFamily cf = new ColumnFamily(); cf.Name = "cf"; //Act bool beforeResult = client.cfExists(keyspace, "cf"); client.createColumnFamily(keyspace, cf); bool afterResult = client.cfExists(keyspace, "cf"); //Assert Assert.False(beforeResult); Assert.True(afterResult); } }
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 bool NeedUpdateColumnFamily(ColumnFamily columnFamilyWithNewProperties, ColumnFamily columnFamilyFromTarget) { if (columnFamilyWithNewProperties.Name != columnFamilyFromTarget.Name) { throw new InvalidOperationException($"Cannot compare ColumnFamilies with different names ('{columnFamilyWithNewProperties.Name}' and '{columnFamilyFromTarget.Name}')"); } if (!CompareComparatorType(columnFamilyWithNewProperties.ComparatorType, columnFamilyFromTarget.ComparatorType)) { throw new InvalidOperationException($"Cannot compare ColumnFamilies with different comparatorTypes ('{columnFamilyWithNewProperties.ComparatorType}' and '{columnFamilyFromTarget.ComparatorType}')"); } return (!( columnFamilyWithNewProperties.Caching.Equals(columnFamilyFromTarget.Caching) && (columnFamilyWithNewProperties.ReadRepairChance == null || columnFamilyWithNewProperties.ReadRepairChance.Equals(columnFamilyFromTarget.ReadRepairChance)) && (columnFamilyWithNewProperties.GCGraceSeconds == null || columnFamilyWithNewProperties.GCGraceSeconds.Equals(columnFamilyFromTarget.GCGraceSeconds)) && (columnFamilyWithNewProperties.CompactionStrategy == null || CompareCompactionStrategy(columnFamilyWithNewProperties.CompactionStrategy, columnFamilyFromTarget.CompactionStrategy)) && (columnFamilyWithNewProperties.Compression == null || CompareCompression(columnFamilyWithNewProperties.Compression, columnFamilyFromTarget.Compression)) && (columnFamilyWithNewProperties.BloomFilterFpChance == null || columnFamilyWithNewProperties.BloomFilterFpChance.Equals(columnFamilyFromTarget.BloomFilterFpChance)) && (columnFamilyWithNewProperties.DefaultTtl == null || columnFamilyWithNewProperties.DefaultTtl.Equals(columnFamilyFromTarget.DefaultTtl)) )); }
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)); }