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

Dmitry Konstantinov updated CASSANDRA-21370:
--------------------------------------------
    Description: 
Currently we execute DDL statements only one by one, so in case of a complex 
schema deployment (especially for a low resource dev environment) we may spend 
a lot of time to apply it. With TCM it is possible to run schema changes in 
parallel and partially mitigate the issue but still there are downsides for 
this approach:
* we cannot run dependent DDLs in parallel (for example UDT creation and 
creation of another UDT or table which uses it)
* we still process schemas changes one by one and for every schema change we 
flush system schema tables, so in case of slow dev disks it can be quite slow 
in general (it can be partially mitigated by introducing internal batching with 
a limited delay, like Kafka linger.ms, but still it will require to change 
deployment tools to issue DDLs in parallel and do a topology sort of DDL 
statements).

The suggestion is to add support of DDL queries batching, when we can send a 
list of DDL queries in a single request and process them as a single schema 
change transaction.
The current schema management logic already operates with generic schema diffs 
so the main effort is to add support for it on CQL processing/parsing layer 
actually.


  was:
Currently we can execute DDL statements only one by one, so in case of a 
complex schema deployment (especially for a low resource dev environment) we 
may spend a lot of time to apply it. With TCM it is possible to run schema 
changes in parallel and partially mitigate the issue but still there are 
downsides for this approach:
* we cannot run dependent DDLs in parallel (for example UDT creation and 
creation of another UDT or table which uses it)
* we still process schemas changes one by one and for every schema change we 
flush system schema tables, so in case of slow dev disks it can be quite slow 
in general

The suggestion is to add support of DDL queries batching, when we can send a 
list of DDL queries in a single request and process them as a single schema 
change transaction.
The current schema management logic already operates with generic schema diffs 
so the main effort is to add support for it on CQL processing/parsing layer 
actually.



> DDL statements batching
> -----------------------
>
>                 Key: CASSANDRA-21370
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-21370
>             Project: Apache Cassandra
>          Issue Type: New Feature
>          Components: Cluster/Schema, CQL/Interpreter, CQL/Syntax
>            Reporter: Dmitry Konstantinov
>            Priority: Normal
>
> Currently we execute DDL statements only one by one, so in case of a complex 
> schema deployment (especially for a low resource dev environment) we may 
> spend a lot of time to apply it. With TCM it is possible to run schema 
> changes in parallel and partially mitigate the issue but still there are 
> downsides for this approach:
> * we cannot run dependent DDLs in parallel (for example UDT creation and 
> creation of another UDT or table which uses it)
> * we still process schemas changes one by one and for every schema change we 
> flush system schema tables, so in case of slow dev disks it can be quite slow 
> in general (it can be partially mitigated by introducing internal batching 
> with a limited delay, like Kafka linger.ms, but still it will require to 
> change deployment tools to issue DDLs in parallel and do a topology sort of 
> DDL statements).
> The suggestion is to add support of DDL queries batching, when we can send a 
> list of DDL queries in a single request and process them as a single schema 
> change transaction.
> The current schema management logic already operates with generic schema 
> diffs so the main effort is to add support for it on CQL processing/parsing 
> layer actually.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to