Be careful with creating many dynamically created column families unless you're cleaning up old ones to keep the total number of CF's reasonable. Having many column families will increase memory pressure and reduce overall performance.
On Thu Nov 27 2014 at 8:19:35 AM DuyHai Doan <doanduy...@gmail.com> wrote: > Hello Peter > > For safe concurrent table creation, use CREATE TABLE xxx IF NOT EXISTS. It > will use light weight transaction and you'll have to pay some penalty in > term of performance but at least the table creation will be linearizable > Le 27 nov. 2014 14:26, "Peter Lange" <pla...@nde.ag> a écrit : > > Hi, >> >> We use a four-node Cassandra-Cluster in Version 2.1.2. Our >> Client-Applications creates Tables dynamically. At one point two (or more) >> of our Clients connected to two (or more) different Cassandra-Nodes will >> create the same table simultaneously. We get the "Column family ID >> mismatch"-Error-Messages on every node. Why is this simultanous schema >> modification not possible? How can we handle this? Every Help is >> appreciated. >> >> The lengthy Error-Messages from two nodes follows: >> >> On Node1 we got: >> >> INFO [SharedPool-Worker-2] 2014-11-26 13:37:28,987 >> MigrationManager.java:248 - Create new ColumnFamily: >> org.apache.cassandra.config.CFMetaData@7edad3a3[cfId= >> fbd24eb0-7568-11e4-bd04-b3ae3abaeff4,ksName=myplayground,cfName=test_ >> table, >> INFO [MigrationStage:1] 2014-11-26 13:37:29,607 DefsTables.java:373 - >> Loading org.apache.cassandra.config.CFMetaData@7adc8efd[cfId= >> fbd24eb0-7568-11e4-bd04-b3ae3abaeff4,ksName=myplayground,cfName=test_ >> table, >> INFO [MigrationStage:1] 2014-11-26 13:37:29,629 >> ColumnFamilyStore.java:284 - Initializing myplayground.test_table >> ERROR [MigrationStage:1] 2014-11-26 13:37:30,282 CassandraDaemon.java:153 >> - Exception in thread Thread[MigrationStage:1,5,main] >> java.lang.RuntimeException: >> org.apache.cassandra.exceptions.ConfigurationException: >> Column family ID mismatch ( >> found fbd275c0-7568-11e4-b9ea-3934eddce895; expected >> fbd24eb0-7568-11e4-bd04-b3ae3abaeff4) >> at >> org.apache.cassandra.config.CFMetaData.reload(CFMetaData.java:1171) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at >> org.apache.cassandra.db.DefsTables.updateColumnFamily(DefsTables.java:422) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at >> org.apache.cassandra.db.DefsTables.mergeColumnFamilies(DefsTables.java:295) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at >> org.apache.cassandra.db.DefsTables.mergeSchemaInternal(DefsTables.java:194) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at >> org.apache.cassandra.db.DefsTables.mergeSchema(DefsTables.java:166) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at org.apache.cassandra.db.DefinitionsUpdateVerbHandler$ >> 1.runMayThrow(DefinitionsUpdateVerbHandler.java:49) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at >> org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at >> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) >> ~[na:1.8.0_25] >> at java.util.concurrent.FutureTask.run(FutureTask.java:266) >> ~[na:1.8.0_25] >> at >> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) >> ~[na:1.8.0_25] >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) >> [na:1.8.0_25] >> at java.lang.Thread.run(Thread.java:745) [na:1.8.0_25] >> Caused by: org.apache.cassandra.exceptions.ConfigurationException: >> Column family ID mismatch (found fbd275c0-7568-11e4-b9ea-3934eddce895; >> expected fbd24eb0-7568-11e4-bd04-b3ae3abaeff4) >> at >> org.apache.cassandra.config.CFMetaData.validateCompatility(CFMetaData.java:1254) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at org.apache.cassandra.config.CFMetaData.apply(CFMetaData.java:1186) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at >> org.apache.cassandra.config.CFMetaData.reload(CFMetaData.java:1167) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> ... 11 common frames omitted >> >> On Node2 we got: >> >> INFO [SharedPool-Worker-1] 2014-11-26 13:37:28,989 >> MigrationManager.java:248 - Create new ColumnFamily: >> org.apache.cassandra.config.CFMetaData@16d0bc0d[cfId= >> fbd275c0-7568-11e4-b9ea-3934eddce895,ksName=myplayground,cfName=test_ >> table, >> INFO [MigrationStage:1] 2014-11-26 13:37:29,539 DefsTables.java:373 - >> Loading org.apache.cassandra.config.CFMetaData@3777e24b[cfId= >> fbd24eb0-7568-11e4-bd04-b3ae3abaeff4,ksName=myplayground,cfName=test_ >> table, >> INFO [MigrationStage:1] 2014-11-26 13:37:29,541 >> ColumnFamilyStore.java:284 - Initializing myplayground.test_table >> ERROR [SharedPool-Worker-1] 2014-11-26 13:37:29,984 QueryMessage.java:130 >> - Unexpected error during query >> java.lang.RuntimeException: java.util.concurrent.ExecutionException: >> java.lang.RuntimeException: >> org.apache.cassandra.exceptions.ConfigurationException: >> Column family ID mismatch ( >> found fbd275c0-7568-11e4-b9ea-3934eddce895; expected >> fbd24eb0-7568-11e4-bd04-b3ae3abaeff4) >> at >> org.apache.cassandra.utils.FBUtilities.waitOnFuture(FBUtilities.java:397) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at >> org.apache.cassandra.service.MigrationManager.announce(MigrationManager.java:374) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at org.apache.cassandra.service.MigrationManager. >> announceNewColumnFamily(MigrationManager.java:249) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at org.apache.cassandra.cql3.statements.CreateTableStatement. >> announceMigration(CreateTableStatement.java:114) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at org.apache.cassandra.cql3.statements.SchemaAlteringStatement. >> execute(SchemaAlteringStatement.java:80) ~[apache-cassandra-2.1.1.jar: >> 2.1.1] >> at >> org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:226) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at >> org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:248) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at >> org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMessage.java:118) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at >> org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:439) >> [apache-cassandra-2.1.1.jar:2.1.1] >> at >> org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:335) >> [apache-cassandra-2.1.1.jar:2.1.1] >> at io.netty.channel.SimpleChannelInboundHandler.channelRead( >> SimpleChannelInboundHandler.java:105) [netty-all-4.0.23.Final.jar:4. >> 0.23.Final] >> at io.netty.channel.AbstractChannelHandlerContext. >> invokeChannelRead(AbstractChannelHandlerContext.java:333) >> [netty-all-4.0.23.Final.jar:4.0.23.Final] >> at io.netty.channel.AbstractChannelHandlerContext.access$700( >> AbstractChannelHandlerContext.java:32) [netty-all-4.0.23.Final.jar:4. >> 0.23.Final] >> at io.netty.channel.AbstractChannelHandlerContext$8.run( >> AbstractChannelHandlerContext.java:324) [netty-all-4.0.23.Final.jar:4. >> 0.23.Final] >> at >> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) >> [na:1.8.0_25] >> at org.apache.cassandra.concurrent.AbstractTracingAwareExecutorSe >> rvice$FutureTask.run(AbstractTracingAwareExecutorService.java:164) >> [apache-cassandra-2.1.1.jar:2.1.1] >> at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) >> [apache-cassandra-2.1.1.jar:2.1.1] >> at java.lang.Thread.run(Thread.java:745) [na:1.8.0_25] >> Caused by: java.util.concurrent.ExecutionException: >> java.lang.RuntimeException: >> org.apache.cassandra.exceptions.ConfigurationException: >> Column family ID mismatch (found fbd275c0-7568-11e4-b9ea-3934eddce895; >> expected fbd24eb0-7568-11e4-bd04-b3ae3abaeff4) >> at java.util.concurrent.FutureTask.report(FutureTask.java:122) >> ~[na:1.8.0_25] >> at java.util.concurrent.FutureTask.get(FutureTask.java:192) >> ~[na:1.8.0_25] >> at >> org.apache.cassandra.utils.FBUtilities.waitOnFuture(FBUtilities.java:393) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> ... 17 common frames omitted >> Caused by: java.lang.RuntimeException: >> org.apache.cassandra.exceptions.ConfigurationException: >> Column family ID mismatch (found fbd275c0-7568-11e4-b9ea-3934eddce895; >> expected fbd24eb0-7568-11e4-bd04-b3ae3abaeff4) >> at >> org.apache.cassandra.config.CFMetaData.reload(CFMetaData.java:1171) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at >> org.apache.cassandra.db.DefsTables.updateColumnFamily(DefsTables.java:422) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at >> org.apache.cassandra.db.DefsTables.mergeColumnFamilies(DefsTables.java:295) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at >> org.apache.cassandra.db.DefsTables.mergeSchemaInternal(DefsTables.java:194) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at >> org.apache.cassandra.db.DefsTables.mergeSchema(DefsTables.java:166) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at org.apache.cassandra.service.MigrationManager$2. >> runMayThrow(MigrationManager.java:393) ~[apache-cassandra-2.1.1.jar: >> 2.1.1] >> at >> org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at >> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) >> [na:1.8.0_25] >> at java.util.concurrent.FutureTask.run(FutureTask.java:266) >> ~[na:1.8.0_25] >> at >> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) >> ~[na:1.8.0_25] >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) >> ~[na:1.8.0_25] >> ... 1 common frames omitted >> Caused by: org.apache.cassandra.exceptions.ConfigurationException: >> Column family ID mismatch (found fbd275c0-7568-11e4-b9ea-3934eddce895; >> expected fbd24eb0-7568-11e4-bd04-b3ae3abaeff4) >> at >> org.apache.cassandra.config.CFMetaData.validateCompatility(CFMetaData.java:1254) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at org.apache.cassandra.config.CFMetaData.apply(CFMetaData.java:1186) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at >> org.apache.cassandra.config.CFMetaData.reload(CFMetaData.java:1167) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> ... 11 common frames omitted >> ERROR [MigrationStage:1] 2014-11-26 13:37:29,984 CassandraDaemon.java:153 >> - Exception in thread Thread[MigrationStage:1,5,main] >> java.lang.RuntimeException: >> org.apache.cassandra.exceptions.ConfigurationException: >> Column family ID mismatch ( >> found fbd275c0-7568-11e4-b9ea-3934eddce895; expected >> fbd24eb0-7568-11e4-bd04-b3ae3abaeff4) >> at >> org.apache.cassandra.config.CFMetaData.reload(CFMetaData.java:1171) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at >> org.apache.cassandra.db.DefsTables.updateColumnFamily(DefsTables.java:422) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at >> org.apache.cassandra.db.DefsTables.mergeColumnFamilies(DefsTables.java:295) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at >> org.apache.cassandra.db.DefsTables.mergeSchemaInternal(DefsTables.java:194) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at >> org.apache.cassandra.db.DefsTables.mergeSchema(DefsTables.java:166) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at org.apache.cassandra.service.MigrationManager$2. >> runMayThrow(MigrationManager.java:393) ~[apache-cassandra-2.1.1.jar: >> 2.1.1] >> at >> org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at >> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) >> ~[na:1.8.0_25] >> at java.util.concurrent.FutureTask.run(FutureTask.java:266) >> ~[na:1.8.0_25] >> at >> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) >> ~[na:1.8.0_25] >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) >> [na:1.8.0_25] >> at java.lang.Thread.run(Thread.java:745) [na:1.8.0_25] >> Caused by: org.apache.cassandra.exceptions.ConfigurationException: >> Column family ID mismatch (found fbd275c0-7568-11e4-b9ea-3934eddce895; >> expected fbd24eb0-7568-11e4-bd04-b3ae3abaeff4) >> at >> org.apache.cassandra.config.CFMetaData.validateCompatility(CFMetaData.java:1254) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at org.apache.cassandra.config.CFMetaData.apply(CFMetaData.java:1186) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at >> org.apache.cassandra.config.CFMetaData.reload(CFMetaData.java:1167) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> ... 11 common frames omitted >> ERROR [SharedPool-Worker-1] 2014-11-26 13:37:29,985 ErrorMessage.java:243 >> - Unexpected exception during request >> java.lang.RuntimeException: java.util.concurrent.ExecutionException: >> java.lang.RuntimeException: >> org.apache.cassandra.exceptions.ConfigurationException: >> Column family ID mismatch ( >> found fbd275c0-7568-11e4-b9ea-3934eddce895; expected >> fbd24eb0-7568-11e4-bd04-b3ae3abaeff4) >> at >> org.apache.cassandra.utils.FBUtilities.waitOnFuture(FBUtilities.java:397) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at >> org.apache.cassandra.service.MigrationManager.announce(MigrationManager.java:374) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at org.apache.cassandra.service.MigrationManager. >> announceNewColumnFamily(MigrationManager.java:249) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at org.apache.cassandra.cql3.statements.CreateTableStatement. >> announceMigration(CreateTableStatement.java:114) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at org.apache.cassandra.cql3.statements.SchemaAlteringStatement. >> execute(SchemaAlteringStatement.java:80) ~[apache-cassandra-2.1.1.jar: >> 2.1.1] >> at >> org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:226) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at >> org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:248) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at >> org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMessage.java:118) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at >> org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:439) >> [apache-cassandra-2.1.1.jar:2.1.1] >> at >> org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:335) >> [apache-cassandra-2.1.1.jar:2.1.1] >> at io.netty.channel.SimpleChannelInboundHandler.channelRead( >> SimpleChannelInboundHandler.java:105) [netty-all-4.0.23.Final.jar:4. >> 0.23.Final] >> at io.netty.channel.AbstractChannelHandlerContext. >> invokeChannelRead(AbstractChannelHandlerContext.java:333) >> [netty-all-4.0.23.Final.jar:4.0.23.Final] >> at io.netty.channel.AbstractChannelHandlerContext.access$700( >> AbstractChannelHandlerContext.java:32) [netty-all-4.0.23.Final.jar:4. >> 0.23.Final] >> at io.netty.channel.AbstractChannelHandlerContext$8.run( >> AbstractChannelHandlerContext.java:324) [netty-all-4.0.23.Final.jar:4. >> 0.23.Final] >> at >> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) >> [na:1.8.0_25] >> at org.apache.cassandra.concurrent.AbstractTracingAwareExecutorSe >> rvice$FutureTask.run(AbstractTracingAwareExecutorService.java:164) >> [apache-cassandra-2.1.1.jar:2.1.1] >> at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) >> [apache-cassandra-2.1.1.jar:2.1.1] >> at java.lang.Thread.run(Thread.java:745) [na:1.8.0_25] >> Caused by: java.util.concurrent.ExecutionException: >> java.lang.RuntimeException: >> org.apache.cassandra.exceptions.ConfigurationException: >> Column family ID mismatch (found fbd275c0-7568-11e4-b9ea-3934eddce895; >> expected fbd24eb0-7568-11e4-bd04-b3ae3abaeff4) >> at java.util.concurrent.FutureTask.report(FutureTask.java:122) >> ~[na:1.8.0_25] >> at java.util.concurrent.FutureTask.get(FutureTask.java:192) >> ~[na:1.8.0_25] >> at >> org.apache.cassandra.utils.FBUtilities.waitOnFuture(FBUtilities.java:393) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> ... 17 common frames omitted >> Caused by: java.lang.RuntimeException: >> org.apache.cassandra.exceptions.ConfigurationException: >> Column family ID mismatch (found fbd275c0-7568-11e4-b9ea-3934eddce895; >> expected fbd24eb0-7568-11e4-bd04-b3ae3abaeff4) >> at >> org.apache.cassandra.config.CFMetaData.reload(CFMetaData.java:1171) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at >> org.apache.cassandra.db.DefsTables.updateColumnFamily(DefsTables.java:422) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at >> org.apache.cassandra.db.DefsTables.mergeColumnFamilies(DefsTables.java:295) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at >> org.apache.cassandra.db.DefsTables.mergeSchemaInternal(DefsTables.java:194) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at >> org.apache.cassandra.db.DefsTables.mergeSchema(DefsTables.java:166) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at org.apache.cassandra.service.MigrationManager$2. >> runMayThrow(MigrationManager.java:393) ~[apache-cassandra-2.1.1.jar: >> 2.1.1] >> at >> org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at >> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) >> [na:1.8.0_25] >> at java.util.concurrent.FutureTask.run(FutureTask.java:266) >> ~[na:1.8.0_25] >> at >> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) >> ~[na:1.8.0_25] >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) >> ~[na:1.8.0_25] >> ... 1 common frames omitted >> Caused by: org.apache.cassandra.exceptions.ConfigurationException: >> Column family ID mismatch (found fbd275c0-7568-11e4-b9ea-3934eddce895; >> expected fbd24eb0-7568-11e4-bd04-b3ae3abaeff4) >> at >> org.apache.cassandra.config.CFMetaData.validateCompatility(CFMetaData.java:1254) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at org.apache.cassandra.config.CFMetaData.apply(CFMetaData.java:1186) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> at >> org.apache.cassandra.config.CFMetaData.reload(CFMetaData.java:1167) >> ~[apache-cassandra-2.1.1.jar:2.1.1] >> ... 11 common frames omitted >> >> with best regards >> Peter >> >>