cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chris Herron (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-5025) Schema push/pull race
Date Tue, 04 Dec 2012 22:48:58 GMT


Chris Herron commented on CASSANDRA-5025:

For patch 5025.txt:

A single schema migration will result in N (num nodes) gossips of the new schema version (as
before). Through MigrationManager.onChange()->rectifySchema(), those will each result in
a delayed comparison of value 'theirVersion', but that value is now one minute old.

Further, if some new schema migration happens to be underway, the same effect of redundant
repeat RowMutations will occur.

Schema migrations tend to happen in bursts - so this patch seems like it might reduce the
problem but not eliminate it.

Would it not be better to have DefsTable.mergeSchema call Schema.instance.updateVersion instead
of Schema.instance.updateVersionAndAnnounce and then deal with temporarily unavailable nodes
by doing a MigrationManager.passiveAnnounce(version) if/when we see them come back online?
> Schema push/pull race
> ---------------------
>                 Key: CASSANDRA-5025
>                 URL:
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 1.1.0
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>             Fix For: 1.1.8
>         Attachments: 5025.txt
> When a schema change is made, the coordinator pushes the delta to the other nodes in
the cluster.  This is more efficient than sending the entire schema.  But the coordinator
also announces the new schema version, so the other nodes' reception of the new version races
with processing the delta, and usually seeing the new schema wins.  So the other nodes also
issue a pull to the coordinator for the entire schema.
> Thus, schema changes tend to become O(n) in the number of KS and CF present.

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:

View raw message