[
https://issues.apache.org/jira/browse/IGNITE-21316?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Roman Puchkovskiy updated IGNITE-21316:
---------------------------------------
Issue Type: Improvement (was: Bug)
> Do schema sync before executing a DDL operation
> -----------------------------------------------
>
> Key: IGNITE-21316
> URL: https://issues.apache.org/jira/browse/IGNITE-21316
> Project: Ignite
> Issue Type: Improvement
> Reporter: Roman Puchkovskiy
> Priority: Major
> Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> When executing an DDL operation on one node and then executing another
> operation (depending on the first operation to finish) on another node, the
> second operation might not see the first operation results.
> For example, if we create a zone via node A, wait for the DDL future to
> complete and then we try to create a table using that new zone via node B,
> the table creation might fail because node B does not see the newly-created
> zone yet.
> This is because the zone creation future only makes us wait for all
> activation timestamp to become non-future on all clocks on the cluster, but
> when this happens, there is no guarantee that all nodes actually received the
> new catalog version.
> To fix this, we need to do a schema sync for timestamp equal to 'now' before
> doing any DDL operation.
> This should probably be done in the DDL handler (but maybe it makes sense to
> do it in the `execute()` method of the CatalogManager).
> An example of a test demonstrating the problem is
> ItRebalanceDistributedTest.testOnLeaderElectedRebalanceRestart(). But this
> test also has another problem: it interacts with the CatalogManager directly.
> If we add the fix above the CatalogManager, the test will have to be fixed to
> do schema sync by hand.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)