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/01/26 10:41:18 UTC

[ignite-3] branch ignite-18426 created (now ec24ca8089)

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

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


      at ec24ca8089 Add zoneId to the table.

This branch includes the following new commits:

     new ec24ca8089 Add zoneId to the table.

The 1 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.



[ignite-3] 01/01: Add zoneId to the table.

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

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

commit ec24ca80894f8d52b068638eaedacbad5f073058
Author: amashenkov <an...@gmail.com>
AuthorDate: Thu Jan 26 13:41:07 2023 +0300

    Add zoneId to the table.
---
 .../org/apache/ignite/client/fakes/FakeInternalTable.java   |  6 ++++++
 .../org/apache/ignite/internal/sql/engine/ItSetOpTest.java  |  1 -
 .../internal/sql/engine/schema/SqlSchemaManagerImpl.java    |  3 +--
 .../sql/engine/exec/rel/TableScanNodeExecutionTest.java     |  1 +
 .../apache/ignite/distributed/ItTablePersistenceTest.java   |  3 +++
 .../ignite/distributed/ItTxDistributedTestSingleNode.java   |  2 ++
 .../org/apache/ignite/internal/table/ItColocationTest.java  |  1 +
 .../org/apache/ignite/internal/table/InternalTable.java     |  7 +++++++
 .../ignite/internal/table/distributed/TableManager.java     |  4 +++-
 .../table/distributed/storage/InternalTableImpl.java        | 13 +++++++++++++
 .../ignite/internal/table/impl/DummyInternalTableImpl.java  |  9 ++++++++-
 11 files changed, 45 insertions(+), 5 deletions(-)

diff --git a/modules/client/src/test/java/org/apache/ignite/client/fakes/FakeInternalTable.java b/modules/client/src/test/java/org/apache/ignite/client/fakes/FakeInternalTable.java
index 24551df462..78a99200e9 100644
--- a/modules/client/src/test/java/org/apache/ignite/client/fakes/FakeInternalTable.java
+++ b/modules/client/src/test/java/org/apache/ignite/client/fakes/FakeInternalTable.java
@@ -94,6 +94,12 @@ public class FakeInternalTable implements InternalTable {
         return tableName;
     }
 
+    /** {@inheritDoc} */
+    @Override
+    public int zoneId() {
+        return 0;
+    }
+
     /** {@inheritDoc} */
     @Override
     public CompletableFuture<BinaryRow> get(BinaryRowEx keyRow, @Nullable InternalTransaction tx) {
diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItSetOpTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItSetOpTest.java
index f7f4b94168..03e542682a 100644
--- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItSetOpTest.java
+++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItSetOpTest.java
@@ -186,7 +186,6 @@ public class ItSetOpTest extends AbstractBasicIntegrationTest {
         assertEquals(2, countIf(rows, r -> r.get(0).equals("Igor1")));
     }
 
-    @Disabled("https://issues.apache.org/jira/browse/IGNITE-18426")
     @Test
     public void testSetOpColocated() {
         sql("CREATE TABLE emp(empid INTEGER, deptid INTEGER, name VARCHAR, PRIMARY KEY(empid, deptid)) COLOCATE BY (deptid)");
diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/schema/SqlSchemaManagerImpl.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/schema/SqlSchemaManagerImpl.java
index b62f10b456..567a7d726b 100644
--- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/schema/SqlSchemaManagerImpl.java
+++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/schema/SqlSchemaManagerImpl.java
@@ -366,8 +366,7 @@ public class SqlSchemaManagerImpl implements SqlSchemaManager {
             colocationColumns.add(column.columnOrder());
         }
 
-        // TODO Use the actual zone ID after implementing https://issues.apache.org/jira/browse/IGNITE-18426.
-        IgniteDistribution distribution = IgniteDistributions.affinity(colocationColumns, table.tableId(), table.tableId());
+        IgniteDistribution distribution = IgniteDistributions.affinity(colocationColumns, table.tableId(), table.internalTable().zoneId());
 
         return new IgniteTableImpl(
                 new TableDescriptorImpl(colDescriptors, distribution),
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/rel/TableScanNodeExecutionTest.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/rel/TableScanNodeExecutionTest.java
index d927e2e61a..4c0eefc2bc 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/rel/TableScanNodeExecutionTest.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/rel/TableScanNodeExecutionTest.java
@@ -147,6 +147,7 @@ public class TableScanNodeExecutionTest extends AbstractExecutionTest {
             super(
                     "test",
                     UUID.randomUUID(),
+                    0,
                     Int2ObjectMaps.singleton(0, mock(RaftGroupService.class)),
                     PART_CNT,
                     addr -> mock(ClusterNode.class),
diff --git a/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTablePersistenceTest.java b/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTablePersistenceTest.java
index d1f6067e07..ffe3e5e837 100644
--- a/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTablePersistenceTest.java
+++ b/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTablePersistenceTest.java
@@ -133,6 +133,7 @@ public class ItTablePersistenceTest extends ItAbstractListenerSnapshotTest<Parti
         var table = new InternalTableImpl(
                 "table",
                 UUID.randomUUID(),
+                0,
                 Int2ObjectMaps.singleton(0, service),
                 1,
                 consistentIdToNode,
@@ -159,6 +160,7 @@ public class ItTablePersistenceTest extends ItAbstractListenerSnapshotTest<Parti
         var table = new InternalTableImpl(
                 "table",
                 UUID.randomUUID(),
+                0,
                 Int2ObjectMaps.singleton(0, service),
                 1,
                 consistentIdToNode,
@@ -191,6 +193,7 @@ public class ItTablePersistenceTest extends ItAbstractListenerSnapshotTest<Parti
         var table = new InternalTableImpl(
                 "table",
                 UUID.randomUUID(),
+                0,
                 Int2ObjectMaps.singleton(0, service),
                 1,
                 consistentIdToNode,
diff --git a/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTxDistributedTestSingleNode.java b/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTxDistributedTestSingleNode.java
index 10d188c446..1c1b4a71ed 100644
--- a/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTxDistributedTestSingleNode.java
+++ b/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTxDistributedTestSingleNode.java
@@ -329,6 +329,7 @@ public class ItTxDistributedTestSingleNode extends TxAbstractTest {
         this.accounts = new TableImpl(new InternalTableImpl(
                 accountsName,
                 accTblId,
+                0,
                 accRaftClients,
                 1,
                 consistentIdToNode,
@@ -342,6 +343,7 @@ public class ItTxDistributedTestSingleNode extends TxAbstractTest {
         this.customers = new TableImpl(new InternalTableImpl(
                 customersName,
                 custTblId,
+                0,
                 custRaftClients,
                 1,
                 consistentIdToNode,
diff --git a/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/ItColocationTest.java b/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/ItColocationTest.java
index ec3ac28631..c16359896d 100644
--- a/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/ItColocationTest.java
+++ b/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/ItColocationTest.java
@@ -223,6 +223,7 @@ public class ItColocationTest {
         INT_TABLE = new InternalTableImpl(
                 "PUBLIC.TEST",
                 tblId,
+                0,
                 partRafts,
                 PARTS,
                 name -> clusterNode,
diff --git a/modules/table/src/main/java/org/apache/ignite/internal/table/InternalTable.java b/modules/table/src/main/java/org/apache/ignite/internal/table/InternalTable.java
index cb248a0cf7..eedb13f82f 100644
--- a/modules/table/src/main/java/org/apache/ignite/internal/table/InternalTable.java
+++ b/modules/table/src/main/java/org/apache/ignite/internal/table/InternalTable.java
@@ -65,6 +65,13 @@ public interface InternalTable extends ManuallyCloseable {
      */
     String name();
 
+    /**
+     * Gets distribution zone id for the table.
+     *
+     * @return Distribution zone id as UUID.
+     */
+    int zoneId();
+
     /**
      * Asynchronously gets a row with same key columns values as given one from the table.
      *
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 bb02f0016a..f288dbea10 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
@@ -1071,7 +1071,9 @@ public class TableManager extends Producer<TableEvent, TableEventParameters> imp
         MvTableStorage tableStorage = createTableStorage(tableCfg, tablesCfg);
         TxStateTableStorage txStateStorage = createTxStateTableStorage(tableCfg);
 
-        InternalTableImpl internalTable = new InternalTableImpl(name, tblId, new Int2ObjectOpenHashMap<>(partitions),
+        int zoneId = tableCfg.zoneId().value();
+
+        InternalTableImpl internalTable = new InternalTableImpl(name, tblId, zoneId, new Int2ObjectOpenHashMap<>(partitions),
                 partitions, clusterNodeResolver, txManager, tableStorage, txStateStorage, replicaSvc, clock);
 
         // TODO: IGNITE-16288 directIndexIds should use async configuration API
diff --git a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/storage/InternalTableImpl.java b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/storage/InternalTableImpl.java
index b0d1108257..03099f8160 100644
--- a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/storage/InternalTableImpl.java
+++ b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/storage/InternalTableImpl.java
@@ -103,6 +103,9 @@ public class InternalTableImpl implements InternalTable {
     /** Table identifier. */
     private final UUID tableId;
 
+    /** Distribution zone identifier. */
+    private final int zoneId;
+
     /** Resolver that resolves a node consistent ID to cluster node. */
     private final Function<String, ClusterNode> clusterNodeResolver;
 
@@ -132,8 +135,10 @@ public class InternalTableImpl implements InternalTable {
      *
      * @param tableName Table name.
      * @param tableId Table id.
+     * @param zoneId Distribution zone id.
      * @param partMap Map partition id to raft group.
      * @param partitions Partitions.
+     * @param clusterNodeResolver Node resolver.
      * @param txManager Transaction manager.
      * @param tableStorage Table storage.
      * @param txStateStorage Transaction state storage.
@@ -143,6 +148,7 @@ public class InternalTableImpl implements InternalTable {
     public InternalTableImpl(
             String tableName,
             UUID tableId,
+            int zoneId,
             Int2ObjectMap<RaftGroupService> partMap,
             int partitions,
             Function<String, ClusterNode> clusterNodeResolver,
@@ -154,6 +160,7 @@ public class InternalTableImpl implements InternalTable {
     ) {
         this.tableName = tableName;
         this.tableId = tableId;
+        this.zoneId = zoneId;
         this.partitionMap = partMap;
         this.partitions = partitions;
         this.clusterNodeResolver = clusterNodeResolver;
@@ -183,6 +190,12 @@ public class InternalTableImpl implements InternalTable {
         return tableId;
     }
 
+    /** {@inheritDoc} */
+    @Override
+    public int zoneId() {
+        return zoneId;
+    }
+
     /** {@inheritDoc} */
     @Override
     public String name() {
diff --git a/modules/table/src/testFixtures/java/org/apache/ignite/internal/table/impl/DummyInternalTableImpl.java b/modules/table/src/testFixtures/java/org/apache/ignite/internal/table/impl/DummyInternalTableImpl.java
index 6e82ef55e6..eb27b6f6a7 100644
--- a/modules/table/src/testFixtures/java/org/apache/ignite/internal/table/impl/DummyInternalTableImpl.java
+++ b/modules/table/src/testFixtures/java/org/apache/ignite/internal/table/impl/DummyInternalTableImpl.java
@@ -164,6 +164,7 @@ public class DummyInternalTableImpl extends InternalTableImpl {
         super(
                 "test",
                 UUID.randomUUID(),
+                0,
                 Int2ObjectMaps.singleton(0, mock(RaftGroupService.class)),
                 1,
                 name -> mock(ClusterNode.class),
@@ -312,10 +313,16 @@ public class DummyInternalTableImpl extends InternalTableImpl {
 
     /** {@inheritDoc} */
     @Override
-    public @NotNull String name() {
+    public String name() {
         return null;
     }
 
+    /** {@inheritDoc} */
+    @Override
+    public int zoneId() {
+        return 0;
+    }
+
     /** {@inheritDoc} */
     @Override
     public CompletableFuture<BinaryRow> get(BinaryRowEx keyRow, InternalTransaction tx) {