Iurii Gerzhedovich created IGNITE-22501:
-------------------------------------------
Summary: SQL. Batching DDL statement for scripts
Key: IGNITE-22501
URL: https://issues.apache.org/jira/browse/IGNITE-22501
Project: Ignite
Issue Type: Improvement
Components: sql
Reporter: Iurii Gerzhedovich
>From an architectural perspective, AI3 has many waits for any DDL statements
>due to need to have strong guarantees. It leads to a significant time of
>execution initialization script of a database containing tens or tons of DDL (
>CREATE TABLE, CREATE INDEX ...) statements.
To increase of performance such scripts we could do batch operations with a
some reordering.
We need to understand not all operations can be reordered. For example CREATE
INDEX can't be executed earlier than CREATING TABLE, DROP TABLE can't be
reordered with any other operation on the same table.
As the first step, we can go with very simple optimization, but it should give
as good boost for most cases. Let's batch all CREATE TABLE 's from a script
while we meets only CREATE TABLE and CREATE INDEX statements and execute as
first batch. The second batch will be CREATE INDEX statements which we meet
during collecting the first batch. We can continuously repeat the operation
as we start meet CREATE INDEX and CREATE TABLE statements.
The proposed solution has one important consequences, which need to be
reflected in the documentation. Operations can be reordered and any separated
operations can be finished with an error, so after the user receives an error
they can't be sure which part of the script was applied.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)