You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ag...@apache.org on 2018/04/23 07:12:24 UTC
[28/50] [abbrv] ignite git commit: IGNITE-8302 Reduce test IO
consumption in case Direct IO is enabled,
fixes flakyness of testPageRecoveryAfterFileCorruption - Fixes #3865.
IGNITE-8302 Reduce test IO consumption in case Direct IO is enabled, fixes flakyness of testPageRecoveryAfterFileCorruption - Fixes #3865.
Signed-off-by: dpavlov <dp...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/d853ebb7
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/d853ebb7
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/d853ebb7
Branch: refs/heads/ignite-6083
Commit: d853ebb77d868f2626ff5cd613bbc38b1d13e594
Parents: 6c6f094
Author: dpavlov <dp...@apache.org>
Authored: Wed Apr 18 21:15:17 2018 +0300
Committer: dpavlov <dp...@apache.org>
Committed: Wed Apr 18 21:15:17 2018 +0300
----------------------------------------------------------------------
...gnitePdsRecoveryAfterFileCorruptionTest.java | 29 ++++++++++++--------
.../ignite/testsuites/IgnitePdsTestSuite2.java | 7 +++--
...iveIoPdsRecoveryAfterFileCorruptionTest.java | 12 ++++++++
.../testsuites/IgnitePdsNativeIoTestSuite2.java | 4 +++
4 files changed, 37 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/d853ebb7/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsRecoveryAfterFileCorruptionTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsRecoveryAfterFileCorruptionTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsRecoveryAfterFileCorruptionTest.java
index 5dc0da9..e03cf52 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsRecoveryAfterFileCorruptionTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsRecoveryAfterFileCorruptionTest.java
@@ -54,14 +54,14 @@ import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
/**
- *
+ * This test generates WAL & Page Store with N pages, then rewrites pages with zeroes and tries to acquire all pages.
*/
public class IgnitePdsRecoveryAfterFileCorruptionTest extends GridCommonAbstractTest {
/** Ip finder. */
private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
/** Total pages. */
- private static final int totalPages = 1024;
+ private static final int totalPages = 512;
/** Cache name. */
private final String cacheName = "cache";
@@ -120,7 +120,7 @@ public class IgnitePdsRecoveryAfterFileCorruptionTest extends GridCommonAbstract
public void testPageRecoveryAfterFileCorruption() throws Exception {
IgniteEx ig = startGrid(0);
- ig.active(true);
+ ig.cluster().active(true);
IgniteCache<Integer, Integer> cache = ig.cache(cacheName);
@@ -144,13 +144,15 @@ public class IgnitePdsRecoveryAfterFileCorruptionTest extends GridCommonAbstract
int cacheId = sharedCtx.cache().cache(cacheName).context().cacheId();
- FullPageId[] pages = new FullPageId[totalPages];
+ int pagesCnt = getTotalPagesToTest();
+
+ FullPageId[] pages = new FullPageId[pagesCnt];
// Get lock to prevent assertion. A new page should be allocated under checkpoint lock.
psMgr.checkpointReadLock();
try {
- for (int i = 0; i < totalPages; i++) {
+ for (int i = 0; i < pagesCnt; i++) {
pages[i] = new FullPageId(mem.allocatePage(cacheId, 0, PageIdAllocator.FLAG_DATA), cacheId);
initPage(mem, pageIO, pages[i]);
@@ -174,12 +176,19 @@ public class IgnitePdsRecoveryAfterFileCorruptionTest extends GridCommonAbstract
ig = startGrid(0);
- ig.active(true);
+ ig.cluster().active(true);
checkRestore(ig, pages);
}
/**
+ * @return count of pages to test. Note complexity of test is N^2.
+ */
+ protected int getTotalPagesToTest() {
+ return totalPages;
+ }
+
+ /**
* Initializes page.
* @param mem page memory implementation.
* @param pageIO page io implementation.
@@ -287,9 +296,7 @@ public class IgnitePdsRecoveryAfterFileCorruptionTest extends GridCommonAbstract
wal.flush(start, false);
- for (int i = 0; i < totalPages; i++) {
- FullPageId fullId = pages[i];
-
+ for (FullPageId fullId : pages) {
long page = mem.acquirePage(fullId.groupId(), fullId.pageId());
try {
@@ -325,9 +332,7 @@ public class IgnitePdsRecoveryAfterFileCorruptionTest extends GridCommonAbstract
long write = 0;
- for (int i = 0; i < totalPages; i++) {
- FullPageId fullId = pages[i];
-
+ for (FullPageId fullId : pages) {
if (pageIds.contains(fullId)) {
long cpStart = System.nanoTime();
http://git-wip-us.apache.org/repos/asf/ignite/blob/d853ebb7/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePdsTestSuite2.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePdsTestSuite2.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePdsTestSuite2.java
index ede537e..6d953cd 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePdsTestSuite2.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePdsTestSuite2.java
@@ -77,7 +77,7 @@ public class IgnitePdsTestSuite2 extends TestSuite {
*
* @param suite suite to add tests into.
*/
- public static void addRealPageStoreTestsLongRunning(TestSuite suite) {
+ private static void addRealPageStoreTestsLongRunning(TestSuite suite) {
suite.addTestSuite(IgnitePdsTransactionsHangTest.class);
suite.addTestSuite(IgnitePdsPageEvictionDuringPartitionClearTest.class);
@@ -87,6 +87,9 @@ public class IgnitePdsTestSuite2 extends TestSuite {
suite.addTestSuite(IgnitePdsContinuousRestartTest2.class);
suite.addTestSuite(IgnitePdsContinuousRestartTestWithSharedGroupAndIndexes.class);
+
+ // Integrity test.
+ suite.addTestSuite(IgnitePdsRecoveryAfterFileCorruptionTest.class);
}
/**
@@ -95,8 +98,6 @@ public class IgnitePdsTestSuite2 extends TestSuite {
* @param suite suite to add tests into.
*/
public static void addRealPageStoreTests(TestSuite suite) {
- // Integrity test.
- suite.addTestSuite(IgnitePdsRecoveryAfterFileCorruptionTest.class);
suite.addTestSuite(IgnitePdsPageSizesTest.class);
// Metrics test.
http://git-wip-us.apache.org/repos/asf/ignite/blob/d853ebb7/modules/direct-io/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgniteNativeIoPdsRecoveryAfterFileCorruptionTest.java
----------------------------------------------------------------------
diff --git a/modules/direct-io/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgniteNativeIoPdsRecoveryAfterFileCorruptionTest.java b/modules/direct-io/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgniteNativeIoPdsRecoveryAfterFileCorruptionTest.java
new file mode 100644
index 0000000..4d65bf3
--- /dev/null
+++ b/modules/direct-io/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgniteNativeIoPdsRecoveryAfterFileCorruptionTest.java
@@ -0,0 +1,12 @@
+package org.apache.ignite.internal.processors.cache.persistence;
+
+/**
+ * Native IO tests can't use page store, so this test limit pages count to 128.
+ * 524288 bytes to be read 128 times, 64Mbytes total read load.
+ */
+public class IgniteNativeIoPdsRecoveryAfterFileCorruptionTest extends IgnitePdsRecoveryAfterFileCorruptionTest {
+ /** {@inheritDoc} */
+ @Override protected int getTotalPagesToTest() {
+ return 128;
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/d853ebb7/modules/direct-io/src/test/java/org/apache/ignite/testsuites/IgnitePdsNativeIoTestSuite2.java
----------------------------------------------------------------------
diff --git a/modules/direct-io/src/test/java/org/apache/ignite/testsuites/IgnitePdsNativeIoTestSuite2.java b/modules/direct-io/src/test/java/org/apache/ignite/testsuites/IgnitePdsNativeIoTestSuite2.java
index 54dd7d3..679e3f7 100644
--- a/modules/direct-io/src/test/java/org/apache/ignite/testsuites/IgnitePdsNativeIoTestSuite2.java
+++ b/modules/direct-io/src/test/java/org/apache/ignite/testsuites/IgnitePdsNativeIoTestSuite2.java
@@ -17,6 +17,7 @@
package org.apache.ignite.testsuites;
import junit.framework.TestSuite;
+import org.apache.ignite.internal.processors.cache.persistence.IgniteNativeIoPdsRecoveryAfterFileCorruptionTest;
/**
* Same as {@link IgnitePdsTestSuite2} but is started with direct-oi jar in classpath.
@@ -31,6 +32,9 @@ public class IgnitePdsNativeIoTestSuite2 extends TestSuite {
IgnitePdsTestSuite2.addRealPageStoreTests(suite);
+ //Integrity test with reduced count of pages.
+ suite.addTestSuite(IgniteNativeIoPdsRecoveryAfterFileCorruptionTest.class);
+
return suite;
}
}