[ https://issues.apache.org/jira/browse/IGNITE-21316?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Roman Puchkovskiy reassigned IGNITE-21316: ------------------------------------------ Assignee: Roman Puchkovskiy > 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 > Assignee: 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)