(ignite-3) branch main updated: IGNITE-21486 Pass node name to NamedThreadFactory where possible (#3181)
This is an automated email from the ASF dual-hosted git repository. tkalkirill pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/ignite-3.git The following commit(s) were added to refs/heads/main by this push: new d56c817421 IGNITE-21486 Pass node name to NamedThreadFactory where possible (#3181) d56c817421 is described below commit d56c8174219b0579fd0d8904928b207e8bb1475d Author: Roman Puchkovskiy AuthorDate: Thu Feb 8 10:01:15 2024 +0400 IGNITE-21486 Pass node name to NamedThreadFactory where possible (#3181) --- .../apache/ignite/internal/catalog/ClockWaiter.java | 4 ++-- .../management/ClusterManagementGroupManager.java| 7 +-- .../internal/deployunit/DeploymentManagerImpl.java | 2 +- .../internal/deployunit/FileDeployerService.java | 11 +-- .../metastore/NodeStatusWatchListener.java | 7 +-- .../ignite/deployment/FileDeployerServiceTest.java | 2 +- .../compute/loader/JobContextManagerTest.java| 2 +- ...IgniteDistributionZoneManagerNodeRestartTest.java | 2 +- .../internal/raft/server/impl/JraftServerImpl.java | 4 ++-- .../raft/storage/impl/DefaultLogStorageFactory.java | 13 - .../impl/VolatileLogStorageFactoryCreator.java | 4 ++-- .../raft/storage/logit/LogitLogStorageFactory.java | 4 ++-- .../raft/jraft/storage/impl/LogStorageBenchmark.java | 2 +- .../jraft/storage/logit/LogitLogStorageTest.java | 2 +- .../configuration/generator/DefaultsGenerator.java | 2 +- .../ItDistributedConfigurationPropertiesTest.java| 2 +- .../ItDistributedConfigurationStorageTest.java | 2 +- .../internal/runner/app/ItIgniteNodeRestartTest.java | 2 +- .../org/apache/ignite/internal/app/IgniteImpl.java | 7 --- .../storage/DistributedConfigurationStorage.java | 6 -- .../storage/LocalFileConfigurationStorage.java | 20 +--- .../storage/DistributedConfigurationStorageTest.java | 2 +- .../sql/engine/prepare/PrepareServiceImpl.java | 2 +- .../rebalance/ItRebalanceDistributedTest.java| 2 +- .../ignite/internal/table/distributed/gc/MvGc.java | 3 +-- .../snapshot/outgoing/OutgoingSnapshotsManager.java | 16 +++- 26 files changed, 93 insertions(+), 39 deletions(-) diff --git a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/ClockWaiter.java b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/ClockWaiter.java index fbc7f8ec47..25bdf80bb4 100644 --- a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/ClockWaiter.java +++ b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/ClockWaiter.java @@ -88,7 +88,7 @@ public class ClockWaiter implements IgniteComponent { 1, TimeUnit.MINUTES, new LinkedBlockingQueue<>(), -new NamedThreadFactory(nodeName + "-clock-waiter-future-executor", LOG) +NamedThreadFactory.create(nodeName, "clock-waiter-future-executor", LOG) ); } @@ -96,7 +96,7 @@ public class ClockWaiter implements IgniteComponent { public CompletableFuture start() { clock.addUpdateListener(updateListener); -scheduler = Executors.newSingleThreadScheduledExecutor(new NamedThreadFactory(nodeName + "-clock-waiter-scheduler", LOG)); +scheduler = Executors.newSingleThreadScheduledExecutor(NamedThreadFactory.create(nodeName, "clock-waiter-scheduler", LOG)); return nullCompletedFuture(); } diff --git a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/ClusterManagementGroupManager.java b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/ClusterManagementGroupManager.java index 424c0fc578..372ce984fd 100644 --- a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/ClusterManagementGroupManager.java +++ b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/ClusterManagementGroupManager.java @@ -108,8 +108,7 @@ public class ClusterManagementGroupManager implements IgniteComponent { private final CmgMessagesFactory msgFactory = new CmgMessagesFactory(); /** Delayed executor. */ -private final ScheduledExecutorService scheduledExecutor = -Executors.newSingleThreadScheduledExecutor(new NamedThreadFactory("cmg-manager", LOG)); +private final ScheduledExecutorService scheduledExecutor; private final ClusterService clusterService; @@ -152,6 +151,10 @@ public class ClusterManagementGroupManager implements IgniteComponent { this.configuration = configuration; this.localStateStorage = new LocalStateStorage(vault); this.nodeAttributes = nodeAttributes; + +scheduledExecutor = Executors.newSingleThreadScheduledExecutor( +NamedThreadFactory.create(clusterService.nodeName()
(ignite-3) branch main updated: IGNITE-21317 Disable ItRebalanceDistributedTest#testClientsAreUpdatedAfterPendingRebalanceHandled (#3183)
This is an automated email from the ASF dual-hosted git repository. sanpwc pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/ignite-3.git The following commit(s) were added to refs/heads/main by this push: new 60ea39dbdd IGNITE-21317 Disable ItRebalanceDistributedTest#testClientsAreUpdatedAfterPendingRebalanceHandled (#3183) 60ea39dbdd is described below commit 60ea39dbddbd550af00f3bc791422a549ce69caf Author: Alexander Lapin AuthorDate: Wed Feb 7 18:40:45 2024 +0200 IGNITE-21317 Disable ItRebalanceDistributedTest#testClientsAreUpdatedAfterPendingRebalanceHandled (#3183) --- .../org/apache/ignite/internal/rebalance/ItRebalanceDistributedTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/table/src/integrationTest/java/org/apache/ignite/internal/rebalance/ItRebalanceDistributedTest.java b/modules/table/src/integrationTest/java/org/apache/ignite/internal/rebalance/ItRebalanceDistributedTest.java index d9059c0ae9..093355bd88 100644 --- a/modules/table/src/integrationTest/java/org/apache/ignite/internal/rebalance/ItRebalanceDistributedTest.java +++ b/modules/table/src/integrationTest/java/org/apache/ignite/internal/rebalance/ItRebalanceDistributedTest.java @@ -665,6 +665,7 @@ public class ItRebalanceDistributedTest extends BaseIgniteAbstractTest { } @Test +@Disabled("https://issues.apache.org/jira/browse/IGNITE-21317";) void testClientsAreUpdatedAfterPendingRebalanceHandled() throws Exception { Node node = getNode(0);
(ignite-3) branch main updated: IGNITE-21488 Disable thread assertions by default (#3182)
This is an automated email from the ASF dual-hosted git repository. ibessonov pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/ignite-3.git The following commit(s) were added to refs/heads/main by this push: new a46b779688 IGNITE-21488 Disable thread assertions by default (#3182) a46b779688 is described below commit a46b77968844d589d163ac2d06e32d8c00f41b13 Author: Roman Puchkovskiy AuthorDate: Wed Feb 7 20:38:25 2024 +0400 IGNITE-21488 Disable thread assertions by default (#3182) --- .../main/java/org/apache/ignite/internal/worker/ThreadAssertions.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/workers/src/main/java/org/apache/ignite/internal/worker/ThreadAssertions.java b/modules/workers/src/main/java/org/apache/ignite/internal/worker/ThreadAssertions.java index 64b54c2c35..2b66c4a99f 100644 --- a/modules/workers/src/main/java/org/apache/ignite/internal/worker/ThreadAssertions.java +++ b/modules/workers/src/main/java/org/apache/ignite/internal/worker/ThreadAssertions.java @@ -30,7 +30,7 @@ public class ThreadAssertions { private static final IgniteLogger LOG = Loggers.forClass(ThreadAssertions.class); -private static final boolean ENABLED = Boolean.parseBoolean(System.getProperty(ENABLED_PROPERTY, "true")); +private static final boolean ENABLED = Boolean.parseBoolean(System.getProperty(ENABLED_PROPERTY, "false")); /** * Returns {@code true} if thread assertions are enabled.
(ignite) branch master updated: IGNITE-21368 MVCC code removal from transactional classes (#11203)
This is an automated email from the ASF dual-hosted git repository. av pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/ignite.git The following commit(s) were added to refs/heads/master by this push: new b53bd5549df IGNITE-21368 MVCC code removal from transactional classes (#11203) b53bd5549df is described below commit b53bd5549df38fc9fab80fed5c1a77baa2f864bd Author: Ilya Shishkov AuthorDate: Wed Feb 7 19:25:13 2024 +0300 IGNITE-21368 MVCC code removal from transactional classes (#11203) --- .../processors/cache/GridCacheAdapter.java | 3 - .../GridDistributedTxRemoteAdapter.java| 4 +- .../dht/GridDhtTransactionalCacheAdapter.java | 27 +- .../distributed/dht/GridDhtTxFinishFuture.java | 19 +- .../distributed/dht/GridDhtTxLocalAdapter.java | 10 - .../distributed/dht/GridDhtTxPrepareFuture.java| 11 +- .../dht/NearTxQueryEnlistResultHandler.java| 4 +- .../near/GridNearTxAbstractEnlistFuture.java | 8 - .../distributed/near/GridNearTxEnlistFuture.java | 11 +- .../distributed/near/GridNearTxFinishFuture.java | 2 +- .../cache/distributed/near/GridNearTxLocal.java| 439 + .../near/GridNearTxQueryEnlistFuture.java | 4 +- .../near/GridNearTxQueryResultsEnlistFuture.java | 11 +- .../GridNearReadRepairAbstractFuture.java | 2 +- .../internal/processors/cache/mvcc/MvccUtils.java | 29 +- .../cache/query/IgniteQueryErrorCode.java | 4 - .../cache/transactions/IgniteInternalTx.java | 11 - .../cache/transactions/IgniteTransactionsImpl.java | 1 - .../cache/transactions/IgniteTxAdapter.java| 17 - .../cache/transactions/IgniteTxHandler.java| 8 +- .../cache/transactions/IgniteTxLocalAdapter.java | 12 +- .../cache/transactions/IgniteTxManager.java| 2 - .../internal/processors/odbc/SqlListenerUtils.java | 3 - .../platform/client/tx/ClientTxStartRequest.java | 1 - .../TransactionMixedModeException.java | 35 -- .../main/resources/META-INF/classnames.properties | 1 - .../TxDataConsistencyOnCommitFailureTest.java | 9 +- .../processors/query/h2/IgniteH2Indexing.java | 337 .../processors/cache/jta/CacheJtaManager.java | 1 - 29 files changed, 105 insertions(+), 921 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java index 789bbc11a1d..f35f32ee2dd 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java @@ -3683,7 +3683,6 @@ public abstract class GridCacheAdapter implements IgniteInternalCache implements IgniteInternalCache implements IgniteInternalCache reservedParts = new HashSet<>(); try { -assert mvccSnapshot == null; - Collection entries = near() ? allEntries() : writeEntries(); // Data entry to write to WAL. diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java index 86cf0850114..e25fff47960 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java @@ -73,8 +73,6 @@ import org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxQu import org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxQueryResultsEnlistResponse; import org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxRemote; import org.apache.ignite.internal.processors.cache.distributed.near.GridNearUnlockRequest; -import org.apache.ignite.internal.processors.cache.mvcc.MvccSnapshot; -import org.apache.ignite.internal.processors.cache.mvcc.MvccSnapshotWithoutTxs; import org.apache.ignite.internal.processors.cache.transactions.IgniteTxEntry; import org.apache.ignite.internal.processors.cache.transactions.IgniteTxKey; import org.apache.ignite.internal.processors.cache.transactions.IgniteTxLocalEx; @@ -102,7 +100,6 @@ import org.jetbrains.annotations.Nullable; import static org.apache.ignite.cache.CacheWriteSynchronizationMode.FULL_SYNC; import static org.apache.ignite.internal.processors.cache.GridCacheOperation.NOOP; import static org.apache.ignite.internal.processors.cache.GridCacheUtils.isNearEnabled; -import static org.apache.ignite.internal.processors.cache.mvcc.MvccUtil
(ignite-3) branch main updated: IGNITE-21473 Adjust Tx tests structure (#3169)
This is an automated email from the ASF dual-hosted git repository. sanpwc pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/ignite-3.git The following commit(s) were added to refs/heads/main by this push: new 5b360b8198 IGNITE-21473 Adjust Tx tests structure (#3169) 5b360b8198 is described below commit 5b360b8198b7007b7869316918f08270b00acba9 Author: Denis Chudov AuthorDate: Wed Feb 7 17:31:04 2024 +0300 IGNITE-21473 Adjust Tx tests structure (#3169) --- .../ItTxAbstractDistributedTestSingleNode.java | 194 ++ .../ItTxDistributedCleanupRecoveryTest.java| 8 +- .../distributed/ItTxDistributedTestSingleNode.java | 241 + .../ItTxDistributedTestSingleNodeCollocated.java | 2 +- ...xDistributedTestSingleNodeNoCleanupMessage.java | 8 +- ...ItTxDistributedTestThreeNodesThreeReplicas.java | 3 +- .../ignite/distributed/ReplicaUnavailableTest.java | 2 +- .../apache/ignite/distributed/ItTxTestCluster.java | 26 +- .../ignite/internal/table/TxAbstractTest.java | 400 - .../internal/tx/impl/ReadWriteTransactionImpl.java | 18 +- 10 files changed, 465 insertions(+), 437 deletions(-) diff --git a/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTxAbstractDistributedTestSingleNode.java b/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTxAbstractDistributedTestSingleNode.java new file mode 100644 index 00..b9dce5b0cc --- /dev/null +++ b/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTxAbstractDistributedTestSingleNode.java @@ -0,0 +1,194 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.distributed; + +import static org.apache.ignite.internal.testframework.IgniteTestUtils.assertThrowsWithCode; +import static org.apache.ignite.internal.testframework.IgniteTestUtils.runMultiThreadedAsync; +import static org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.willSucceedFast; +import static org.apache.ignite.lang.ErrorGroups.Transactions.TX_ALREADY_FINISHED_ERR; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.CyclicBarrier; +import java.util.concurrent.ThreadLocalRandom; +import org.apache.ignite.internal.table.TxAbstractTest; +import org.apache.ignite.internal.tx.impl.ReadWriteTransactionImpl; +import org.apache.ignite.internal.util.CollectionUtils; +import org.apache.ignite.tx.Transaction; +import org.apache.ignite.tx.TransactionException; +import org.apache.ignite.tx.TransactionOptions; +import org.junit.jupiter.api.RepeatedTest; +import org.junit.jupiter.api.TestInfo; + +/** + * Test class that is used for the tests that should be run on single node cluster only. + */ +public abstract class ItTxAbstractDistributedTestSingleNode extends TxAbstractTest { +/** + * The constructor. + * + * @param testInfo Test info. + */ +public ItTxAbstractDistributedTestSingleNode(TestInfo testInfo) { +super(testInfo); +} + +@RepeatedTest(10) +public void testTransactionMultiThreadedCommit() { +testTransactionMultiThreadedFinish(1, false); +} + +@RepeatedTest(10) +public void testTransactionMultiThreadedCommitEmpty() { +testTransactionMultiThreadedFinish(1, true); +} + +@RepeatedTest(10) +public void testTransactionMultiThreadedRollback() { +testTransactionMultiThreadedFinish(0, false); +} + +@RepeatedTest(10) +public void testTransactionMultiThreadedRollbackEmpty() { +testTransactionMultiThreadedFinish(0, true); +} + +@RepeatedTest(10) +public void testTransactionMultiThreadedMixed() { +testTransactionMultiThreadedFinish(-1, false); +} + +@RepeatedTest(10) +public void testTransactionMultiThreadedMixedEmpty() { +testTransactionMultiThreadedFinish(-1, true); +} + +/** + * Test trying to finish a tx in multiple threads simultaneously, and enlist new operations right after the first finish. + * + * @param finishMode 1 is com
(ignite-3) branch main updated (6729811f99 -> 53eff5b338)
This is an automated email from the ASF dual-hosted git repository. sk0x50 pushed a change to branch main in repository https://gitbox.apache.org/repos/asf/ignite-3.git from 6729811f99 IGNITE-21479 Fix race with setting priority in PriorityQueueExecutorTest (#3176) add 53eff5b338 IGNITE-20452 Integrate failure handler processor into Ignite components (#3090) No new revisions were added by this update. Summary of changes: .../java/org/apache/ignite/lang/ErrorGroups.java | 13 +++ modules/distribution-zones/build.gradle| 1 + ...niteDistributionZoneManagerNodeRestartTest.java | 4 +- .../build.gradle | 25 ++-- .../failure/handlers/FailureHandlerTest.java | 72 .../ignite/internal/failure/FailureContext.java} | 57 - .../ignite/internal/failure/FailureProcessor.java | 128 + .../ignite/internal/failure/FailureType.java} | 24 ++-- .../internal/failure/handlers/FailureHandler.java} | 24 ++-- .../failure/handlers/NoOpFailureHandler.java} | 18 +-- .../failure/handlers/StopNodeFailureHandler.java} | 33 +++--- .../handlers/StopNodeOrHaltFailureHandler.java | 117 +++ .../internal/failure/FailureProcessorTest.java}| 43 +++ modules/network/build.gradle | 3 + .../network/netty/ItConnectionManagerTest.java | 4 +- .../internal/network/netty/ConnectionManager.java | 20 +++- .../internal/network/recovery/FailureHandler.java | 33 -- .../recovery/RecoveryClientHandshakeManager.java | 16 ++- .../recovery/RecoveryServerHandshakeManager.java | 17 ++- .../scalecube/ScaleCubeClusterServiceFactory.java | 8 +- .../network/DefaultMessagingServiceTest.java | 18 ++- .../network/netty/RecoveryHandshakeTest.java | 11 +- .../RecoveryClientHandshakeManagerTest.java| 7 +- .../RecoveryServerHandshakeManagerTest.java| 7 +- .../network/utils/ClusterServiceTestUtils.java | 5 +- modules/page-memory/build.gradle | 3 + .../persistence/checkpoint/CheckpointManager.java | 10 +- .../CheckpointReadLockTimeoutException.java| 9 +- .../checkpoint/CheckpointTimeoutLock.java | 27 +++-- .../persistence/checkpoint/Checkpointer.java | 20 +++- .../persistence/compaction/Compactor.java | 13 ++- .../persistence/store/FilePageStoreManager.java| 17 ++- .../PersistentPageMemoryNoLoadTest.java| 10 +- .../checkpoint/CheckpointManagerTest.java | 3 + .../checkpoint/CheckpointTimeoutLockTest.java | 95 --- .../persistence/checkpoint/CheckpointerTest.java | 9 ++ .../persistence/compaction/CompactorTest.java | 55 - .../store/FilePageStoreManagerTest.java| 8 +- .../checkpoint/CheckpointTestUtils.java| 4 +- modules/platforms/cpp/ignite/common/error_codes.h | 9 +- modules/platforms/cpp/ignite/odbc/common_types.cpp | 5 + .../platforms/dotnet/Apache.Ignite/ErrorCodes.g.cs | 17 +++ modules/raft/build.gradle | 1 + .../raft/ItTruncateSuffixAndRestartTest.java | 6 +- modules/runner/build.gradle| 2 + .../runner/app/ItIgniteNodeRestartTest.java| 15 ++- .../org/apache/ignite/internal/app/IgniteImpl.java | 20 +++- modules/storage-api/build.gradle | 2 + .../ignite/internal/storage/DataStorageModule.java | 5 +- .../internal/storage/DataStorageModules.java | 7 +- .../internal/storage/DataStorageManagerTest.java | 15 ++- .../internal/storage/DataStorageModulesTest.java | 6 +- .../storage/impl/TestDataStorageModule.java| 4 +- modules/storage-page-memory/build.gradle | 1 + .../PersistentPageMemoryDataStorageModule.java | 12 +- .../PersistentPageMemoryStorageEngine.java | 12 +- .../VolatilePageMemoryDataStorageModule.java | 4 +- .../PersistentPageMemoryMvTableStorageTest.java| 4 +- .../PersistentPageMemoryStorageEngineTest.java | 6 +- .../PersistentPageMemoryHashIndexStorageTest.java | 4 +- ...PersistentPageMemorySortedIndexStorageTest.java | 10 +- ...ageMemoryMvPartitionStorageConcurrencyTest.java | 3 +- ...rsistentPageMemoryMvPartitionStorageGcTest.java | 3 +- ...PersistentPageMemoryMvPartitionStorageTest.java | 3 +- modules/storage-rocksdb/build.gradle | 1 + .../storage/rocksdb/RocksDbDataStorageModule.java | 4 +- modules/table/build.gradle | 3 + .../rebalance/ItRebalanceDistributedTest.java | 13 ++- .../internal/table/distributed/LowWatermark.java | 14 ++- .../internal/table/distributed/TableManager.java | 7 +- .../table/distributed/LowWatermarkTest.java| 3 +- .../table/distributed/TableManagerTest.java| 6 +- .../PersistentPageMemoryGcUpdateHandlerTest.java | 4 +- mo
(ignite) branch master updated: IGNITE-21449 Avoid excessive invocation of channel.position() while dump create (#11234)
This is an automated email from the ASF dual-hosted git repository. timoninmaxim pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/ignite.git The following commit(s) were added to refs/heads/master by this push: new 5481a2d8169 IGNITE-21449 Avoid excessive invocation of channel.position() while dump create (#11234) 5481a2d8169 is described below commit 5481a2d8169dfbb4188efe9b18384f69224c5657 Author: yurinaryshkin <135707807+yurinarysh...@users.noreply.github.com> AuthorDate: Wed Feb 7 14:58:23 2024 +0300 IGNITE-21449 Avoid excessive invocation of channel.position() while dump create (#11234) --- .../cache/persistence/snapshot/dump/BufferedFileIO.java | 9 - .../cache/persistence/snapshot/dump/IgniteCacheDumpSelfTest.java | 8 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/dump/BufferedFileIO.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/dump/BufferedFileIO.java index 40c97df8f3a..84a2d523f29 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/dump/BufferedFileIO.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/dump/BufferedFileIO.java @@ -36,6 +36,9 @@ public class BufferedFileIO extends FileIODecorator { /** */ private ByteBuffer buf; +/** */ +private long position; + /** */ public BufferedFileIO(FileIO fileIO) { super(fileIO); @@ -107,9 +110,13 @@ public class BufferedFileIO extends FileIODecorator { private void flush() throws IOException { buf.flip(); -if (delegate.writeFully(buf) < 0) +int len = delegate.writeFully(buf, position); + +if (len < 0) throw new IOException("Couldn't write data"); +position = position + len; + buf.clear(); } diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/dump/IgniteCacheDumpSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/dump/IgniteCacheDumpSelfTest.java index a5dc92cbb8e..741e797d904 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/dump/IgniteCacheDumpSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/dump/IgniteCacheDumpSelfTest.java @@ -514,14 +514,14 @@ public class IgniteCacheDumpSelfTest extends AbstractCacheDumpTest { if (file.getName().endsWith(DUMP_FILE_EXT)) { return new FileIODecorator(delegate.create(file, modes)) { /** {@inheritDoc} */ -@Override public int writeFully(ByteBuffer srcBuf) throws IOException { +@Override public int writeFully(ByteBuffer srcBuf, long position) throws IOException { if (findValToFail(srcBuf)) { keyToFailFound.set(true); throw new IOException("Val to fail found"); } -return super.writeFully(srcBuf); +return super.writeFully(srcBuf, position); } private boolean findValToFail(ByteBuffer srcBuf) { @@ -671,9 +671,9 @@ public class IgniteCacheDumpSelfTest extends AbstractCacheDumpTest { if (failOnWrite) { return new FileIODecorator(delegate.create(file, modes)) { /** {@inheritDoc} */ -@Override public int writeFully(ByteBuffer srcBuf) throws IOException { +@Override public int writeFully(ByteBuffer srcBuf, long position) throws IOException { if (errorAfter.decrementAndGet() > 0) -return super.writeFully(srcBuf); +return super.writeFully(srcBuf, position); throw new IOException("Test write error"); }
(ignite-3) branch main updated: IGNITE-21479 Fix race with setting priority in PriorityQueueExecutorTest (#3176)
This is an automated email from the ASF dual-hosted git repository. apolovtsev pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/ignite-3.git The following commit(s) were added to refs/heads/main by this push: new 6729811f99 IGNITE-21479 Fix race with setting priority in PriorityQueueExecutorTest (#3176) 6729811f99 is described below commit 6729811f99ad18b1490f9b7516a2af84a898e7af Author: Alexander Polovtcev AuthorDate: Wed Feb 7 13:00:11 2024 +0200 IGNITE-21479 Fix race with setting priority in PriorityQueueExecutorTest (#3176) --- .../internal/compute/queue/QueueExecutionImpl.java | 24 -- .../compute/queue/PriorityQueueExecutorTest.java | 5 ++--- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/modules/compute/src/main/java/org/apache/ignite/internal/compute/queue/QueueExecutionImpl.java b/modules/compute/src/main/java/org/apache/ignite/internal/compute/queue/QueueExecutionImpl.java index 087fa95fb3..bb154876c8 100644 --- a/modules/compute/src/main/java/org/apache/ignite/internal/compute/queue/QueueExecutionImpl.java +++ b/modules/compute/src/main/java/org/apache/ignite/internal/compute/queue/QueueExecutionImpl.java @@ -23,7 +23,6 @@ import java.util.UUID; import java.util.concurrent.Callable; import java.util.concurrent.CompletableFuture; import java.util.concurrent.atomic.AtomicInteger; -import java.util.concurrent.atomic.AtomicReference; import org.apache.ignite.compute.ComputeException; import org.apache.ignite.compute.JobStatus; import org.apache.ignite.internal.compute.state.ComputeStateMachine; @@ -42,13 +41,14 @@ class QueueExecutionImpl implements QueueExecution { private final UUID jobId; private final Callable job; -private final AtomicInteger priority; private final ComputeThreadPoolExecutor executor; private final ComputeStateMachine stateMachine; private final CompletableFuture result = new CompletableFuture<>(); -private final AtomicReference> queueEntry = new AtomicReference<>(); +@Nullable +private volatile QueueEntry queueEntry; +private volatile int priority; private final AtomicInteger retries = new AtomicInteger(); @@ -69,7 +69,7 @@ class QueueExecutionImpl implements QueueExecution { ComputeStateMachine stateMachine) { this.jobId = jobId; this.job = job; -this.priority = new AtomicInteger(priority); +this.priority = priority; this.executor = executor; this.stateMachine = stateMachine; } @@ -89,7 +89,7 @@ class QueueExecutionImpl implements QueueExecution { try { stateMachine.cancelingJob(jobId); -QueueEntry queueEntry = this.queueEntry.get(); +QueueEntry queueEntry = this.queueEntry; if (queueEntry != null) { if (executor.remove(queueEntry)) { result.cancel(true); @@ -106,13 +106,15 @@ class QueueExecutionImpl implements QueueExecution { @Override public boolean changePriority(int newPriority) { -if (newPriority == priority.get()) { +if (newPriority == priority) { return false; } -QueueEntry queueEntry = this.queueEntry.get(); + +QueueEntry queueEntry = this.queueEntry; + if (executor.removeFromQueue(queueEntry)) { -this.priority.set(newPriority); -this.queueEntry.set(null); +this.priority = newPriority; +this.queueEntry = null; run(); return true; } @@ -134,11 +136,11 @@ class QueueExecutionImpl implements QueueExecution { QueueEntry queueEntry = new QueueEntry<>(() -> { stateMachine.executeJob(jobId); return job.call(); -}, priority.get()); +}, priority); // Ignoring previous value since it can't be running because we are calling run // either after the construction or after the failure. -this.queueEntry.set(queueEntry); +this.queueEntry = queueEntry; try { executor.execute(queueEntry); diff --git a/modules/compute/src/test/java/org/apache/ignite/internal/compute/queue/PriorityQueueExecutorTest.java b/modules/compute/src/test/java/org/apache/ignite/internal/compute/queue/PriorityQueueExecutorTest.java index 438af26d17..5f796f8520 100644 --- a/modules/compute/src/test/java/org/apache/ignite/internal/compute/queue/PriorityQueueExecutorTest.java +++ b/modules/compute/src/test/java/org/apache/ignite/internal/compute/queue/PriorityQueueExecutorTest.java @@ -451,6 +451,8 @@ public class PriorityQueueExecutorTest extends BaseIgniteAbstractTest { assertThat(task3.isDone(), is(false)); assertThat(task4.isDone(), is(false)); +//Change priority on task3, it should be executed before task2 and task4 +assertThat(runningExecution.changePriority(20), is(true));
(ignite) branch master updated: IGNITE-21139 Provide ability to extract a command argument and class from management task event (#11125)
This is an automated email from the ASF dual-hosted git repository. namelchev pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/ignite.git The following commit(s) were added to refs/heads/master by this push: new 7ddf565b90c IGNITE-21139 Provide ability to extract a command argument and class from management task event (#11125) 7ddf565b90c is described below commit 7ddf565b90c4fb3115f7fb8946dfb4e953eebf02 Author: Nikita Amelchev AuthorDate: Wed Feb 7 13:17:42 2024 +0300 IGNITE-21139 Provide ability to extract a command argument and class from management task event (#11125) --- .../commandline/meta/subcommands/VoidDto.java | 42 --- .../internal/events/ManagementTaskEvent.java | 63 ++ .../processors/task/GridTaskProcessor.java | 10 ++-- .../internal/TestManagementVisorOneNodeTask.java | 11 ++-- .../internal/VisorManagementEventSelfTest.java | 49 ++--- 5 files changed, 117 insertions(+), 58 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/commandline/meta/subcommands/VoidDto.java b/modules/core/src/main/java/org/apache/ignite/internal/commandline/meta/subcommands/VoidDto.java deleted file mode 100644 index abe0b51ff27..000 --- a/modules/core/src/main/java/org/apache/ignite/internal/commandline/meta/subcommands/VoidDto.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ignite.internal.commandline.meta.subcommands; - -import java.io.IOException; -import java.io.ObjectInput; -import java.io.ObjectOutput; -import org.apache.ignite.internal.dto.IgniteDataTransferObject; - -/** - * - */ -public class VoidDto extends IgniteDataTransferObject { -/** */ -private static final long serialVersionUID = 0L; - -/** {@inheritDoc} */ -@Override protected void writeExternalData(ObjectOutput out) throws IOException { -// No-op. -} - -/** {@inheritDoc} */ -@Override protected void readExternalData(byte protoVer, ObjectInput in) -throws IOException, ClassNotFoundException { -// No-op. -} -} diff --git a/modules/core/src/main/java/org/apache/ignite/internal/events/ManagementTaskEvent.java b/modules/core/src/main/java/org/apache/ignite/internal/events/ManagementTaskEvent.java new file mode 100644 index 000..c18f0263b05 --- /dev/null +++ b/modules/core/src/main/java/org/apache/ignite/internal/events/ManagementTaskEvent.java @@ -0,0 +1,63 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.internal.events; + +import java.util.UUID; +import org.apache.ignite.cluster.ClusterNode; +import org.apache.ignite.events.EventType; +import org.apache.ignite.events.TaskEvent; +import org.apache.ignite.internal.visor.VisorTaskArgument; +import org.apache.ignite.lang.IgniteUuid; +import org.jetbrains.annotations.Nullable; + +/** + * Management task started event. + * + * @see EventType#EVT_MANAGEMENT_TASK_STARTED + */ +public class ManagementTaskEvent extends TaskEvent { +/** */ +private static final long serialVersionUID = 0L; + +/** */ +private final VisorTaskArgument arg; + +/** + * Creates task event with given parameters. + * + * @param node Node. + * @param msg Optional message. + * @param type Event type. + * @param sesId Task session ID. + * @param taskName Task nam
(ignite) branch master updated: IGNITE-21110 Added the management event to all management commands (#11121)
This is an automated email from the ASF dual-hosted git repository. namelchev pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/ignite.git The following commit(s) were added to refs/heads/master by this push: new 16b2edd8392 IGNITE-21110 Added the management event to all management commands (#11121) 16b2edd8392 is described below commit 16b2edd8392a6787f316d748f1ca3a6b0d176b98 Author: Nikita Amelchev AuthorDate: Wed Feb 7 13:01:13 2024 +0300 IGNITE-21110 Added the management event to all management commands (#11121) --- .../internal/management/ClusterChangeTagTask.java | 2 - .../internal/management/ShutdownPolicyTask.java| 2 - .../ignite/internal/management/SystemViewTask.java | 2 - .../internal/management/api/CommandUtils.java | 4 +- .../internal/management/api/ComputeCommand.java| 5 +- .../internal/management/baseline/BaselineTask.java | 2 - .../management/cache/CacheMetricsTask.java | 3 +- .../internal/management/cache/CacheScanTask.java | 2 - .../internal/management/cache/CacheStopTask.java | 2 - .../defragmentation/DefragmentationTask.java | 2 - .../management/kill/CancelServiceTask.java | 2 - .../management/kill/ClientConnectionDropTask.java | 2 - .../management/kill/ComputeCancelSessionTask.java | 2 - .../management/kill/ContinuousQueryCancelTask.java | 2 - .../kill/QueryCancelOnInitiatorTask.java | 2 - .../management/kill/ScanQueryCancelTask.java | 2 - .../internal/management/metric/MetricTask.java | 2 - .../PerformanceStatisticsTask.java | 2 - .../management/persistence/PersistenceTask.java| 3 +- .../tracing/TracingConfigurationTask.java | 2 - .../managers/deployment/GridDeployment.java| 11 +- .../processors/task/GridVisorManagementTask.java | 38 -- .../compute/VisorComputeCancelSessionsTask.java| 2 - .../internal/visor/misc/VisorIdAndTagViewTask.java | 2 - .../main/resources/META-INF/classnames.properties | 1 - .../internal/TestManagementVisorMultiNodeTask.java | 66 --- .../internal/TestManagementVisorOneNodeTask.java | 2 - .../TestNotManagementVisorMultiNodeTask.java | 64 -- .../TestNotManagementVisorOneNodeTask.java | 64 -- .../internal/VisorManagementEventSelfTest.java | 132 +++-- 30 files changed, 30 insertions(+), 399 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/management/ClusterChangeTagTask.java b/modules/core/src/main/java/org/apache/ignite/internal/management/ClusterChangeTagTask.java index 9eb20fcc9c7..86d92f10bdd 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/management/ClusterChangeTagTask.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/management/ClusterChangeTagTask.java @@ -21,7 +21,6 @@ import org.apache.ignite.IgniteCheckedException; import org.apache.ignite.IgniteException; import org.apache.ignite.internal.cluster.IgniteClusterEx; import org.apache.ignite.internal.processors.task.GridInternal; -import org.apache.ignite.internal.processors.task.GridVisorManagementTask; import org.apache.ignite.internal.visor.VisorJob; import org.apache.ignite.internal.visor.VisorOneNodeTask; @@ -29,7 +28,6 @@ import org.apache.ignite.internal.visor.VisorOneNodeTask; * */ @GridInternal -@GridVisorManagementTask public class ClusterChangeTagTask extends VisorOneNodeTask { /** */ private static final long serialVersionUID = 0L; diff --git a/modules/core/src/main/java/org/apache/ignite/internal/management/ShutdownPolicyTask.java b/modules/core/src/main/java/org/apache/ignite/internal/management/ShutdownPolicyTask.java index 27d0046faf1..e648389407c 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/management/ShutdownPolicyTask.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/management/ShutdownPolicyTask.java @@ -20,7 +20,6 @@ package org.apache.ignite.internal.management; import org.apache.ignite.IgniteException; import org.apache.ignite.IgniteLogger; import org.apache.ignite.internal.processors.task.GridInternal; -import org.apache.ignite.internal.processors.task.GridVisorManagementTask; import org.apache.ignite.internal.visor.VisorJob; import org.apache.ignite.internal.visor.VisorOneNodeTask; import org.apache.ignite.resources.LoggerResource; @@ -29,7 +28,6 @@ import org.apache.ignite.resources.LoggerResource; * Shutdown policy task. */ @GridInternal -@GridVisorManagementTask public class ShutdownPolicyTask extends VisorOneNodeTask { /** Serial version id. */ private static final long serialVersionUID = 0L; diff --git a/modules/core/src/main/java/org/apache/ignite/internal/management/SystemViewTask.java b/modules/core/src/main/java/org/apache/ignite/internal/management/SystemViewTask.java index ce20ad3412f..31fae2c6963 100644 --- a/mo
(ignite-3) branch main updated: IGNITE-21438 Add thread assertions to MV partition and index storages (#3149)
This is an automated email from the ASF dual-hosted git repository. ibessonov pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/ignite-3.git The following commit(s) were added to refs/heads/main by this push: new 4550e073d9 IGNITE-21438 Add thread assertions to MV partition and index storages (#3149) 4550e073d9 is described below commit 4550e073d96a30c0adce0785440734f271d1c10e Author: Roman Puchkovskiy AuthorDate: Wed Feb 7 13:36:04 2024 +0400 IGNITE-21438 Add thread assertions to MV partition and index storages (#3149) --- .../ignite/internal/thread/IgniteThread.java | 25 +++- .../ignite/internal/thread/ThreadAttributes.java | 40 + .../ignite/internal/thread/ThreadOperation.java| 30 .../network/netty/NamedNioEventLoopGroup.java | 14 +- .../org/apache/ignite/internal/app/IgniteImpl.java | 33 - modules/storage-api/build.gradle | 1 + .../internal/storage/ThreadAssertingCursor.java| 56 +++ .../storage/ThreadAssertingMvPartitionStorage.java | 164 + .../ThreadAssertingPartitionTimestampCursor.java | 48 ++ .../engine/ThreadAssertingMvTableStorage.java | 162 .../engine/ThreadAssertingStorageEngine.java | 62 .../index/ThreadAssertingHashIndexStorage.java | 51 +++ .../storage/index/ThreadAssertingIndexStorage.java | 76 ++ .../storage/index/ThreadAssertingPeekCursor.java | 47 ++ .../index/ThreadAssertingSortedIndexStorage.java | 52 +++ .../ignite/internal/worker/ThreadAssertions.java | 75 ++ 16 files changed, 924 insertions(+), 12 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/thread/IgniteThread.java b/modules/core/src/main/java/org/apache/ignite/internal/thread/IgniteThread.java index 53f2fbf5f3..1801aef277 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/thread/IgniteThread.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/thread/IgniteThread.java @@ -17,6 +17,11 @@ package org.apache.ignite.internal.thread; +import static java.util.Collections.unmodifiableSet; + +import java.util.Collections; +import java.util.EnumSet; +import java.util.Set; import java.util.concurrent.atomic.AtomicLong; import org.apache.ignite.internal.tostring.S; import org.apache.ignite.internal.util.worker.IgniteWorker; @@ -24,18 +29,20 @@ import org.apache.ignite.internal.util.worker.IgniteWorker; /** * This class adds some necessary plumbing on top of the {@link Thread} class. Specifically, it adds: * - * Consistent naming of threads; - * Name of the ignite node this thread belongs to. + * Consistent naming of threads; + * Name of the ignite node this thread belongs to. * * Note: this class is intended for internal use only. */ -public class IgniteThread extends Thread { +public class IgniteThread extends Thread implements ThreadAttributes { /** Number of all ignite threads in the system. */ private static final AtomicLong THREAD_COUNTER = new AtomicLong(); /** The name of the Ignite instance this thread belongs to. */ protected final String igniteInstanceName; +private final Set allowedOperations; + /** * Creates thread with given worker. * @@ -61,11 +68,16 @@ public class IgniteThread extends Thread { * @param nodeName Name of the Ignite instance this thread is created for. * @param threadName Name of thread. * @param r Runnable to execute. + * @param allowedOperations Operations which this thread allows to execute. */ -public IgniteThread(String nodeName, String threadName, Runnable r) { +public IgniteThread(String nodeName, String threadName, Runnable r, ThreadOperation... allowedOperations) { super(r, createName(THREAD_COUNTER.incrementAndGet(), threadName, nodeName)); this.igniteInstanceName = nodeName; + +Set operations = EnumSet.noneOf(ThreadOperation.class); +Collections.addAll(operations, allowedOperations); +this.allowedOperations = unmodifiableSet(operations); } /** @@ -113,4 +125,9 @@ public class IgniteThread extends Thread { public String toString() { return S.toString(IgniteThread.class, this, "name", getName()); } + +@Override +public Set allowedOperations() { +return allowedOperations; +} } diff --git a/modules/core/src/main/java/org/apache/ignite/internal/thread/ThreadAttributes.java b/modules/core/src/main/java/org/apache/ignite/internal/thread/ThreadAttributes.java new file mode 100644 index 00..230095c38b --- /dev/null +++ b/modules/core/src/main/java/org/apache/ignite/internal/thread/ThreadAttributes.java @@ -0,0 +1,40 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with
(ignite-3) branch main updated (71727ef7be -> 8be6c8ebcc)
This is an automated email from the ASF dual-hosted git repository. vpyatkov pushed a change to branch main in repository https://gitbox.apache.org/repos/asf/ignite-3.git from 71727ef7be IGNITE-21477 Fix jvmArgs propagation in tests (#3174) add 8be6c8ebcc IGNITE-21248 Add abandoned locks handling to HeapUnboundedLockManager (#3161) No new revisions were added by this update. Summary of changes: .../ignite/internal/sql/engine/ItDmlTest.java | 1 - .../internal/table/ItTransactionRecoveryTest.java | 143 +++-- .../ignite/internal/tx/impl/HeapLockManager.java | 11 +- .../internal/tx/impl/HeapUnboundedLockManager.java | 35 - 4 files changed, 168 insertions(+), 22 deletions(-)
(ignite-3) branch main updated (f2c02191d0 -> 71727ef7be)
This is an automated email from the ASF dual-hosted git repository. apolovtsev pushed a change to branch main in repository https://gitbox.apache.org/repos/asf/ignite-3.git from f2c02191d0 IGNITE-21289 .NET: Implement job execution interface (#3159) add 71727ef7be IGNITE-21477 Fix jvmArgs propagation in tests (#3174) No new revisions were added by this update. Summary of changes: build.gradle | 50 -- 1 file changed, 24 insertions(+), 26 deletions(-)
(ignite-3) branch main updated: IGNITE-21289 .NET: Implement job execution interface (#3159)
This is an automated email from the ASF dual-hosted git repository. ptupitsyn pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/ignite-3.git The following commit(s) were added to refs/heads/main by this push: new f2c02191d0 IGNITE-21289 .NET: Implement job execution interface (#3159) f2c02191d0 is described below commit f2c02191d03505d592e8e76aa1b6494568668119 Author: Pavel Tupitsyn AuthorDate: Wed Feb 7 11:30:52 2024 +0200 IGNITE-21289 .NET: Implement job execution interface (#3159) Add job execution API: * Return `IJobExecution` from `ICompute` methods instead of a raw result * Implement `GetStatusAsync`, `CancelAsync`, `ChangePriorityAsync` --- .../java/org/apache/ignite/compute/JobState.java | 2 +- .../java/org/apache/ignite/compute/JobStatus.java | 73 + .../Compute/ComputeClusterAwarenessTests.cs| 21 +-- .../Apache.Ignite.Tests/Compute/ComputeTests.cs| 173 - .../dotnet/Apache.Ignite.Tests/FakeServer.cs | 22 ++- .../PartitionAwarenessRealClusterTests.cs | 4 +- .../Proto/ColocationHashTests.cs | 8 +- .../Table/SchemaSynchronizationTest.cs | 5 +- .../dotnet/Apache.Ignite/ClientOperationType.cs| 17 +- .../dotnet/Apache.Ignite/Compute/ICompute.cs | 8 +- .../dotnet/Apache.Ignite/Compute/IJobExecution.cs | 67 .../dotnet/Apache.Ignite/Compute/JobState.cs} | 59 +++ .../dotnet/Apache.Ignite/Compute/JobStatus.cs} | 51 ++ .../Apache.Ignite/Internal/Compute/Compute.cs | 129 +++ .../Apache.Ignite/Internal/Compute/JobExecution.cs | 95 +++ .../Apache.Ignite/Internal/Proto/ClientOp.cs | 11 +- .../Internal/Proto/ClientOpExtensions.cs | 3 + .../Internal/Proto/MsgPack/MsgPackReader.cs| 15 ++ .../dotnet/Apache.Ignite/RetryReadPolicy.cs| 3 + 19 files changed, 618 insertions(+), 148 deletions(-) diff --git a/modules/api/src/main/java/org/apache/ignite/compute/JobState.java b/modules/api/src/main/java/org/apache/ignite/compute/JobState.java index 4c7d18a4cc..a60c025217 100644 --- a/modules/api/src/main/java/org/apache/ignite/compute/JobState.java +++ b/modules/api/src/main/java/org/apache/ignite/compute/JobState.java @@ -42,7 +42,7 @@ public enum JobState { COMPLETED, /** - * The job has received the cancel command, but it is still running. + * The job has received the cancel command, but is still running. */ CANCELING, diff --git a/modules/api/src/main/java/org/apache/ignite/compute/JobStatus.java b/modules/api/src/main/java/org/apache/ignite/compute/JobStatus.java index 3ee4ac2910..e04f27c74e 100644 --- a/modules/api/src/main/java/org/apache/ignite/compute/JobStatus.java +++ b/modules/api/src/main/java/org/apache/ignite/compute/JobStatus.java @@ -64,32 +64,67 @@ public class JobStatus implements Serializable { this.finishTime = builder.finishTime; } +/** + * Creates a new builder. + * + * @return Builder. + */ public static Builder builder() { return new Builder(); } +/** + * Returns job ID. + * + * @return Job ID. + */ public UUID id() { return id; } +/** + * Returns job state. + * + * @return Job state. + */ public JobState state() { return state; } +/** + * Returns job create time. + * + * @return Job create time. + */ public Instant createTime() { return createTime; } +/** + * Returns job start time. {@code null} if the job has not started yet. + * + * @return Job start time. {@code null} if the job has not started yet. + */ @Nullable public Instant startTime() { return startTime; } +/** + * Returns job finish time. {@code null} if the job has not finished yet. + * + * @return Job finish time. {@code null} if the job has not finished yet. + */ @Nullable public Instant finishTime() { return finishTime; } +/** + * Returns a new builder with the same property values as this JobStatus. + * + * @return Builder. + */ public Builder toBuilder() { return new Builder(this); } @@ -106,6 +141,9 @@ public class JobStatus implements Serializable { @Nullable private Instant finishTime; +/** + * Constructor. + */ public Builder() { } @@ -117,31 +155,66 @@ public class JobStatus implements Serializable { this.finishTime = status.finishTime; } +/** + * Sets job ID. + * + * @param id Job ID. + * @return This builder. + */ public Builder id(UUID id) { this.id = id; return this; } +/** + * Sets job state. + * +
(ignite-3) branch main updated: IGNITE-21247 Log enhancements for LeaseUpdater (#3109)
This is an automated email from the ASF dual-hosted git repository. vpyatkov pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/ignite-3.git The following commit(s) were added to refs/heads/main by this push: new c97d7c5db3 IGNITE-21247 Log enhancements for LeaseUpdater (#3109) c97d7c5db3 is described below commit c97d7c5db327583b82eeca1165cb4eea21a3b3a2 Author: Denis Chudov AuthorDate: Wed Feb 7 12:13:06 2024 +0300 IGNITE-21247 Log enhancements for LeaseUpdater (#3109) --- .../internal/tostring/IgniteToStringBuilder.java | 52 +++- .../internal/placementdriver/LeaseUpdater.java | 99 +- .../internal/table/distributed/TableManager.java | 19 - 3 files changed, 163 insertions(+), 7 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/tostring/IgniteToStringBuilder.java b/modules/core/src/main/java/org/apache/ignite/internal/tostring/IgniteToStringBuilder.java index 86a0e052db..6d8c88d6b7 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/tostring/IgniteToStringBuilder.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/tostring/IgniteToStringBuilder.java @@ -54,6 +54,7 @@ import java.util.function.Supplier; import org.apache.ignite.internal.lang.IgniteInternalException; import org.apache.ignite.internal.lang.IgniteStringBuilder; import org.apache.ignite.internal.lang.IgniteSystemProperties; +import org.apache.ignite.internal.lang.IgniteTriConsumer; import org.jetbrains.annotations.Nullable; /** @@ -1450,6 +1451,53 @@ public class IgniteToStringBuilder { } } +/** + * Produces a string representation of a list with customized string representation of elements. + * + * @param list List. + * @param elementToString Element to string transformer, accepts the string builder, element of list and its index. + * @param Type of list elements. + * @return String. + */ +public static String toString(List list, IgniteTriConsumer elementToString) { +int listSize = list.size(); + +IgniteStringBuilder buf = new IgniteStringBuilder(); + +buf.app(" ["); + +int cnt = 0; +boolean needHandleOverflow = true; + +try { +for (int i = 0; i < list.size(); i++) { +if (i > 0) { +buf.app(','); +} + +T el = list.get(i); + +elementToString.accept(buf, el, i); + +if (++cnt == COLLECTION_LIMIT || cnt == listSize) { +break; +} +} +} catch (ConcurrentModificationException e) { +handleConcurrentModification(buf, cnt, listSize); + +needHandleOverflow = false; +} + +if (needHandleOverflow) { +handleOverflow(buf, listSize); +} + +buf.app(']'); + +return buf.toString(); +} + /** * Writes array to buffer. * @@ -1583,7 +1631,7 @@ public class IgniteToStringBuilder { * @param buf String builder buffer. * @param size Size to compare with limit. */ -private static void handleOverflow(StringBuilderLimitedLength buf, int size) { +private static void handleOverflow(IgniteStringBuilder buf, int size) { int overflow = size - COLLECTION_LIMIT; if (overflow > 0) { @@ -1598,7 +1646,7 @@ public class IgniteToStringBuilder { * @param writtenElements Number of elements successfully written to output. * @param sizeOverall size of collection. */ -private static void handleConcurrentModification(StringBuilderLimitedLength buf, int writtenElements, int size) { +private static void handleConcurrentModification(IgniteStringBuilder buf, int writtenElements, int size) { buf.app("... concurrent modification was detected, ").app(writtenElements).app(" out of ").app(size) .app(" were written"); } diff --git a/modules/placement-driver/src/main/java/org/apache/ignite/internal/placementdriver/LeaseUpdater.java b/modules/placement-driver/src/main/java/org/apache/ignite/internal/placementdriver/LeaseUpdater.java index bf471c266c..6d0762659b 100644 --- a/modules/placement-driver/src/main/java/org/apache/ignite/internal/placementdriver/LeaseUpdater.java +++ b/modules/placement-driver/src/main/java/org/apache/ignite/internal/placementdriver/LeaseUpdater.java @@ -56,6 +56,8 @@ import org.apache.ignite.internal.placementdriver.negotiation.LeaseAgreement; import org.apache.ignite.internal.placementdriver.negotiation.LeaseNegotiator; import org.apache.ignite.internal.replicator.ReplicationGroupId; import org.apache.ignite.internal.thread.IgniteThread; +import org.apache.ignite.internal.tostring.IgniteToStringInclude; +import org.apache.ignite.internal.tostring.S; import org.apache.ignite.internal.util.IgniteSpinBusyLock; import org.apache.ig
(ignite-3) branch main updated: IGNITE-21310 Sql. Introduce partition provider for further pruning usage (#3102)
This is an automated email from the ASF dual-hosted git repository. zstan pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/ignite-3.git The following commit(s) were added to refs/heads/main by this push: new d9675ad06f IGNITE-21310 Sql. Introduce partition provider for further pruning usage (#3102) d9675ad06f is described below commit d9675ad06f579956003a647d04c605a15b8c14b7 Author: Evgeniy Stanilovskiy AuthorDate: Wed Feb 7 11:38:36 2024 +0300 IGNITE-21310 Sql. Introduce partition provider for further pruning usage (#3102) --- .../sql/engine/exec/DestinationFactory.java| 18 ++-- .../internal/sql/engine/exec/ExecutableTable.java | 7 ++ .../engine/exec/ExecutableTableRegistryImpl.java | 16 ++- .../sql/engine/exec/ExecutionServiceImpl.java | 4 - .../sql/engine/exec/LogicalRelImplementor.java | 5 +- .../engine/exec/RehashingPartitionExtractor.java | 51 + .../sql/engine/exec/ResolvedDependencies.java | 11 ++ ...utableTable.java => RowPartitionExtractor.java} | 25 ++--- .../sql/engine/exec/TablePartitionExtractor.java | 61 +++ .../internal/sql/engine/schema/IgniteTable.java| 5 + .../sql/engine/schema/IgniteTableImpl.java | 29 + .../sql/engine/schema/PartitionCalculator.java | 66 .../internal/sql/engine/trait/Partitioned.java | 12 +-- .../sql/engine/util/HashFunctionFactory.java | 58 -- .../sql/engine/util/HashFunctionFactoryImpl.java | 119 - .../exec/ExecutionDependencyResolverSelfTest.java | 7 ++ .../sql/engine/exec/ExecutionServiceImplTest.java | 6 +- .../exec/IdentityDistributionFunctionSelfTest.java | 2 +- .../engine/exec/NoOpExecutableTableRegistry.java | 7 ++ .../sql/engine/exec/PartitionsResolutionTest.java | 115 .../sql/engine/framework/TestBuilders.java | 7 ++ .../sql/engine/prepare/TypeCoercionTest.java | 7 ++ .../sql/engine/util/HashFunctionsTest.java | 111 --- 23 files changed, 413 insertions(+), 336 deletions(-) diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/DestinationFactory.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/DestinationFactory.java index c41e71d616..2ecfba6b8f 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/DestinationFactory.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/DestinationFactory.java @@ -23,8 +23,10 @@ import static org.apache.ignite.internal.util.CollectionUtils.nullOrEmpty; import java.util.Collections; import java.util.List; import java.util.Objects; +import java.util.function.Supplier; import org.apache.calcite.util.ImmutableIntList; import org.apache.ignite.internal.sql.engine.exec.mapping.ColocationGroup; +import org.apache.ignite.internal.sql.engine.schema.PartitionCalculator; import org.apache.ignite.internal.sql.engine.schema.TableDescriptor; import org.apache.ignite.internal.sql.engine.trait.AllNodes; import org.apache.ignite.internal.sql.engine.trait.Destination; @@ -35,7 +37,6 @@ import org.apache.ignite.internal.sql.engine.trait.IgniteDistribution; import org.apache.ignite.internal.sql.engine.trait.Partitioned; import org.apache.ignite.internal.sql.engine.trait.RandomNode; import org.apache.ignite.internal.sql.engine.util.Commons; -import org.apache.ignite.internal.sql.engine.util.HashFunctionFactory; /** * Factory that resolves {@link IgniteDistribution} trait, which represents logical {@link DistributionFunction} function, into its @@ -43,19 +44,16 @@ import org.apache.ignite.internal.sql.engine.util.HashFunctionFactory; */ class DestinationFactory { private final RowHandler rowHandler; -private final HashFunctionFactory hashFunctionFactory; private final ResolvedDependencies dependencies; /** * Constructor. * * @param rowHandler Row handler. - * @param hashFunctionFactory Hash-function factory required to resolve hash-based distributions. * @param dependencies Dependencies required to resolve row value dependent distributions. */ -DestinationFactory(RowHandler rowHandler, HashFunctionFactory hashFunctionFactory, ResolvedDependencies dependencies) { +DestinationFactory(RowHandler rowHandler, ResolvedDependencies dependencies) { this.rowHandler = rowHandler; -this.hashFunctionFactory = hashFunctionFactory; this.dependencies = dependencies; } @@ -97,13 +95,17 @@ class DestinationFactory { if (function.affinity()) { int tableId = ((AffinityDistribution) function).tableId(); - +Supplier calculator = dependencies.partitionCalculator(tableId); TableDescriptor tableDescriptor = dependencies.tableDescriptor(tableId); -
(ignite-3) branch main updated: IGNITE-21471 Change approach in sendMessagesTwoChannels in DefaultMessagingServiceTest (#3165)
This is an automated email from the ASF dual-hosted git repository. ibessonov pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/ignite-3.git The following commit(s) were added to refs/heads/main by this push: new 1d1313634c IGNITE-21471 Change approach in sendMessagesTwoChannels in DefaultMessagingServiceTest (#3165) 1d1313634c is described below commit 1d1313634c91551770629b5c1158bd74af4465da Author: Roman Puchkovskiy AuthorDate: Wed Feb 7 12:01:52 2024 +0400 IGNITE-21471 Change approach in sendMessagesTwoChannels in DefaultMessagingServiceTest (#3165) --- .../network/DefaultMessagingServiceTest.java | 118 ++--- 1 file changed, 8 insertions(+), 110 deletions(-) diff --git a/modules/network/src/test/java/org/apache/ignite/internal/network/DefaultMessagingServiceTest.java b/modules/network/src/test/java/org/apache/ignite/internal/network/DefaultMessagingServiceTest.java index 2c8f624944..bcd638a0ee 100644 --- a/modules/network/src/test/java/org/apache/ignite/internal/network/DefaultMessagingServiceTest.java +++ b/modules/network/src/test/java/org/apache/ignite/internal/network/DefaultMessagingServiceTest.java @@ -22,8 +22,8 @@ import static org.apache.ignite.internal.testframework.IgniteTestUtils.waitForCo import static org.apache.ignite.internal.testframework.matchers.CompletableFutureExceptionMatcher.willThrow; import static org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.willBe; import static org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.willCompleteSuccessfully; -import static org.awaitility.Awaitility.await; import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.anEmptyMap; import static org.hamcrest.Matchers.contains; import static org.hamcrest.Matchers.is; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -42,7 +42,6 @@ import java.util.concurrent.CountDownLatch; import java.util.concurrent.CyclicBarrier; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; -import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -54,7 +53,6 @@ import org.apache.ignite.internal.network.messages.InstantContainer; import org.apache.ignite.internal.network.messages.MessageWithInstant; import org.apache.ignite.internal.network.messages.TestMessage; import org.apache.ignite.internal.network.messages.TestMessageImpl; -import org.apache.ignite.internal.network.messages.TestMessageSerializationFactory; import org.apache.ignite.internal.network.messages.TestMessageTypes; import org.apache.ignite.internal.network.messages.TestMessagesFactory; import org.apache.ignite.internal.network.netty.ConnectionManager; @@ -65,10 +63,7 @@ import org.apache.ignite.internal.network.recovery.RecoveryDescriptorProvider; import org.apache.ignite.internal.network.recovery.StaleIdDetector; import org.apache.ignite.internal.network.serialization.ClassDescriptorFactory; import org.apache.ignite.internal.network.serialization.ClassDescriptorRegistry; -import org.apache.ignite.internal.network.serialization.MessageDeserializer; -import org.apache.ignite.internal.network.serialization.MessageSerializationFactory; import org.apache.ignite.internal.network.serialization.MessageSerializationRegistry; -import org.apache.ignite.internal.network.serialization.MessageSerializer; import org.apache.ignite.internal.network.serialization.SerializationService; import org.apache.ignite.internal.network.serialization.UserObjectSerializationContext; import org.apache.ignite.internal.network.serialization.marshal.DefaultUserObjectMarshaller; @@ -168,75 +163,17 @@ class DefaultMessagingServiceTest extends BaseIgniteAbstractTest { } } -@Test -public void sendMessagesOneChannel() throws Exception { -AtomicBoolean release = new AtomicBoolean(false); -MessageSerializer serializer = new TestMessageSerializationFactory( -new TestMessagesFactory()).createSerializer(); -Serializer longWaitSerializer = new Serializer(TestMessageImpl.GROUP_TYPE, TestMessageImpl.TYPE, -(message, writer) -> release.get() -&& serializer.writeMessage((TestMessage) message, writer)); - -try (Services senderServices = createMessagingService( -senderNode, -senderNetworkConfig, -() -> {}, -mockSerializationRegistry(longWaitSerializer)); -Services receiverServices = createMessagingService(receiverNode, receiverNetworkConfig) -) { -try { -CountDownLatch latch = new CountDownLatch(2); -receiverServices.messagingService.addMessageHandler( -TestMessageTypes.class, -