[ 
https://issues.apache.org/jira/browse/CASSANDRA-4866?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jonathan Ellis resolved CASSANDRA-4866.
---------------------------------------

    Resolution: Duplicate

bq. Have I misunderstood how the concurrent schema updates work, or is 
simultaneous CF creation not supported?

The latter.  Should be fixed in 1.2.  (CASSANDRA-3794)
                
> ConfigurationException when creating column families simultaneously
> -------------------------------------------------------------------
>
>                 Key: CASSANDRA-4866
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-4866
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 1.1.2
>            Reporter: Richard Low
>
> This reproduces the problem:
> Suppose there are just two nodes A and B.
> * Create two client threads with separate connections.
> * Connect them to A and they both create the same column family foo.
> * One gets ID 1000, the other ID 1001.
> * On the mutation stage, A processes the two CF creations, and asynchronously 
> sends the creation messages to B.
> * Suppose B gets 1001 first, it creates it.
> * A creates 1000
> * B tries to create 1000 and fails (which is OK, we only want one CF)
> * A tries to create 1001 and fails (which is OK, we only want one CF)
> * Errors in the log like 'ConfigurationException: Column family ID mismatch 
> (found 1001; expected 1000)'
> * Inserts, hints and repair now fails because the IDs are not consistent 
> across the cluster.  Inserts fail with 
> 'org.apache.cassandra.db.UnknownColumnFamilyException: Couldn't find 
> cfId=1001'
> There's a few problems here:
> One is that DefsTable.mergeSchema applies the change, then calls 
> mergeColumnFamilies which could throw ConfigurationException.  If 
> ConfigurationException is thrown, the local schema is in an invalid state.  
> The fix for this is to merge before updating the schema system CF.
> The other issue is that there are two unique identifiers for the CF - the 
> name and the ID.  It would be better to have just one to avoid this.  And I 
> think the only safe way of doing this is to use the CF name, since the IDs 
> could be assigned in different orders.
> Have I misunderstood how the concurrent schema updates work, or is 
> simultaneous CF creation not supported?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to