You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by am...@apache.org on 2023/07/21 13:10:26 UTC

[ignite-3] branch ignite-19499 updated (69974dee25 -> 629b2ac681)

This is an automated email from the ASF dual-hosted git repository.

amashenkov pushed a change to branch ignite-19499
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


    omit 69974dee25 Drop dead code.
     new 993a61811c Split catalogVersion into schemaVersion and catalogVersion
     new 629b2ac681 Get rid of ZonesConfig from TableManager.

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (69974dee25)
            \
             N -- N -- N   refs/heads/ignite-19499 (629b2ac681)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../internal/catalog/commands/CatalogUtils.java    |   1 +
 .../descriptors/CatalogTableDescriptor.java        |   8 +
 .../internal/catalog/storage/AlterColumnEntry.java |   1 +
 .../internal/catalog/storage/DropColumnsEntry.java |   1 +
 .../internal/catalog/storage/NewColumnsEntry.java  |   1 +
 .../storage/ItRebalanceDistributedTest.java        |   1 -
 .../runner/app/ItIgniteNodeRestartTest.java        |   1 -
 .../org/apache/ignite/internal/app/IgniteImpl.java |   1 -
 .../internal/schema/CatalogDescriptorUtils.java    |   5 +-
 .../ignite/internal/schema/SchemaManager.java      |  10 +-
 .../apache/ignite/internal/schema/SchemaUtils.java |  11 --
 .../engine/exec/ExecutableTableRegistryImpl.java   |   5 +-
 .../sql/engine/exec/MockedStructuresTest.java      |  10 -
 .../internal/table/distributed/TableManager.java   | 201 ++++++++++++++++-----
 .../table/distributed/TableManagerTest.java        |   8 -
 15 files changed, 176 insertions(+), 89 deletions(-)


[ignite-3] 02/02: Get rid of ZonesConfig from TableManager.

Posted by am...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

amashenkov pushed a commit to branch ignite-19499
in repository https://gitbox.apache.org/repos/asf/ignite-3.git

commit 629b2ac6818ed60896323e512d847762c06c10a5
Author: amashenkov <an...@gmail.com>
AuthorDate: Fri Jul 21 16:09:18 2023 +0300

    Get rid of ZonesConfig from TableManager.
---
 .../storage/ItRebalanceDistributedTest.java        |  1 -
 .../runner/app/ItIgniteNodeRestartTest.java        |  1 -
 .../org/apache/ignite/internal/app/IgniteImpl.java |  1 -
 .../sql/engine/exec/MockedStructuresTest.java      |  5 --
 .../internal/table/distributed/TableManager.java   | 59 +++++-----------------
 .../table/distributed/TableManagerTest.java        |  3 --
 6 files changed, 13 insertions(+), 57 deletions(-)

diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/storage/ItRebalanceDistributedTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/storage/ItRebalanceDistributedTest.java
index 0db166eb30..002fea35f8 100644
--- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/storage/ItRebalanceDistributedTest.java
+++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/storage/ItRebalanceDistributedTest.java
@@ -800,7 +800,6 @@ public class ItRebalanceDistributedTest {
                     name,
                     registry,
                     tablesCfg,
-                    zonesCfg,
                     gcConfig,
                     clusterService,
                     raftManager,
diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteNodeRestartTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteNodeRestartTest.java
index 1e3141f6c5..93751c5ee3 100644
--- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteNodeRestartTest.java
+++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteNodeRestartTest.java
@@ -361,7 +361,6 @@ public class ItIgniteNodeRestartTest extends BaseIgniteRestartTest {
                 name,
                 registry,
                 tablesConfig,
-                zonesConfig,
                 gcConfig,
                 clusterSvc,
                 raftMgr,
diff --git a/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java b/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java
index c177c7da43..eb0f8731fb 100644
--- a/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java
+++ b/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java
@@ -525,7 +525,6 @@ public class IgniteImpl implements Ignite {
                 name,
                 registry,
                 tablesConfig,
-                zonesConfig,
                 gcConfig,
                 clusterSvc,
                 raftMgr,
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/MockedStructuresTest.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/MockedStructuresTest.java
index 6bce878f4f..aea8087ad1 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/MockedStructuresTest.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/MockedStructuresTest.java
@@ -30,7 +30,6 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.junit.jupiter.api.Assertions.fail;
 import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.anyLong;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.mock;
@@ -72,9 +71,7 @@ import org.apache.ignite.internal.raft.client.TopologyAwareRaftGroupServiceFacto
 import org.apache.ignite.internal.raft.service.RaftGroupService;
 import org.apache.ignite.internal.replicator.ReplicaManager;
 import org.apache.ignite.internal.replicator.ReplicaService;
-import org.apache.ignite.internal.schema.SchemaDescriptor;
 import org.apache.ignite.internal.schema.SchemaManager;
-import org.apache.ignite.internal.schema.SchemaUtils;
 import org.apache.ignite.internal.schema.configuration.GcConfiguration;
 import org.apache.ignite.internal.schema.configuration.TableView;
 import org.apache.ignite.internal.schema.configuration.TablesConfiguration;
@@ -117,7 +114,6 @@ import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.Mock;
-import org.mockito.MockedStatic;
 import org.mockito.junit.jupiter.MockitoExtension;
 import org.mockito.junit.jupiter.MockitoSettings;
 import org.mockito.quality.Strictness;
@@ -583,7 +579,6 @@ public class MockedStructuresTest extends IgniteAbstractTest {
                 "",
                 revisionUpdater,
                 tblsCfg,
-                dstZnsCfg,
                 gcConfig,
                 cs,
                 rm,
diff --git a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableManager.java b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableManager.java
index 2843dffffb..3278f967ee 100644
--- a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableManager.java
+++ b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableManager.java
@@ -27,13 +27,10 @@ import static java.util.concurrent.CompletableFuture.supplyAsync;
 import static java.util.stream.Collectors.toList;
 import static org.apache.ignite.internal.catalog.CatalogService.DEFAULT_SCHEMA_NAME;
 import static org.apache.ignite.internal.causality.IncrementalVersionedValue.dependingOn;
-import static org.apache.ignite.internal.distributionzones.DistributionZonesUtil.getZoneById;
 import static org.apache.ignite.internal.distributionzones.rebalance.RebalanceUtil.partitionAssignments;
 import static org.apache.ignite.internal.distributionzones.rebalance.RebalanceUtil.tableAssignments;
 import static org.apache.ignite.internal.metastorage.dsl.Operations.put;
-import static org.apache.ignite.internal.schema.CatalogDescriptorUtils.toTableDescriptor;
 import static org.apache.ignite.internal.schema.SchemaManager.INITIAL_SCHEMA_VERSION;
-import static org.apache.ignite.internal.schema.configuration.SchemaConfigurationUtils.findTableView;
 import static org.apache.ignite.internal.util.CollectionUtils.nullOrEmpty;
 import static org.apache.ignite.internal.util.IgniteUtils.inBusyLock;
 import static org.apache.ignite.internal.util.IgniteUtils.shutdownAndAwaitTermination;
@@ -107,8 +104,6 @@ import org.apache.ignite.internal.causality.CompletionListener;
 import org.apache.ignite.internal.causality.IncrementalVersionedValue;
 import org.apache.ignite.internal.cluster.management.ClusterManagementGroupManager;
 import org.apache.ignite.internal.distributionzones.DistributionZoneManager;
-import org.apache.ignite.internal.distributionzones.configuration.DistributionZoneView;
-import org.apache.ignite.internal.distributionzones.configuration.DistributionZonesConfiguration;
 import org.apache.ignite.internal.hlc.HybridClock;
 import org.apache.ignite.internal.hlc.HybridTimestamp;
 import org.apache.ignite.internal.logger.IgniteLogger;
@@ -145,7 +140,6 @@ import org.apache.ignite.internal.schema.configuration.GcConfiguration;
 import org.apache.ignite.internal.schema.configuration.PrimaryKeyView;
 import org.apache.ignite.internal.schema.configuration.TableChange;
 import org.apache.ignite.internal.schema.configuration.TableConfiguration;
-import org.apache.ignite.internal.schema.configuration.TableView;
 import org.apache.ignite.internal.schema.configuration.TablesChange;
 import org.apache.ignite.internal.schema.configuration.TablesConfiguration;
 import org.apache.ignite.internal.schema.configuration.index.TableIndexView;
@@ -245,9 +239,6 @@ public class TableManager extends Producer<TableEvent, TableEventParameters> imp
     /** Tables configuration. */
     private final TablesConfiguration tablesCfg;
 
-    /** Distribution zones configuration. */
-    private final DistributionZonesConfiguration zonesConfig;
-
     /** Garbage collector configuration. */
     private final GcConfiguration gcConfig;
 
@@ -397,7 +388,6 @@ public class TableManager extends Producer<TableEvent, TableEventParameters> imp
      * @param nodeName Node name.
      * @param registry Registry for versioned values.
      * @param tablesCfg Tables configuration.
-     * @param zonesConfig Distribution zones configuration.
      * @param gcConfig Garbage collector configuration.
      * @param raftMgr Raft manager.
      * @param replicaMgr Replica manager.
@@ -417,7 +407,6 @@ public class TableManager extends Producer<TableEvent, TableEventParameters> imp
             String nodeName,
             Consumer<LongFunction<CompletableFuture<?>>> registry,
             TablesConfiguration tablesCfg,
-            DistributionZonesConfiguration zonesConfig,
             GcConfiguration gcConfig,
             ClusterService clusterService,
             RaftManager raftMgr,
@@ -441,7 +430,6 @@ public class TableManager extends Producer<TableEvent, TableEventParameters> imp
             DistributionZoneManager distributionZoneManager
     ) {
         this.tablesCfg = tablesCfg;
-        this.zonesConfig = zonesConfig;
         this.gcConfig = gcConfig;
         this.clusterService = clusterService;
         this.raftMgr = raftMgr;
@@ -1464,15 +1452,13 @@ public class TableManager extends Producer<TableEvent, TableEventParameters> imp
     }
 
     private Set<Assignment> calculateAssignments(TablePartitionId tablePartitionId) {
-        CatalogTableDescriptor tableDescriptor = getTableDescriptor(tablePartitionId.tableId());
-
-        assert tableDescriptor != null : tablePartitionId;
+        int replicas = tableReplicas(tablePartitionId.tableId());
 
         return AffinityUtils.calculateAssignmentForPartition(
                 // TODO: https://issues.apache.org/jira/browse/IGNITE-19425 we must use distribution zone keys here
                 baselineMgr.nodes().stream().map(ClusterNode::name).collect(toList()),
                 tablePartitionId.partitionId(),
-                getZoneDescriptor(tableDescriptor.zoneId()).replicas()
+                replicas
         );
     }
 
@@ -2494,14 +2480,12 @@ public class TableManager extends Producer<TableEvent, TableEventParameters> imp
                                 }
 
                                 try {
-                                    CatalogTableDescriptor tableDescriptor = getTableDescriptor(tableId);
-
-                                    assert tableDescriptor != null : replicaGrpId;
+                                    int replicas = tableReplicas(tableId);
 
                                     return RebalanceUtil.handleReduceChanged(
                                             metaStorageMgr,
                                             baselineMgr.nodes().stream().map(ClusterNode::name).collect(toList()),
-                                            getZoneDescriptor(tableDescriptor.zoneId()).replicas(),
+                                            replicas,
                                             replicaGrpId,
                                             evt
                                     );
@@ -2772,35 +2756,18 @@ public class TableManager extends Producer<TableEvent, TableEventParameters> imp
         return startedTables.get(tableId);
     }
 
-    private @Nullable CatalogTableDescriptor getTableDescriptor(int id) {
-        TableView tableView = findTableView(tablesCfg.value(), id);
+    private int tableReplicas(int tableId) {
+        int version = catalogManager.activeCatalogVersion(Long.MAX_VALUE);
 
-        return tableView == null ? null : toTableDescriptor(tableView);
-    }
+        CatalogTableDescriptor table = catalogManager.table(tableId, version);
 
-    private CatalogZoneDescriptor getZoneDescriptor(int id) {
-        return toZoneDescriptor(getZoneById(zonesConfig, id).value());
-    }
+        assert table != null;
 
-    // TODO: IGNITE-19719 Fix it
-    /**
-     * Converts a distribution zone configuration to a Distribution zone descriptor.
-     *
-     * @param config Distribution zone configuration.
-     */
-    @Deprecated(forRemoval = true)
-    public static CatalogZoneDescriptor toZoneDescriptor(DistributionZoneView config) {
-        return new CatalogZoneDescriptor(
-                config.zoneId(),
-                config.name(),
-                config.partitions(),
-                config.replicas(),
-                config.dataNodesAutoAdjust(),
-                config.dataNodesAutoAdjustScaleUp(),
-                config.dataNodesAutoAdjustScaleDown(),
-                config.filter(),
-                toDataStorageDescriptor(config.dataStorage())
-        );
+        CatalogZoneDescriptor zone = catalogManager.zone(table.zoneId(), version);
+
+        assert zone != null;
+
+        return zone.replicas();
     }
 
     @Deprecated(forRemoval = true)
diff --git a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerTest.java b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerTest.java
index a223eddbf1..c5057c465b 100644
--- a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerTest.java
+++ b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerTest.java
@@ -92,9 +92,7 @@ import org.apache.ignite.internal.raft.client.TopologyAwareRaftGroupServiceFacto
 import org.apache.ignite.internal.raft.service.RaftGroupService;
 import org.apache.ignite.internal.raft.storage.impl.LocalLogStorageFactory;
 import org.apache.ignite.internal.replicator.ReplicaManager;
-import org.apache.ignite.internal.schema.SchemaDescriptor;
 import org.apache.ignite.internal.schema.SchemaManager;
-import org.apache.ignite.internal.schema.SchemaUtils;
 import org.apache.ignite.internal.schema.configuration.ExtendedTableChange;
 import org.apache.ignite.internal.schema.configuration.GcConfiguration;
 import org.apache.ignite.internal.schema.configuration.TableView;
@@ -865,7 +863,6 @@ public class TableManagerTest extends IgniteAbstractTest {
                 "test",
                 revisionUpdater,
                 tblsCfg,
-                distributionZonesConfiguration,
                 gcConfig,
                 clusterService,
                 rm,


[ignite-3] 01/02: Split catalogVersion into schemaVersion and catalogVersion

Posted by am...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

amashenkov pushed a commit to branch ignite-19499
in repository https://gitbox.apache.org/repos/asf/ignite-3.git

commit 993a61811cce37085b70a532ec2756ae8e422634
Author: amashenkov <an...@gmail.com>
AuthorDate: Fri Jul 21 15:48:51 2023 +0300

    Split catalogVersion into schemaVersion and catalogVersion
---
 .../apache/ignite/internal/catalog/commands/CatalogUtils.java |  1 +
 .../internal/catalog/descriptors/CatalogTableDescriptor.java  |  8 ++++++++
 .../ignite/internal/catalog/storage/AlterColumnEntry.java     |  1 +
 .../ignite/internal/catalog/storage/DropColumnsEntry.java     |  1 +
 .../ignite/internal/catalog/storage/NewColumnsEntry.java      |  1 +
 .../apache/ignite/internal/schema/CatalogDescriptorUtils.java |  5 +++--
 .../java/org/apache/ignite/internal/schema/SchemaManager.java | 10 +++++-----
 .../java/org/apache/ignite/internal/schema/SchemaUtils.java   | 11 -----------
 .../internal/sql/engine/exec/ExecutableTableRegistryImpl.java |  5 ++++-
 .../ignite/internal/sql/engine/exec/MockedStructuresTest.java |  5 -----
 .../ignite/internal/table/distributed/TableManager.java       |  2 +-
 .../ignite/internal/table/distributed/TableManagerTest.java   |  5 -----
 12 files changed, 25 insertions(+), 30 deletions(-)

diff --git a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/CatalogUtils.java b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/CatalogUtils.java
index 4243a54b3d..fa918d9e83 100644
--- a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/CatalogUtils.java
+++ b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/CatalogUtils.java
@@ -87,6 +87,7 @@ public class CatalogUtils {
         return new CatalogTableDescriptor(
                 id,
                 params.tableName(),
+                1,
                 zoneId,
                 params.columns().stream().map(CatalogUtils::fromParams).collect(toList()),
                 params.primaryKeyColumns(),
diff --git a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/descriptors/CatalogTableDescriptor.java b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/descriptors/CatalogTableDescriptor.java
index 58a744d74c..e438721f18 100644
--- a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/descriptors/CatalogTableDescriptor.java
+++ b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/descriptors/CatalogTableDescriptor.java
@@ -35,6 +35,7 @@ import org.jetbrains.annotations.Nullable;
 public class CatalogTableDescriptor extends CatalogObjectDescriptor {
     private static final long serialVersionUID = -2021394971104316570L;
 
+    private final int version;
     private final int zoneId;
 
     private final List<CatalogTableColumnDescriptor> columns;
@@ -49,6 +50,7 @@ public class CatalogTableDescriptor extends CatalogObjectDescriptor {
      *
      * @param id Table id.
      * @param name Table name.
+     * @param version Table descriptor version.
      * @param zoneId Distribution zone ID.
      * @param columns Table column descriptors.
      * @param pkCols Primary key column names.
@@ -57,6 +59,7 @@ public class CatalogTableDescriptor extends CatalogObjectDescriptor {
     public CatalogTableDescriptor(
             int id,
             String name,
+            int version,
             int zoneId,
             List<CatalogTableColumnDescriptor> columns,
             List<String> pkCols,
@@ -64,6 +67,7 @@ public class CatalogTableDescriptor extends CatalogObjectDescriptor {
     ) {
         super(id, Type.TABLE, name);
 
+        this.version = version;
         this.zoneId = zoneId;
         this.columns = Objects.requireNonNull(columns, "No columns defined.");
         primaryKeyColumns = Objects.requireNonNull(pkCols, "No primary key columns.");
@@ -85,6 +89,10 @@ public class CatalogTableDescriptor extends CatalogObjectDescriptor {
         return columnsMap.get(columnName);
     }
 
+    public int version() {
+        return version;
+    }
+
     public int zoneId() {
         return zoneId;
     }
diff --git a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/AlterColumnEntry.java b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/AlterColumnEntry.java
index 910a363d81..b2e7a11ada 100644
--- a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/AlterColumnEntry.java
+++ b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/AlterColumnEntry.java
@@ -91,6 +91,7 @@ public class AlterColumnEntry implements UpdateEntry, Fireable {
                                         : new CatalogTableDescriptor(
                                                 table.id(),
                                                 table.name(),
+                                                table.version() + 1,
                                                 table.zoneId(),
                                                 table.columns().stream()
                                                         .map(source -> source.name().equals(column.name()) ? column : source)
diff --git a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/DropColumnsEntry.java b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/DropColumnsEntry.java
index e29c250283..562db4122a 100644
--- a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/DropColumnsEntry.java
+++ b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/DropColumnsEntry.java
@@ -88,6 +88,7 @@ public class DropColumnsEntry implements UpdateEntry, Fireable {
                                 .map(table -> table.id() == tableId ? new CatalogTableDescriptor(
                                         table.id(),
                                         table.name(),
+                                        table.version() + 1,
                                         table.zoneId(),
                                         table.columns().stream()
                                                 .filter(col -> !columns.contains(col.name()))
diff --git a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/NewColumnsEntry.java b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/NewColumnsEntry.java
index 1e1aff017e..ca93e4a358 100644
--- a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/NewColumnsEntry.java
+++ b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/NewColumnsEntry.java
@@ -88,6 +88,7 @@ public class NewColumnsEntry implements UpdateEntry, Fireable {
                                 .map(table -> table.id() == tableId ? new CatalogTableDescriptor(
                                         table.id(),
                                         table.name(),
+                                        table.version() + 1,
                                         table.zoneId(),
                                         CollectionUtils.concat(table.columns(), descriptors),
                                         table.primaryKeyColumns(),
diff --git a/modules/schema/src/main/java/org/apache/ignite/internal/schema/CatalogDescriptorUtils.java b/modules/schema/src/main/java/org/apache/ignite/internal/schema/CatalogDescriptorUtils.java
index e400dd1d11..5959b0ddf6 100644
--- a/modules/schema/src/main/java/org/apache/ignite/internal/schema/CatalogDescriptorUtils.java
+++ b/modules/schema/src/main/java/org/apache/ignite/internal/schema/CatalogDescriptorUtils.java
@@ -74,6 +74,7 @@ public class CatalogDescriptorUtils {
         return new CatalogTableDescriptor(
                 config.id(),
                 config.name(),
+                1,
                 config.zoneId(),
                 config.columns().stream().map(CatalogDescriptorUtils::toTableColumnDescriptor).collect(toList()),
                 List.of(primaryKeyConfig.columns()),
@@ -314,7 +315,7 @@ public class CatalogDescriptorUtils {
     /**
      * Converts table descriptor to table schema descriptor.
      */
-    public static SchemaDescriptor convert(int schemaVer, CatalogTableDescriptor tableDescriptor) {
+    public static SchemaDescriptor convert(CatalogTableDescriptor tableDescriptor) {
         List<Column> keyCols = new ArrayList<>(tableDescriptor.primaryKeyColumns().size());
         List<Column> valCols = new ArrayList<>(tableDescriptor.columns().size() - tableDescriptor.primaryKeyColumns().size());
 
@@ -331,7 +332,7 @@ public class CatalogDescriptorUtils {
         }
 
         return new SchemaDescriptor(
-                schemaVer,
+                tableDescriptor.version(),
                 keyCols.toArray(Column[]::new),
                 tableDescriptor.colocationColumns().toArray(String[]::new),
                 valCols.toArray(Column[]::new)
diff --git a/modules/schema/src/main/java/org/apache/ignite/internal/schema/SchemaManager.java b/modules/schema/src/main/java/org/apache/ignite/internal/schema/SchemaManager.java
index d3597ed730..c02dda43c7 100644
--- a/modules/schema/src/main/java/org/apache/ignite/internal/schema/SchemaManager.java
+++ b/modules/schema/src/main/java/org/apache/ignite/internal/schema/SchemaManager.java
@@ -119,10 +119,9 @@ public class SchemaManager extends Producer<SchemaEvent, SchemaEventParameters>
     private CompletableFuture<?> onTableCreated(CreateTableEventParameters evt) {
         CatalogTableDescriptor tableDescriptor = evt.tableDescriptor();
 
-        int newSchemaVersion = INITIAL_SCHEMA_VERSION; // evt.catalogVersion();
         int tblId = tableDescriptor.id();
 
-        SchemaDescriptor newSchema = CatalogDescriptorUtils.convert(newSchemaVersion, tableDescriptor);
+        SchemaDescriptor newSchema = CatalogDescriptorUtils.convert(tableDescriptor);
 
         return onSchemaChange(tblId, newSchema, evt.causalityToken());
     }
@@ -159,7 +158,7 @@ public class SchemaManager extends Producer<SchemaEvent, SchemaEventParameters>
 
             int newSchemaVersion = registriesVv.latest().get(tableDescriptor.id()).lastSchemaVersion() + 1;
 
-            SchemaDescriptor newSchema = CatalogDescriptorUtils.convert(newSchemaVersion, tableDescriptor);
+            SchemaDescriptor newSchema = CatalogDescriptorUtils.convert(tableDescriptor);
 
             return onSchemaChange(tableDescriptor.id(), newSchema, evt.causalityToken());
         } catch (Throwable th) {
@@ -256,9 +255,10 @@ public class SchemaManager extends Producer<SchemaEvent, SchemaEventParameters>
             reg.onSchemaRegistered(schema);
         }
 
-        metastorageMgr.invoke(notExists(key), put(key, serializedSchema), noop());
+        Map<Integer, SchemaRegistryImpl> reg0 = registries;
+        return metastorageMgr.invoke(notExists(key), put(key, serializedSchema), noop()).thenApply(ignore -> reg0);
 
-        return completedFuture(registries);
+//        return completedFuture(registries);
     }
 
     /**
diff --git a/modules/schema/src/main/java/org/apache/ignite/internal/schema/SchemaUtils.java b/modules/schema/src/main/java/org/apache/ignite/internal/schema/SchemaUtils.java
index aa0bbc51b3..ac4cef9e78 100644
--- a/modules/schema/src/main/java/org/apache/ignite/internal/schema/SchemaUtils.java
+++ b/modules/schema/src/main/java/org/apache/ignite/internal/schema/SchemaUtils.java
@@ -28,17 +28,6 @@ import org.apache.ignite.internal.schema.mapping.ColumnMapping;
  * Stateless schema utils that produces helper methods for schema preparation.
  */
 public class SchemaUtils {
-    /**
-     * Creates schema descriptor for the table with specified configuration.
-     *
-     * @param schemaVer Schema version.
-     * @param tableView Table configuration.
-     * @return Schema descriptor.
-     */
-    public static SchemaDescriptor prepareSchemaDescriptor(int schemaVer, TableView tableView) {
-        return ConfigurationToSchemaDescriptorConverter.convert(schemaVer, tableView);
-    }
-
     /**
      * Prepares column mapper.
      *
diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/ExecutableTableRegistryImpl.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/ExecutableTableRegistryImpl.java
index 67c9b5c4fd..b84644d8ad 100644
--- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/ExecutableTableRegistryImpl.java
+++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/ExecutableTableRegistryImpl.java
@@ -20,6 +20,7 @@ package org.apache.ignite.internal.sql.engine.exec;
 import com.github.benmanes.caffeine.cache.Caffeine;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ConcurrentMap;
+import org.apache.ignite.internal.catalog.descriptors.CatalogTableDescriptor;
 import org.apache.ignite.internal.hlc.HybridClock;
 import org.apache.ignite.internal.replicator.ReplicaService;
 import org.apache.ignite.internal.schema.SchemaDescriptor;
@@ -76,10 +77,12 @@ public class ExecutableTableRegistryImpl implements ExecutableTableRegistry, Sch
     private CompletableFuture<ExecutableTable> loadTable(int schemaVersion, int tableId, TableDescriptor tableDescriptor) {
         return tableManager.tableAsync(tableId)
                 .thenApply(table -> {
+                    CatalogTableDescriptor descriptor = tableManager.catalogManager.table(tableId, schemaVersion);
+
                     InternalTable internalTable = table.internalTable();
                     SchemaRegistry schemaRegistry = schemaManager.schemaRegistry(tableId);
 
-                    SchemaDescriptor schemaDescriptor = schemaRegistry.schema(schemaVersion);
+                    SchemaDescriptor schemaDescriptor = schemaRegistry.schema(descriptor.version());
                     TableRowConverter rowConverter = new TableRowConverterImpl(schemaRegistry, schemaDescriptor, tableDescriptor);
                     ScannableTable scannableTable = new ScannableTableImpl(internalTable, rowConverter, tableDescriptor);
 
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/MockedStructuresTest.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/MockedStructuresTest.java
index 26a355f767..6bce878f4f 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/MockedStructuresTest.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/MockedStructuresTest.java
@@ -557,11 +557,6 @@ public class MockedStructuresTest extends IgniteAbstractTest {
                 new NetworkAddress("localhost", 47500)
         ));
 
-        try (MockedStatic<SchemaUtils> schemaServiceMock = mockStatic(SchemaUtils.class)) {
-            schemaServiceMock.when(() -> SchemaUtils.prepareSchemaDescriptor(anyInt(), any()))
-                    .thenReturn(mock(SchemaDescriptor.class));
-        }
-
         when(cs.messagingService()).thenAnswer(invocation -> {
             MessagingService ret = mock(MessagingService.class);
 
diff --git a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableManager.java b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableManager.java
index f8349d7795..2843dffffb 100644
--- a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableManager.java
+++ b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableManager.java
@@ -329,7 +329,7 @@ public class TableManager extends Producer<TableEvent, TableEventParameters> imp
     private final SchemaManager schemaManager;
 
     /** Catalog manager. */
-    private final CatalogManager catalogManager;
+    public final CatalogManager catalogManager;
 
     private final LogStorageFactoryCreator volatileLogStorageFactoryCreator;
 
diff --git a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerTest.java b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerTest.java
index 7fc676d9b3..a223eddbf1 100644
--- a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerTest.java
+++ b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerTest.java
@@ -775,11 +775,6 @@ public class TableManagerTest extends IgniteAbstractTest {
                 new NetworkAddress("localhost", 47500)
         ));
 
-        try (MockedStatic<SchemaUtils> schemaServiceMock = mockStatic(SchemaUtils.class)) {
-            schemaServiceMock.when(() -> SchemaUtils.prepareSchemaDescriptor(anyInt(), any()))
-                    .thenReturn(mock(SchemaDescriptor.class));
-        }
-
         try (MockedStatic<AffinityUtils> affinityServiceMock = mockStatic(AffinityUtils.class)) {
             ArrayList<List<ClusterNode>> assignment = new ArrayList<>(PARTITIONS);