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