[
https://issues.apache.org/jira/browse/CASSANDRA-7679?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14275283#comment-14275283
]
Sylvain Lebresne commented on CASSANDRA-7679:
---------------------------------------------
I'm confuse for 2 reasons:
# You example has only a single schema change, so I fail to see how batching
schema change would have anything to do with it
# That example should *not* fail in multinode clusters with the java driver (it
might fail in other driver, but that's the one you're pointing to) or it's a
bug of the java driver.
bq. the "batching" (allowing multiple schema changes in one request) is not as
important as allowing users know that the schema change was applied in the
cluster
You can already do that by checking for schema agreement (which is what the
java driver does before returning from the {{CREATE TABLE}} statement). So yes,
it's the responsability of your driver to check for schema agreement, but the
reason it's that way are that:
* if we were to do it Cassandra side, we wouldn't have much other way to do it
anyway (at least given the current way schema are handled). So you don't lose
anything by doing it client side.
* doing it client side is more flexible: the client can have a timeout on how
long it waits before giving up on agreement (without needing C* to implement a
new setting) and it can choose between doing that check (being synchronous) or
not doing that check (If being asynchronous is actually ok).
> Batch DDL
> ---------
>
> Key: CASSANDRA-7679
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7679
> Project: Cassandra
> Issue Type: Improvement
> Reporter: Robert Stupp
>
> Just an idea: To improve speed of DDL in clusters with lots of
> Keyspaces/Tables/Columns it might help to collect a bunch of schema changes
> and propagate them as a single bunch of changes.
> Such a DDL batch would
> # execute DDLs locally and collect all mutations
> # broadcast all mutations at once
> # schema agreement
> # return list<SchemaChange> via native protocol to the client
> So {{DefsTables.mergeSchemaInternal}} (which seems to be the expensive part)
> would only execute once per DDL batch on each node.
> DDL batches would not be atomic.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)