You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by dp...@apache.org on 2018/12/19 12:20:31 UTC
[32/61] [abbrv] ignite git commit: IGNITE-10488
ClusterCachesInfo.validateCacheGroupConfiguration should check cache
compression configuration
IGNITE-10488 ClusterCachesInfo.validateCacheGroupConfiguration should check cache compression configuration
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/5fb803a2
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/5fb803a2
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/5fb803a2
Branch: refs/heads/ignite-10639
Commit: 5fb803a2c92f0f0844e88acbcb81f508873bd7f7
Parents: 83abf89
Author: Sergi Vladykin <se...@gmail.com>
Authored: Mon Dec 17 16:15:04 2018 +0300
Committer: Sergi Vladykin <se...@gmail.com>
Committed: Mon Dec 17 16:15:04 2018 +0300
----------------------------------------------------------------------
.../compress/CompressionConfigurationTest.java | 109 +++++++++++++++++++
.../IgnitePdsCompressionTestSuite.java | 2 +
.../processors/cache/ClusterCachesInfo.java | 8 ++
3 files changed, 119 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/5fb803a2/modules/compress/src/test/java/org/apache/ignite/internal/processors/compress/CompressionConfigurationTest.java
----------------------------------------------------------------------
diff --git a/modules/compress/src/test/java/org/apache/ignite/internal/processors/compress/CompressionConfigurationTest.java b/modules/compress/src/test/java/org/apache/ignite/internal/processors/compress/CompressionConfigurationTest.java
new file mode 100644
index 0000000..c2d86fa
--- /dev/null
+++ b/modules/compress/src/test/java/org/apache/ignite/internal/processors/compress/CompressionConfigurationTest.java
@@ -0,0 +1,109 @@
+/*
+ * 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.processors.compress;
+
+import java.util.Objects;
+import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.configuration.DiskPageCompression;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.internal.util.typedef.X;
+import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+import static org.apache.ignite.configuration.DiskPageCompression.LZ4;
+import static org.apache.ignite.configuration.DiskPageCompression.ZSTD;
+
+/**
+ */
+@RunWith(JUnit4.class)
+public class CompressionConfigurationTest extends GridCommonAbstractTest {
+ /** */
+ DiskPageCompression compression1;
+
+ /** */
+ DiskPageCompression compression2;
+
+ /** */
+ Integer level1;
+
+ /** */
+ Integer level2;
+
+ /** {@inheritDoc} */
+ @Override protected IgniteConfiguration getConfiguration(String instanceName) throws Exception {
+ CacheConfiguration<Object,Object> ccfg1 = new CacheConfiguration<>("cache1");
+
+ ccfg1.setDiskPageCompression(compression1);
+ ccfg1.setDiskPageCompressionLevel(level1);
+ ccfg1.setGroupName("myGroup");
+
+ CacheConfiguration<Object,Object> ccfg2 = new CacheConfiguration<>("cache2");
+
+ ccfg2.setDiskPageCompression(compression2);
+ ccfg2.setDiskPageCompressionLevel(level2);
+ ccfg2.setGroupName("myGroup");
+
+ return super.getConfiguration(instanceName).setCacheConfiguration(ccfg1, ccfg2);
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ @Test
+ public void testInconsistentCacheGroupCompressionConfig() throws Exception {
+ doTestConfig(ZSTD, null, null, null);
+ doTestConfig(ZSTD, 1, LZ4, 1);
+ doTestConfig(ZSTD, null, LZ4, null);
+
+ doTestConfig(null, null, null, 2);
+ doTestConfig(ZSTD, null, ZSTD, 2);
+ doTestConfig(ZSTD, 1, ZSTD, 2);
+ }
+
+ /**
+ */
+ private void doTestConfig(
+ DiskPageCompression compression1,
+ Integer level1,
+ DiskPageCompression compression2,
+ Integer level2
+ ) throws Exception {
+ this.compression1 = compression1;
+ this.level1 = level1;
+
+ this.compression2 = compression2;
+ this.level2 = level2;
+
+ try {
+ startGrid();
+
+ fail("Exception expected.");
+ }
+ catch (IgniteCheckedException e) {
+ if (compression1 != compression2)
+ assertTrue(e.getCause().getMessage().startsWith("Disk page compression mismatch"));
+ else if (!Objects.equals(level1, level2))
+ assertTrue(e.getCause().getMessage().startsWith("Disk page compression level mismatch"));
+ else
+ fail(X.getFullStackTrace(e));
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/5fb803a2/modules/compress/src/test/java/org/apache/ignite/testsuites/IgnitePdsCompressionTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/compress/src/test/java/org/apache/ignite/testsuites/IgnitePdsCompressionTestSuite.java b/modules/compress/src/test/java/org/apache/ignite/testsuites/IgnitePdsCompressionTestSuite.java
index a24144d..696c614 100644
--- a/modules/compress/src/test/java/org/apache/ignite/testsuites/IgnitePdsCompressionTestSuite.java
+++ b/modules/compress/src/test/java/org/apache/ignite/testsuites/IgnitePdsCompressionTestSuite.java
@@ -19,6 +19,7 @@ package org.apache.ignite.testsuites;
import junit.framework.JUnit4TestAdapter;
import junit.framework.TestSuite;
+import org.apache.ignite.internal.processors.compress.CompressionConfigurationTest;
import org.apache.ignite.internal.processors.compress.CompressionProcessorTest;
import org.apache.ignite.internal.processors.compress.DiskPageCompressionIntegrationAsyncTest;
import org.apache.ignite.internal.processors.compress.DiskPageCompressionIntegrationTest;
@@ -37,6 +38,7 @@ public class IgnitePdsCompressionTestSuite {
public static TestSuite suite() {
TestSuite suite = new TestSuite("Ignite Persistent Store Test Suite (with page compression).");
+ suite.addTest(new JUnit4TestAdapter(CompressionConfigurationTest.class));
suite.addTest(new JUnit4TestAdapter(CompressionProcessorTest.class));
suite.addTest(new JUnit4TestAdapter(FileSystemUtilsTest.class));
suite.addTest(new JUnit4TestAdapter(DiskPageCompressionIntegrationTest.class));
http://git-wip-us.apache.org/repos/asf/ignite/blob/5fb803a2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/ClusterCachesInfo.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/ClusterCachesInfo.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/ClusterCachesInfo.java
index b85c8df..b97d12f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/ClusterCachesInfo.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/ClusterCachesInfo.java
@@ -1928,6 +1928,14 @@ class ClusterCachesInfo {
CU.validateCacheGroupsAttributesMismatch(log, cfg, startCfg, "encryptionEnabled", "Encrypted",
cfg.isEncryptionEnabled(), startCfg.isEncryptionEnabled(), true);
+
+ CU.validateCacheGroupsAttributesMismatch(log, cfg, startCfg,
+ "diskPageCompression", "Disk page compression",
+ cfg.getDiskPageCompression(), startCfg.getDiskPageCompression(), true);
+
+ CU.validateCacheGroupsAttributesMismatch(log, cfg, startCfg,
+ "diskPageCompressionLevel", "Disk page compression level",
+ cfg.getDiskPageCompressionLevel(), startCfg.getDiskPageCompressionLevel(), true);
}
/**