I would suggest that dynamic table creation is, in general, not a great idea, 
regardless of the database. I would seriously consider altering your approach 
to use a fixed set of tables.

On Nov 28, 2014, at 1:53 AM, Marcus Olsson 
<marcus.ols...@ericsson.com<mailto:marcus.ols...@ericsson.com>> wrote:

Hi,

We encountered the same problem and created a JIRA for it: 
https://issues.apache.org/jira/browse/CASSANDRA-8387 .

/Marcus O

On 11/27/2014 04:19 PM, DuyHai Doan 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<mailto: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.AbstractTracingAwareExecutorService$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.AbstractTracingAwareExecutorService$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



Reply via email to