This is an automated email from the ASF dual-hosted git repository. zstan pushed a commit to branch ignite-26069 in repository https://gitbox.apache.org/repos/asf/ignite-3.git
commit f467ec858424e5c0fcd0bad7c9cf318d3a16b3a8 Author: zstan <[email protected]> AuthorDate: Mon Oct 6 14:30:58 2025 +0300 interm --- .../network/message/GetEstimatedSizeWithLastModifiedTsRequest.java | 3 +++ .../ignite/internal/sql/engine/statistic/ItStatisticTest.java | 4 ++-- .../internal/sql/engine/statistic/SqlStatisticManagerImpl.java | 2 ++ .../ignite/internal/sql/engine/statistic/StatisticAggregator.java | 6 ++++-- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/network/message/GetEstimatedSizeWithLastModifiedTsRequest.java b/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/network/message/GetEstimatedSizeWithLastModifiedTsRequest.java index 3546beadad5..db964733443 100644 --- a/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/network/message/GetEstimatedSizeWithLastModifiedTsRequest.java +++ b/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/network/message/GetEstimatedSizeWithLastModifiedTsRequest.java @@ -25,4 +25,7 @@ import org.apache.ignite.internal.partition.replicator.network.PartitionReplicat public interface GetEstimatedSizeWithLastModifiedTsRequest extends NetworkMessage { /** ID of the table. */ int tableId(); + + /** Partition ID. */ + int partitionId(); } diff --git a/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/engine/statistic/ItStatisticTest.java b/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/engine/statistic/ItStatisticTest.java index 258f87c0105..3c18899bbd5 100644 --- a/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/engine/statistic/ItStatisticTest.java +++ b/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/engine/statistic/ItStatisticTest.java @@ -61,12 +61,12 @@ public class ItStatisticTest extends BaseSqlIntegrationTest { } @Override - protected int initialNodes() { + protected int initialNodes() { // change !!! return 1; } @Test - public void testTableSizeUpdates() { + public void testTableSizeUpdates() throws InterruptedException { long milestone1 = computeNextMilestone(0, DEFAULT_STALE_ROWS_FRACTION, DEFAULT_MIN_STALE_ROWS_COUNT); String selectQuery = "select * from t"; diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/statistic/SqlStatisticManagerImpl.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/statistic/SqlStatisticManagerImpl.java index a342485080a..e409945d19a 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/statistic/SqlStatisticManagerImpl.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/statistic/SqlStatisticManagerImpl.java @@ -143,6 +143,8 @@ public class SqlStatisticManagerImpl implements SqlStatisticManager { continue; } + System.err.println("!!!call estimatedSizeWithLastUpdate " + tableView.internalTable().tableId()); + CompletableFuture<Void> updateResult = statAggregator.estimatedSizeWithLastUpdate(tableView.internalTable()) .thenAccept(res -> { // the table can be concurrently dropped and we shouldn't put new value in this case. diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/statistic/StatisticAggregator.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/statistic/StatisticAggregator.java index 3dc87277285..10be0b2fe31 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/statistic/StatisticAggregator.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/statistic/StatisticAggregator.java @@ -2,6 +2,8 @@ package org.apache.ignite.internal.sql.engine.statistic; import static java.util.concurrent.CompletableFuture.allOf; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; +import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import it.unimi.dsi.fastutil.longs.LongObjectImmutablePair; import java.util.HashSet; import java.util.Set; @@ -48,14 +50,14 @@ public class StatisticAggregator { int partitions = table.partitions(); - Set<String> peers = new HashSet<>(); + Int2ObjectMap<String> peers = new Int2ObjectOpenHashMap<>(); for (int p = 0; p < partitions; ++p) { ReplicaMeta repl = placementDriver.getCurrentPrimaryReplica( table.targetReplicationGroupId(p), currentClock.get()); if (repl != null) { - peers.add(repl.getLeaseholder()); + peers.put(p, repl.getLeaseholder()); } else { //assert false; // !!! delete }
