You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by tk...@apache.org on 2026/04/06 06:21:41 UTC
(ignite) 01/01: IGNITE-28457 wip
This is an automated email from the ASF dual-hosted git repository.
tkalkirill pushed a commit to branch ignite-28457
in repository https://gitbox.apache.org/repos/asf/ignite.git
commit b50ca79fcc5426d56902d80915230cccd9658e80
Author: Kirill Tkalenko <tk...@yandex.ru>
AuthorDate: Mon Apr 6 09:21:17 2026 +0300
IGNITE-28457 wip
---
.../cache/persistence/filename/NodeFileTree.java | 5 ++
.../db/wal/WalCompactionSwitchOnTest.java | 62 +++++++++-------------
2 files changed, 31 insertions(+), 36 deletions(-)
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/filename/NodeFileTree.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/filename/NodeFileTree.java
index 159eeb77db7..7064f4f9d97 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/filename/NodeFileTree.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/filename/NodeFileTree.java
@@ -451,6 +451,11 @@ public class NodeFileTree extends SharedFileTree {
return wal().listFiles(NodeFileTree::walCompactedSegment);
}
+ /** @return An array of archive compacted WAL segment files. */
+ public File[] walArchiveCompactedSegments() {
+ return walArchive().listFiles(NodeFileTree::walCompactedSegment);
+ }
+
/** @return An array of compacted or raw WAL segment files. */
public File[] walCompactedOrRawSegments() {
return wal().listFiles(NodeFileTree::walCompactedOrRawSegment);
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/WalCompactionSwitchOnTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/WalCompactionSwitchOnTest.java
index b8747c73b19..1aa832d8865 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/WalCompactionSwitchOnTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/WalCompactionSwitchOnTest.java
@@ -17,7 +17,6 @@
package org.apache.ignite.internal.processors.cache.persistence.db.wal;
-import java.io.File;
import org.apache.ignite.IgniteCache;
import org.apache.ignite.cache.CacheMode;
import org.apache.ignite.cluster.ClusterState;
@@ -27,12 +26,11 @@ import org.apache.ignite.configuration.DataStorageConfiguration;
import org.apache.ignite.configuration.IgniteConfiguration;
import org.apache.ignite.internal.IgniteEx;
import org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree;
-import org.apache.ignite.internal.util.lang.GridAbsPredicate;
-import org.apache.ignite.testframework.GridTestUtils;
import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
import org.junit.Test;
import static org.apache.ignite.internal.processors.cache.persistence.wal.FileWriteAheadLogManager.WAL_SEGMENT_TEMP_FILE_COMPACTED_FILTER;
+import static org.apache.ignite.testframework.GridTestUtils.waitForCondition;
/**
* Load without compaction -> Stop -> Enable WAL Compaction -> Start.
@@ -59,6 +57,19 @@ public class WalCompactionSwitchOnTest extends GridCommonAbstractTest {
/** {@inheritDoc} */
@Override protected void beforeTest() throws Exception {
+ super.beforeTest();
+
+ stopAllGrids();
+
+ cleanPersistenceDir();
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void afterTest() throws Exception {
+ super.afterTest();
+
+ stopAllGrids();
+
cleanPersistenceDir();
}
@@ -69,57 +80,36 @@ public class WalCompactionSwitchOnTest extends GridCommonAbstractTest {
*/
@Test
public void testWalCompactionSwitch() throws Exception {
- IgniteEx ex = startGrid(0);
+ IgniteEx n = startGrid(0);
+ n.cluster().state(ClusterState.ACTIVE);
- ex.cluster().state(ClusterState.ACTIVE);
-
- IgniteCache<Integer, Integer> cache = ex.getOrCreateCache(
+ IgniteCache<Integer, Integer> cache = n.getOrCreateCache(
new CacheConfiguration<Integer, Integer>()
.setName("c1")
.setGroupName("g1")
.setCacheMode(CacheMode.PARTITIONED)
);
- for (int i = 0; i < 500; i++)
+ for (int i = 0; i < 10_000; i++)
cache.put(i, i);
- NodeFileTree ft = ex.context().pdsFolderResolver().fileTree();
-
forceCheckpoint();
- GridTestUtils.waitForCondition(new GridAbsPredicate() {
- @Override public boolean apply() {
- File[] archivedFiles = ft.walSegments();
-
- return archivedFiles.length == 39;
- }
- }, 5000);
+ assertTrue(waitForCondition(() -> ft(grid(0)).walSegments().length >= 10, 5_000, 32));
stopGrid(0);
compactionEnabled = true;
- ex = startGrid(0);
-
- ex.cluster().state(ClusterState.ACTIVE);
-
- File archiveDir = ex.context().pdsFolderResolver().fileTree().walArchive();
-
- GridTestUtils.waitForCondition(new GridAbsPredicate() {
- @Override public boolean apply() {
- File[] archivedFiles = archiveDir.listFiles(NodeFileTree::walCompactedSegment);
+ n = startGrid(0);
+ n.cluster().state(ClusterState.ACTIVE);
- return archivedFiles.length == 20;
- }
- }, 5000);
-
- File[] tmpFiles = archiveDir.listFiles(WAL_SEGMENT_TEMP_FILE_COMPACTED_FILTER);
-
- assertEquals(0, tmpFiles.length);
+ assertTrue(waitForCondition(() -> ft(grid(0)).walArchiveCompactedSegments().length >= 5, 5_000, 32));
+ assertTrue(ft(n).walArchive().listFiles(WAL_SEGMENT_TEMP_FILE_COMPACTED_FILTER).length >= 0);
}
- /** {@inheritDoc} */
- @Override protected void afterTest() throws Exception {
- stopAllGrids();
+ /** */
+ private static NodeFileTree ft(IgniteEx n) {
+ return n.context().pdsFolderResolver().fileTree();
}
}