[ 
https://issues.apache.org/jira/browse/CASSANDRA-1391?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13189916#comment-13189916
 ] 

Jonathan Ellis commented on CASSANDRA-1391:
-------------------------------------------

Thanks, that helps a lot.

I think we can make life easier for clients dealing with CASSANDRA-2477 if we 
split out the columns into a separate CF, and adjust how we use composites for 
the columnfamilies cf:

{noformat}
schema_keyspaces
----------------
schema_keyspaces
----------------
RowKey: ks
  => (column=durable_writes, value=true, timestamp=1327061028312185000)
  => (column=name, value="ks", timestamp=1327061028312185000)
  => (column=replication_factor, value=0, timestamp=1327061028312185000)
  => (column=strategy_class, 
value="org.apache.cassandra.locator.NetworkTopologyStrategy", 
timestamp=1327061028312185000)
  => (column=strategy_options, value={"datacenter1":"1"}, 
timestamp=1327061028312185000)

schema_columnfamilies
---------------------
RowKey: ks
  => (column=cf:bloom_filter_fp_chance, value=0.0, 
timestamp=1327061105833119000)
  => (column=cf:caching, value="NONE", timestamp=1327061105833119000)
  => (column=cf:column_type, value="Standard", timestamp=1327061105833119000)
  => (column=cf:comment, value="ColumnFamily", timestamp=1327061105833119000)
  => (column=cf:default_validation_class, 
value="org.apache.cassandra.db.marshal.BytesType", 
timestamp=1327061105833119000)
  => (column=cf:gc_grace_seconds, value=864000, timestamp=1327061105833119000)
  => (column=cf:id, value=1000, timestamp=1327061105833119000)
  => (column=cf:key_alias, value="S0VZ", timestamp=1327061105833119000)


schema_columns
--------------
RowKey: ks
  => (column=cf:c:index_name, value=null, timestamp=1327061105833119000)
  => (column=cf:c:index_options, value=null, timestamp=1327061105833119000)
  => (column=cf:c:index_type, value=null, timestamp=1327061105833119000)
  => (column=cf:c:name, value="aGVsbG8=", timestamp=1327061105833119000)
  => (column=cf:c:validation_class, 
value="org.apache.cassandra.db.marshal.AsciiType", 
timestamp=1327061105833119000)

{noformat}

This will be more forwards-compatible with CASSANDRA-2474/CQL 3.0, since these 
correspond to tables having PRIMARY KEY (keyspace, columnfamily) and PRIMARY 
KEY (keyspace, columnfamily, column), respectively.

This also has the side benefit of grouping everything for a single keyspace 
under the same row key, which means it will be a single atomic RowMutation.

I think leaving strategy_options as json is fine.
                
> Allow Concurrent Schema Migrations
> ----------------------------------
>
>                 Key: CASSANDRA-1391
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1391
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>    Affects Versions: 0.7.0
>            Reporter: Stu Hood
>            Assignee: Pavel Yaskevich
>            Priority: Critical
>             Fix For: 1.1
>
>         Attachments: 0001-CASSANDRA-1391-main.patch, 
> 0002-CASSANDRA-1391-fixes.patch, 1391-rebased.txt, CASSANDRA-1391.patch
>
>
> CASSANDRA-1292 fixed multiple migrations started from the same node to 
> properly queue themselves, but it is still possible for migrations initiated 
> on different nodes to conflict and leave the cluster in a bad state. Since 
> the system_add/drop/rename methods are accessible directly from the client 
> API, they should be completely safe for concurrent use.
> It should be possible to allow for most types of concurrent migrations by 
> converting the UUID schema ID into a VersionVectorClock (as provided by 
> CASSANDRA-580).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to