You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by yz...@apache.org on 2016/09/30 17:01:42 UTC
[1/3] ignite git commit: IGNITE-3897 Test transactional behaviour of
caches during rolling restart
Repository: ignite
Updated Branches:
refs/heads/ignite-3897-pr1059 [created] c75f6fc14
IGNITE-3897 Test transactional behaviour of caches during rolling restart
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/a853ee32
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/a853ee32
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/a853ee32
Branch: refs/heads/ignite-3897-pr1059
Commit: a853ee325dd93e5c2adfe32ae1e89fa687aee9b2
Parents: 3db0a3d
Author: John Levey <jo...@workday.com>
Authored: Wed Aug 3 11:32:22 2016 +0100
Committer: John Levey <jo...@workday.com>
Committed: Fri Sep 16 10:42:48 2016 +0200
----------------------------------------------------------------------
.../rebalancing/CacheNodeSafeAssertion.java | 118 -------
.../GridCacheRebalancingAggregationTest.java | 263 ++++++++++++++
...cheRebalancingPartitionDistributionTest.java | 1 +
.../GridCacheRebalancingTransactionTest.java | 339 +++++++++++++++++++
.../testframework/assertions/Assertion.java | 2 +-
.../assertions/CacheNodeSafeAssertion.java | 117 +++++++
.../assertions/EventualAssertion.java | 99 ++++++
.../IgniteCacheFailoverTestSuite.java | 4 +
8 files changed, 824 insertions(+), 119 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/a853ee32/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/CacheNodeSafeAssertion.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/CacheNodeSafeAssertion.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/CacheNodeSafeAssertion.java
deleted file mode 100644
index bf6b63f..0000000
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/CacheNodeSafeAssertion.java
+++ /dev/null
@@ -1,118 +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.processors.cache.distributed.rebalancing;
-
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.apache.ignite.Ignite;
-import org.apache.ignite.cache.affinity.Affinity;
-import org.apache.ignite.cluster.ClusterNode;
-import org.apache.ignite.testframework.assertions.Assertion;
-
-/**
- * {@link Assertion} that checks that the primary and backup partitions are distributed such that we won't lose any data
- * if we lose a single node. This implies that the cache in question was configured with a backup count of at least one
- * and that all partitions are backed up to a different node from the primary.
- */
-public class CacheNodeSafeAssertion implements Assertion {
- /** The {@link Ignite} instance. */
- private final Ignite ignite;
-
- /** The cache name. */
- private final String cacheName;
-
- /**
- * Construct a new {@link CacheNodeSafeAssertion} for the given {@code cacheName}.
- *
- * @param ignite The Ignite instance.
- * @param cacheName The cache name.
- */
- public CacheNodeSafeAssertion(Ignite ignite, String cacheName) {
- this.ignite = ignite;
- this.cacheName = cacheName;
- }
-
- /**
- * @return Ignite instance.
- */
- protected Ignite ignite() {
- return ignite;
- }
-
- /** {@inheritDoc} */
- @Override public void test() throws AssertionError {
- Affinity<?> affinity = ignite.affinity(cacheName);
-
- int partCnt = affinity.partitions();
-
- boolean hostSafe = true;
-
- boolean nodeSafe = true;
-
- for (int x = 0; x < partCnt; ++x) {
- // Results are returned with the primary node first and backups after. We want to ensure that there is at
- // least one backup on a different host.
- Collection<ClusterNode> results = affinity.mapPartitionToPrimaryAndBackups(x);
-
- Iterator<ClusterNode> nodes = results.iterator();
-
- boolean newHostSafe = false;
-
- boolean newNodeSafe = false;
-
- if (nodes.hasNext()) {
- ClusterNode primary = nodes.next();
-
- // For host safety, get all nodes on the same host as the primary node and ensure at least one of the
- // backups is on a different host. For node safety, make sure at least of of the backups is not the
- // primary.
- Collection<ClusterNode> neighbors = hostSafe ? ignite.cluster().forHost(primary).nodes() : null;
-
- while (nodes.hasNext()) {
- ClusterNode backup = nodes.next();
-
- if (hostSafe) {
- if (!neighbors.contains(backup))
- newHostSafe = true;
- }
-
- if (nodeSafe) {
- if (!backup.equals(primary))
- newNodeSafe = true;
- }
- }
- }
-
- hostSafe = newHostSafe;
-
- nodeSafe = newNodeSafe;
-
- if (!hostSafe && !nodeSafe)
- break;
- }
-
- if (hostSafe)
- return;
-
- if (nodeSafe)
- return;
-
- throw new AssertionError("Cache " + cacheName + " is endangered!");
- }
-}
http://git-wip-us.apache.org/repos/asf/ignite/blob/a853ee32/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheRebalancingAggregationTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheRebalancingAggregationTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheRebalancingAggregationTest.java
new file mode 100644
index 0000000..1d566e9
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheRebalancingAggregationTest.java
@@ -0,0 +1,263 @@
+/*
+ * 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.cache.distributed.rebalancing;
+
+import java.util.Collections;
+import java.util.LinkedHashSet;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeMap;
+
+import javax.cache.Cache;
+
+import org.apache.ignite.Ignite;
+import org.apache.ignite.cache.CacheAtomicityMode;
+import org.apache.ignite.cache.CacheMode;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.lang.IgnitePredicate;
+import org.apache.ignite.testframework.assertions.Assertion;
+import org.apache.ignite.testframework.assertions.CacheNodeSafeAssertion;
+import org.apache.ignite.testframework.junits.common.GridRollingRestartAbstractTest;
+import org.apache.ignite.transactions.Transaction;
+
+/**
+ * Test running a continuous aggregate sum against a running cluster that is undergoing a rolling restart.
+ */
+public class GridCacheRebalancingAggregationTest extends GridRollingRestartAbstractTest {
+ /** The number of entries to put to the test cache. */
+ private static final int ENTRY_COUNT = 100;
+
+ /** The maximum number of times to restart nodes in the cluster. */
+ private static final int MAX_RESTARTS = 5;
+
+ /** The key of the cache entry that contains the current upper range of the aggregation. */
+ private static final int CEILING_KEY = Integer.MAX_VALUE;
+
+ /** Test cache name. */
+ private static final String CACHE_NAME = "AGGREGATION_TEST";
+
+ /** Keys of entries under test. */
+ private static final Set<Integer> KEYS;
+ static {
+ final Set<Integer> keys = new LinkedHashSet<>();
+ for (int i = 0; i < ENTRY_COUNT; i++) {
+ keys.add(i);
+ }
+ KEYS = Collections.unmodifiableSet(keys);
+ }
+
+ /** Thread responsible for writing to the cache.*/
+ private UpdateCacheThread updateThread;
+
+ /** The number of aggregations since the last node restart.*/
+ private volatile int aggregationCount;
+
+ /** Total number of times we updated the cache.*/
+ private volatile int totalUpdateCount;
+
+ /** {@inheritDoc} */
+ @Override
+ public int serverCount() {
+ return 3;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public int getMaxRestarts() {
+ return MAX_RESTARTS;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ protected long getTestTimeout() {
+ return 1000 * 60 * 5;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected CacheConfiguration<?, ?> getCacheConfiguration() {
+ return new CacheConfiguration<Integer, Integer>(CACHE_NAME)
+ .setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL)
+ .setCacheMode(CacheMode.PARTITIONED)
+ .setBackups(1);
+ }
+
+ /** {@inheritDoc} */
+ @Override public IgnitePredicate<Ignite> getRestartCheck() {
+ return new IgnitePredicate<Ignite>() {
+ @Override public boolean apply(final Ignite ignite) {
+ return serverCount() >= ignite.cluster().forServers().nodes().size()
+ && GridCacheRebalancingAggregationTest.this.aggregationCount > 0;
+ }
+ };
+ }
+
+ /** {@inheritDoc} */
+ @Override public Assertion getRestartAssertion() {
+ return new CacheNodeSafeAssertion(grid(0), CACHE_NAME);
+ }
+
+ /**
+ * This test has three threads; the writer thread updates a monotonically increasing set of values for the keys,
+ * while the reader thread is performing a checksum on the contents of the cache while the restart thread is
+ * killing nodes. This test will fail if we lose any data.
+ */
+ public void testRollingRestartAggregation()
+ throws InterruptedException {
+
+ startUpdateThread();
+ RollingRestartThread restartThread = super.rollingRestartThread;
+
+ int totalAggregationCount = 0;
+ int checksumFailures = 0;
+ do {
+ if (!checksumCache()) {
+ checksumFailures++;
+ }
+
+ totalAggregationCount++;
+ this.aggregationCount++;
+ } while (restartThread.isAlive());
+
+ grid(0).log().info("Total successful aggregations during the test were: " + totalAggregationCount);
+ grid(0).log().info("Total successful updates during the test were: " + this.totalUpdateCount);
+ grid(0).log().info("Total node restarts during the test were: " + restartThread.getRestartTotal());
+
+ this.updateThread.join();
+
+ assertEquals(0, checksumFailures);
+ assertEquals(getMaxRestarts(), restartThread.getRestartTotal());
+ }
+
+ /**
+ * Create and start the {@link UpdateCacheThread}.
+ */
+ private void startUpdateThread() {
+ UpdateCacheThread updateThread = new UpdateCacheThread();
+ updateThread.start();
+ this.updateThread = updateThread;
+ }
+
+ /**
+ * Check that the values in the cache are equal to the sum of values between the floor and ceiling (key in the cache
+ * signifying the highest value that has been written).
+ *
+ * @return true if the cache values sum to the expected value
+ */
+ private boolean checksumCache() {
+ final Ignite ignite = grid(0);
+ Cache<Integer, Integer> cache = ignite.cache(CACHE_NAME);
+ Throwable e = null;
+ for (int i = 0, c = 20; i <= c; ++i) {
+ try (Transaction tx = ignite.transactions().txStart()) {
+ tx.timeout(2*60*1000l);
+
+ Integer ceiling = cache.get(CEILING_KEY);
+ if (ceiling == null) {
+ return Boolean.TRUE;
+ }
+ int floor = ceiling - ENTRY_COUNT + 1;
+ Map<Integer, Integer> results = cache.getAll(KEYS);
+ tx.commit();
+
+ int sum = 0;
+ for (Integer j : results.values()) {
+ sum += j;
+ }
+
+ if (sum == calculateSum(floor, ceiling)) {
+ return Boolean.TRUE;
+ }
+
+ grid(0).log().info("Failed testing that sum of " + sum + " equals sum(" + floor + "," + ceiling + ")");
+ return Boolean.FALSE;
+ }
+ catch (Throwable ee) {
+ e = ee;
+ }
+ }
+ throw new RuntimeException("Failed to commit transaction after " + 20 + " retries", e);
+ }
+
+ /**
+ * Update the values in the cache.
+ */
+ private void updateCache() {
+ final Ignite ignite = grid(0);
+ Cache<Integer, Integer> cache = ignite.cache(CACHE_NAME);
+ Throwable e = null;
+ for (int i = 0, c = 20; i <= c; ++i) {
+ try (Transaction tx = ignite.transactions().txStart()) {
+ tx.timeout(2*60*1000l);
+
+ Integer currentCeiling = cache.get(CEILING_KEY);
+ int newCeiling = currentCeiling == null ? ENTRY_COUNT - 1 : currentCeiling + ENTRY_COUNT;
+ int value = currentCeiling == null ? 0 : currentCeiling + 1;
+ Map<Integer, Integer> entries = new TreeMap<>();
+ for (Integer key : KEYS) {
+ entries.put(key, value++);
+ }
+ cache.putAll(entries);
+ cache.put(CEILING_KEY, newCeiling);
+
+ GridCacheRebalancingAggregationTest.this.totalUpdateCount++;
+ if (!tx.isRollbackOnly()) {
+ tx.commit();
+ }
+ return;
+ }
+ catch (Throwable ee) {
+ e = ee;
+ }
+ }
+ throw new RuntimeException("Failed to commit transaction after " + 20 + " retries", e);
+ }
+
+ /**
+ * Calculate the sums of a range of values from floor to ceiling. This expects 0 gaps in the range.
+ *
+ * @param f The floor of the range.
+ * @param c The ceiling of the range.
+ *
+ * @return The sum.
+ */
+ private int calculateSum(long f, long c) {
+ return (int) ((c * (c + 1)) / 2 - ((f - 1) * ((f - 1) + 1)) / 2);
+ }
+
+ /**
+ * Update cache thread.
+ */
+ private class UpdateCacheThread extends Thread {
+ /**
+ * Default Constructor sets this thread to run as a daemon.
+ */
+ public UpdateCacheThread() {
+ setDaemon(true);
+ setName(UpdateCacheThread.class.getSimpleName());
+ }
+
+ /** {@inheritDoc} */
+ @Override public void run() {
+ RollingRestartThread restartThread = GridCacheRebalancingAggregationTest.this.rollingRestartThread;
+ do {
+ GridCacheRebalancingAggregationTest.this.updateCache();
+ }
+ while (restartThread.isAlive());
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/a853ee32/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheRebalancingPartitionDistributionTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheRebalancingPartitionDistributionTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheRebalancingPartitionDistributionTest.java
index 61ee9ea..cc1f83e 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheRebalancingPartitionDistributionTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheRebalancingPartitionDistributionTest.java
@@ -33,6 +33,7 @@ import org.apache.ignite.cluster.ClusterNode;
import org.apache.ignite.configuration.CacheConfiguration;
import org.apache.ignite.lang.IgnitePredicate;
import org.apache.ignite.testframework.assertions.Assertion;
+import org.apache.ignite.testframework.assertions.CacheNodeSafeAssertion;
import org.apache.ignite.testframework.junits.common.GridRollingRestartAbstractTest;
http://git-wip-us.apache.org/repos/asf/ignite/blob/a853ee32/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheRebalancingTransactionTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheRebalancingTransactionTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheRebalancingTransactionTest.java
new file mode 100644
index 0000000..b74fb5c
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheRebalancingTransactionTest.java
@@ -0,0 +1,339 @@
+/*
+ * 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.cache.distributed.rebalancing;
+
+import java.io.Serializable;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.LinkedHashSet;
+import java.util.Map;
+import java.util.Set;
+
+import javax.cache.Cache;
+import javax.cache.processor.EntryProcessor;
+import javax.cache.processor.EntryProcessorResult;
+import javax.cache.processor.MutableEntry;
+
+import org.apache.ignite.Ignite;
+import org.apache.ignite.cache.CacheAtomicWriteOrderMode;
+import org.apache.ignite.cache.CacheAtomicityMode;
+import org.apache.ignite.cache.CacheMode;
+import org.apache.ignite.cache.CacheRebalanceMode;
+import org.apache.ignite.cache.CacheWriteSynchronizationMode;
+import org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction;
+import org.apache.ignite.cache.eviction.lru.LruEvictionPolicy;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.configuration.NearCacheConfiguration;
+import org.apache.ignite.configuration.TransactionConfiguration;
+import org.apache.ignite.lang.IgnitePredicate;
+import org.apache.ignite.testframework.assertions.Assertion;
+import org.apache.ignite.testframework.assertions.CacheNodeSafeAssertion;
+import org.apache.ignite.testframework.assertions.EventualAssertion;
+import org.apache.ignite.testframework.junits.common.GridRollingRestartAbstractTest;
+import org.apache.ignite.transactions.Transaction;
+
+/**
+ * Test running transactional gets and puts against a running cluster that is undergoing a rolling restart.
+ */
+public class GridCacheRebalancingTransactionTest extends GridRollingRestartAbstractTest {
+ /** The number of entries to put to the test cache. */
+ private static final int ENTRY_COUNT = 100;
+
+ /** Test cache name. */
+ private static final String CACHE_NAME = "TRANSACTION_TEST_NEAR";
+
+ /** Near Cache Configuration. */
+ private static final NearCacheConfiguration<Integer, Integer> NEAR_CACHE_CONFIGURATION = new NearCacheConfiguration<Integer, Integer>()
+ .setNearEvictionPolicy(new LruEvictionPolicy<Integer, Integer>(Integer.MAX_VALUE));
+
+ /** The {@link CacheConfiguration} used by this test. */
+ @Override
+ protected CacheConfiguration<?, ?> getCacheConfiguration() {
+ return new CacheConfiguration<Integer, Integer>(CACHE_NAME)
+ .setCacheMode(CacheMode.PARTITIONED)
+ .setBackups(1)
+ .setAffinity(new RendezvousAffinityFunction(true /* machine-safe */, 271))
+ .setAtomicWriteOrderMode(CacheAtomicWriteOrderMode.CLOCK)
+ .setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL)
+ .setRebalanceMode(CacheRebalanceMode.SYNC)
+ .setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC)
+ .setEvictionPolicy(NEAR_CACHE_CONFIGURATION.getNearEvictionPolicy())
+ .setCopyOnRead(false)
+ .setNearConfiguration(NEAR_CACHE_CONFIGURATION);
+ }
+
+ /** Keys of entries being read and updated. */
+ private static final Set<Integer> KEYS;
+ static {
+ final Set<Integer> keys = new LinkedHashSet<>();
+ for (int i = 0; i < ENTRY_COUNT; i++) {
+ keys.add(i);
+ }
+ KEYS = Collections.unmodifiableSet(keys);
+ }
+
+ /** The number of transactions since the last node restart. */
+ private volatile int transactionCount;
+
+ /** {@inheritDoc} */
+ @Override public int serverCount() {
+ return 3;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public int getMaxRestarts() {
+ return 5;
+ }
+
+ /** {@inheritDoc} */
+ @Override public IgnitePredicate<Ignite> getRestartCheck() {
+ return new IgnitePredicate<Ignite>() {
+ @Override
+ public boolean apply(Ignite ignite) {
+ return serverCount() <= grid(0).cluster().forServers().nodes().size()
+ && GridCacheRebalancingTransactionTest.this.transactionCount > 0;
+ }
+ };
+ }
+
+ /** {@inheritDoc} */
+ @Override public Assertion getRestartAssertion() {
+ return new EventualAssertion(5000, new CacheNodeSafeAssertion(grid(0), CACHE_NAME));
+ }
+
+ /**
+ * This test performs a transactional update and checksum of the cache, as well as validates that the cache is
+ * not changed when a transaction is rolled back.
+ */
+ public void testRollingRestartTransaction()
+ throws InterruptedException {
+
+ Cache<Integer, Integer> cache = (Cache<Integer, Integer>) grid(0).getOrCreateCache(getCacheConfiguration());
+
+ boolean invoke = true;
+ int currentValue = 0;
+ int checksumFailures = 0;
+ int transactionCount = 0;
+ Map<Integer, Integer> lastChecksum = null;
+ do {
+ updateCache(cache, currentValue, invoke, false);
+ Map<Integer, Integer> checksum = checksumCache(cache, currentValue, lastChecksum);
+ if (checksum == null) {
+ grid(0).log().info(
+ "Checksum failure after commit (expected " + currentValue + ", invoke " + invoke + ").");
+ checksumFailures++;
+ }
+ else {
+ lastChecksum = checksum;
+ updateCache(cache, currentValue + 1, invoke, true);
+ checksum = checksumCache(cache, currentValue, lastChecksum);
+ if (checksum == null) {
+ checksumFailures++;
+ grid(0).log().info(
+ "Checksum failure after rollback (expected " + currentValue + ", invoke " + invoke + ").");
+ }
+ else {
+ lastChecksum = checksum;
+ }
+ }
+
+ invoke = !invoke;
+ currentValue++;
+ transactionCount++;
+ this.transactionCount = transactionCount;
+ } while (this.rollingRestartThread.isAlive());
+
+ grid(0).log().info("Total checksum failures during the test were: " + checksumFailures);
+ grid(0).log().info("Total transactions during the test were: " + transactionCount);
+ grid(0).log().info("Total node restarts during the test were: " + this.rollingRestartThread.getRestartTotal());
+
+ assertEquals(getMaxRestarts(), this.rollingRestartThread.getRestartTotal());
+ assertEquals(0, checksumFailures);
+ }
+
+ /**
+ * Updates the cache and either commit or rollback the update.
+ *
+ * @param cache the cache
+ * @param newValue the new value to update the entries with
+ * @param invoke whether to use invokeAll() or putAll()
+ * @param rollback whether to rollback the changes or commit
+ */
+ private void updateCache(final Cache<Integer, Integer> cache, final int newValue, final boolean invoke, final boolean rollback) {
+ final TransactionConfiguration txConfig = new TransactionConfiguration();
+ transact(new TransactionalTask<Object>() {
+ @Override
+ public Object run(Transaction tx) {
+ if (invoke) {
+ for (EntryProcessorResult<Boolean> result : cache.invokeAll(KEYS, new IntegerSetValue(newValue)).values()) {
+ if (!Boolean.TRUE.equals(result.get())) {
+ throw new IllegalStateException();
+ }
+ }
+ }
+ else {
+ Map<Integer, Integer> entries = new HashMap<>(ENTRY_COUNT);
+ for (Integer key : KEYS) {
+ entries.put(key, newValue);
+ }
+ cache.putAll(entries);
+ }
+
+ if (rollback) {
+ tx.rollback();
+ }
+ else {
+ tx.commit();
+ }
+ return null;
+ }
+ }, txConfig);
+ }
+
+ /**
+ * Validate that all entries in the cache have the same value.
+ *
+ * @param cache The cache.
+ * @param currentValue The value to validate.
+ * @param lastChecksum The last validated entries returned by this method.
+ *
+ * @return A map of all validated entries or null if there was a checksum error.
+ */
+ private Map<Integer, Integer> checksumCache(final Cache<Integer, Integer> cache,
+ final int currentValue,
+ final Map<Integer, Integer> lastChecksum) {
+ TransactionConfiguration txConfig = new TransactionConfiguration();
+ return transact(new TransactionalTask<Map<Integer, Integer>>() {
+ @Override
+ public Map<Integer, Integer> run(Transaction tx) {
+ Map<Integer, Integer> map = cache.getAll(KEYS);
+ for (int value : map.values()) {
+ if (value != currentValue) {
+ grid(0).log().info(
+ "Failed testing that all entries have a value of: " + currentValue + "\n\nCurrent: "
+ + map + "\n\nLast: " + lastChecksum);
+ return null;
+ }
+ }
+ return map;
+ }
+ }, txConfig);
+ }
+
+ /**
+ * Execute the {@link TransactionalTask} and return the result obtained.
+ *
+ * @param task The task to execute.
+ * @param config The transaction configuration.
+ * @param <T> The type of result.
+ *
+ * @return The result of executing the transaction.
+ * @throws RuntimeException If there are errors.
+ */
+ private <T> T transact(TransactionalTask<T> task, TransactionConfiguration config) {
+ if (task == null) {
+ throw new IllegalArgumentException("Missing TransactionalTask");
+ }
+ if (config == null) {
+ throw new IllegalArgumentException("Missing TransactionConfiguration");
+ }
+ Throwable e = null;
+ for (int i = 0, c = 20; i <= c; ++i) {
+ try (Transaction tx = startTransaction(config)) {
+ T t = task.run(tx);
+ if (!tx.isRollbackOnly()) {
+ tx.commit();
+ }
+ return t;
+ }
+ catch (final Throwable ee) {
+ e = ee;
+ }
+ }
+ throw new RuntimeException("Failed to commit transaction", e);
+ }
+
+ /**
+ * Helper method to start / continue an existing {@link Transaction}.
+ *
+ * @param config The transaction configuration to use to determine the timeout.
+ *
+ * @return The existing Transaction or a newly started Transaction.
+ * @throws IllegalStateException If there are exceptions.
+ */
+ private Transaction startTransaction(TransactionConfiguration config) {
+ Ignite ignite = grid(0);
+ Transaction txThread = ignite.transactions().tx();
+
+ // We do not support nested transactions. If one has already been started, return the existing transaction
+ if (txThread == null) {
+ try {
+ Transaction tx = ignite.transactions().txStart();
+ tx.timeout(config.getDefaultTxTimeout());
+ return tx;
+ }
+ catch (RuntimeException e) {
+ throw new IllegalStateException(e);
+ }
+ }
+ else {
+ return txThread;
+ }
+ }
+
+ /**
+ * Interface to represent the execution of a transaction that returns a result.
+ *
+ * @param <T> The results of executing the transaction.
+ */
+ interface TransactionalTask<T> {
+ /**
+ * Run the task.
+ *
+ * @param tx The current transaction.
+ * @return The result from running the task.
+ */
+ T run(Transaction tx);
+ }
+
+ /**
+ * {@link EntryProcessor} used to update an entry with a specified integer value.
+ */
+ private static class IntegerSetValue
+ implements EntryProcessor<Integer, Integer, Boolean>, Serializable {
+ /** The value. */
+ private final int newValue;
+
+ /**
+ * Create a new {@link IntegerSetValue} processor that will update a targeted entry with the specified value.
+ *
+ * @param newValue The new value.
+ */
+ public IntegerSetValue(int newValue) {
+ this.newValue = newValue;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public Boolean process(MutableEntry<Integer, Integer> entry, Object... args) {
+ entry.setValue(this.newValue);
+ return Boolean.TRUE;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/a853ee32/modules/core/src/test/java/org/apache/ignite/testframework/assertions/Assertion.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/assertions/Assertion.java b/modules/core/src/test/java/org/apache/ignite/testframework/assertions/Assertion.java
index 4799d88..62e04dc 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/assertions/Assertion.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/assertions/Assertion.java
@@ -27,5 +27,5 @@ public interface Assertion {
*
* @throws AssertionError if the condition was not satisfied.
*/
- public void test() throws AssertionError;
+ void test() throws AssertionError;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/a853ee32/modules/core/src/test/java/org/apache/ignite/testframework/assertions/CacheNodeSafeAssertion.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/assertions/CacheNodeSafeAssertion.java b/modules/core/src/test/java/org/apache/ignite/testframework/assertions/CacheNodeSafeAssertion.java
new file mode 100644
index 0000000..5d74c11
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/assertions/CacheNodeSafeAssertion.java
@@ -0,0 +1,117 @@
+/*
+ * 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.testframework.assertions;
+
+import java.util.Collection;
+import java.util.Iterator;
+
+import org.apache.ignite.Ignite;
+import org.apache.ignite.cache.affinity.Affinity;
+import org.apache.ignite.cluster.ClusterNode;
+
+/**
+ * {@link Assertion} that checks that the primary and backup partitions are distributed such that we won't lose any data
+ * if we lose a single node. This implies that the cache in question was configured with a backup count of at least one
+ * and that all partitions are backed up to a different node from the primary.
+ */
+public class CacheNodeSafeAssertion implements Assertion {
+ /** The {@link Ignite} instance. */
+ private final Ignite ignite;
+
+ /** The cache name. */
+ private final String cacheName;
+
+ /**
+ * Construct a new {@link CacheNodeSafeAssertion} for the given {@code cacheName}.
+ *
+ * @param ignite The Ignite instance.
+ * @param cacheName The cache name.
+ */
+ public CacheNodeSafeAssertion(Ignite ignite, String cacheName) {
+ this.ignite = ignite;
+ this.cacheName = cacheName;
+ }
+
+ /**
+ * @return Ignite instance.
+ */
+ protected Ignite ignite() {
+ return ignite;
+ }
+
+ /** {@inheritDoc} */
+ @Override public void test() throws AssertionError {
+ Affinity<?> affinity = ignite.affinity(cacheName);
+
+ int partCnt = affinity.partitions();
+
+ boolean hostSafe = true;
+
+ boolean nodeSafe = true;
+
+ for (int x = 0; x < partCnt; ++x) {
+ // Results are returned with the primary node first and backups after. We want to ensure that there is at
+ // least one backup on a different host.
+ Collection<ClusterNode> results = affinity.mapPartitionToPrimaryAndBackups(x);
+
+ Iterator<ClusterNode> nodes = results.iterator();
+
+ boolean newHostSafe = false;
+
+ boolean newNodeSafe = false;
+
+ if (nodes.hasNext()) {
+ ClusterNode primary = nodes.next();
+
+ // For host safety, get all nodes on the same host as the primary node and ensure at least one of the
+ // backups is on a different host. For node safety, make sure at least of of the backups is not the
+ // primary.
+ Collection<ClusterNode> neighbors = hostSafe ? ignite.cluster().forHost(primary).nodes() : null;
+
+ while (nodes.hasNext()) {
+ ClusterNode backup = nodes.next();
+
+ if (hostSafe) {
+ if (!neighbors.contains(backup))
+ newHostSafe = true;
+ }
+
+ if (nodeSafe) {
+ if (!backup.equals(primary))
+ newNodeSafe = true;
+ }
+ }
+ }
+
+ hostSafe = newHostSafe;
+
+ nodeSafe = newNodeSafe;
+
+ if (!hostSafe && !nodeSafe)
+ break;
+ }
+
+ if (hostSafe)
+ return;
+
+ if (nodeSafe)
+ return;
+
+ throw new AssertionError("Cache " + cacheName + " is endangered!");
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/a853ee32/modules/core/src/test/java/org/apache/ignite/testframework/assertions/EventualAssertion.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/assertions/EventualAssertion.java b/modules/core/src/test/java/org/apache/ignite/testframework/assertions/EventualAssertion.java
new file mode 100644
index 0000000..6fa7994
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/assertions/EventualAssertion.java
@@ -0,0 +1,99 @@
+/*
+ * 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.testframework.assertions;
+
+/**
+ * An {@link Assertion} that attempts to assert a condition within a maximum amount of time.
+ */
+public class EventualAssertion implements Assertion {
+ /** The assertion condition. */
+ private final Assertion assertion;
+
+ /**
+ * The amount of time in milliseconds to wait for the assertion to succeed. If zero try forever, if negative
+ * try once and return immediately.
+ */
+ private final long timeout;
+
+ /**
+ * Create a new EventualAssertion.
+ *
+ * @param timeout The maximum amount of time in milliseconds to wait for the specified assertion to succeed; if zero
+ * the implementation will try forever and if negative try once and return immediately.
+ * @param assertion The assertion to test.
+ */
+ public EventualAssertion(long timeout, Assertion assertion) {
+ if (assertion == null) {
+ throw new IllegalArgumentException("Assertion cannot be null");
+ }
+ this.timeout = timeout;
+ this.assertion = assertion;
+ }
+
+ /**
+ * Test that the assertion is satisfied within the configured timeout.
+ * <p>
+ * Note: this implementation uses an exponential back-off between successive retries of the assertion.
+ *
+ * @throws AssertionError If the condition was not satisfied within the timeout.
+ */
+ public void test() throws AssertionError {
+
+ // compute the ending time
+ long endTime = timeout == 0 ? Long.MAX_VALUE : System.currentTimeMillis() + this.timeout;
+
+ // current wait time
+ long waitTime = 2;
+
+ // last assertion error
+ Throwable lastError;
+ do {
+ try {
+ this.assertion.test();
+ return;
+ }
+ catch (final Throwable e) {
+ lastError = e;
+ }
+
+ // see if we're done
+ long currentTime = System.currentTimeMillis();
+ if (currentTime > endTime) {
+ break;
+ }
+
+ // wait for the current wait time
+ try {
+ synchronized (this) {
+ wait(waitTime);
+ }
+ }
+ catch (InterruptedException e) {
+ lastError = e;
+ Thread.currentThread().interrupt();
+ break;
+ }
+
+ // exponential back-off
+ waitTime = Math.min(endTime - currentTime, Math.max(waitTime << 2, 8));
+ }
+ while (true);
+
+ throw new AssertionError(this.assertion.getClass().getName() + " failed", lastError);
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/a853ee32/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java
index 26cea39..95e889e 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java
@@ -41,7 +41,9 @@ import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridCa
import org.apache.ignite.internal.processors.cache.distributed.near.GridCacheAtomicNearRemoveFailureTest;
import org.apache.ignite.internal.processors.cache.distributed.near.GridCacheAtomicPrimaryWriteOrderNearRemoveFailureTest;
import org.apache.ignite.internal.processors.cache.distributed.near.GridCacheNearRemoveFailureTest;
+import org.apache.ignite.internal.processors.cache.distributed.rebalancing.GridCacheRebalancingAggregationTest;
import org.apache.ignite.internal.processors.cache.distributed.rebalancing.GridCacheRebalancingPartitionDistributionTest;
+import org.apache.ignite.internal.processors.cache.distributed.rebalancing.GridCacheRebalancingTransactionTest;
import org.apache.ignite.testframework.GridTestUtils;
/**
@@ -66,7 +68,9 @@ public class IgniteCacheFailoverTestSuite extends TestSuite {
suite.addTestSuite(GridCacheAtomicInvalidPartitionHandlingSelfTest.class);
suite.addTestSuite(GridCacheAtomicClientInvalidPartitionHandlingSelfTest.class);
+ suite.addTestSuite(GridCacheRebalancingAggregationTest.class);
suite.addTestSuite(GridCacheRebalancingPartitionDistributionTest.class);
+ suite.addTestSuite(GridCacheRebalancingTransactionTest.class);
GridTestUtils.addTestIfNeeded(suite, GridCacheIncrementTransformTest.class, ignoredTests);
[2/3] ignite git commit: Merge branch 'master' into jlevey-review-1059
Posted by yz...@apache.org.
Merge branch 'master' into jlevey-review-1059
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/f41f5a88
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/f41f5a88
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/f41f5a88
Branch: refs/heads/ignite-3897-pr1059
Commit: f41f5a88cdd31a1b21338e27d257679d8a188315
Parents: a853ee3 e7f3532
Author: Yakov Zhdanov <Yakov Zhdanov>
Authored: Fri Sep 30 17:29:42 2016 +0200
Committer: Yakov Zhdanov <Yakov Zhdanov>
Committed: Fri Sep 30 17:29:42 2016 +0200
----------------------------------------------------------------------
bin/include/setenv.bat | 8 -
bin/include/setenv.sh | 31 -
.../s3/S3CheckpointManagerSelfTest.java | 3 +
.../checkpoint/s3/S3CheckpointSpiSelfTest.java | 4 +
.../s3/S3CheckpointSpiStartStopSelfTest.java | 7 +
.../s3/S3SessionCheckpointSelfTest.java | 2 +
.../s3/TcpDiscoveryS3IpFinderSelfTest.java | 7 +
.../ignite/testsuites/IgniteS3TestSuite.java | 15 +-
.../store/cassandra/CassandraCacheStore.java | 169 +-
.../cassandra/CassandraCacheStoreFactory.java | 2 +-
.../store/cassandra/common/CassandraHelper.java | 47 +-
.../cassandra/common/PropertyMappingHelper.java | 3 +-
.../store/cassandra/common/RandomSleeper.java | 2 +-
.../persistence/KeyPersistenceSettings.java | 55 +-
.../KeyValuePersistenceSettings.java | 112 +-
.../persistence/PersistenceController.java | 467 +-
.../persistence/PersistenceSettings.java | 157 +-
.../store/cassandra/persistence/PojoField.java | 58 +-
.../cassandra/persistence/PojoKeyField.java | 10 +-
.../cassandra/persistence/PojoValueField.java | 21 +-
.../persistence/ValuePersistenceSettings.java | 21 +-
.../session/BatchExecutionAssistant.java | 7 +
.../cassandra/session/CassandraSession.java | 10 +
.../cassandra/session/CassandraSessionImpl.java | 179 +-
.../cassandra/session/ExecutionAssistant.java | 13 +-
.../cassandra/session/pool/SessionPool.java | 2 +-
.../session/transaction/BaseMutation.java | 68 +
.../session/transaction/DeleteMutation.java | 57 +
.../cassandra/session/transaction/Mutation.java | 63 +
.../session/transaction/WriteMutation.java | 60 +
.../session/transaction/package-info.java | 21 +
.../store/cassandra/utils/DDLGenerator.java | 6 +-
.../tests/CassandraDirectPersistenceTest.java | 409 +-
.../ignite/tests/CassandraLocalServer.java | 59 +
.../apache/ignite/tests/DDLGeneratorTest.java | 28 +-
.../ignite/tests/IgnitePersistentStoreTest.java | 294 +-
.../LoadTestsCassandraArtifactsCreator.java | 4 +-
.../apache/ignite/tests/load/IntGenerator.java | 2 +-
.../ignite/tests/load/LoadTestDriver.java | 14 +-
.../ignite/tests/load/PersonGenerator.java | 2 +-
.../org/apache/ignite/tests/load/Worker.java | 18 +-
.../org/apache/ignite/tests/pojos/Person.java | 35 +-
.../org/apache/ignite/tests/pojos/Product.java | 123 +
.../apache/ignite/tests/pojos/ProductOrder.java | 148 +
.../ignite/tests/utils/CacheStoreHelper.java | 17 +-
.../ignite/tests/utils/TestCacheSession.java | 12 +-
.../ignite/tests/utils/TestTransaction.java | 132 +
.../apache/ignite/tests/utils/TestsHelper.java | 321 +-
.../tests/persistence/pojo/ignite-config.xml | 56 +
.../ignite/tests/persistence/pojo/order.xml | 21 +
.../persistence/pojo/persistence-settings-3.xml | 2 +
.../persistence/pojo/persistence-settings-4.xml | 175 +
.../ignite/tests/persistence/pojo/product.xml | 21 +
.../store/src/test/resources/tests.properties | 15 +
.../TcpDiscoveryCloudIpFinderSelfTest.java | 6 +-
.../ignite/testsuites/IgniteCloudTestSuite.java | 5 +-
.../apache/ignite/IgniteSystemProperties.java | 12 +
.../store/jdbc/CacheAbstractJdbcStore.java | 142 +-
.../cache/store/jdbc/CacheJdbcPojoStore.java | 5 +-
.../store/jdbc/CacheJdbcPojoStoreFactory.java | 45 +-
.../ignite/cache/store/jdbc/JdbcType.java | 2 +-
.../store/jdbc/dialect/BasicJdbcDialect.java | 8 +-
.../cache/store/jdbc/dialect/DB2Dialect.java | 6 +-
.../cache/store/jdbc/dialect/H2Dialect.java | 5 +-
.../cache/store/jdbc/dialect/JdbcDialect.java | 18 +-
.../cache/store/jdbc/dialect/MySQLDialect.java | 9 +-
.../cache/store/jdbc/dialect/OracleDialect.java | 5 +-
.../store/jdbc/dialect/SQLServerDialect.java | 14 +-
.../apache/ignite/compute/ComputeTaskSpis.java | 8 +-
.../configuration/FileSystemConfiguration.java | 2 +-
.../local/LocalIgfsSecondaryFileSystem.java | 32 +-
.../internal/GridEventConsumeHandler.java | 5 -
.../ignite/internal/GridKernalContext.java | 8 +
.../ignite/internal/GridKernalContextImpl.java | 12 +
.../internal/GridMessageListenHandler.java | 5 -
.../ignite/internal/GridTaskSessionImpl.java | 15 +-
.../ignite/internal/IgniteComponentType.java | 11 +-
.../apache/ignite/internal/IgniteKernal.java | 14 +-
.../org/apache/ignite/internal/IgnitionEx.java | 19 +
.../internal/binary/BinaryClassDescriptor.java | 16 +-
.../ignite/internal/binary/BinaryContext.java | 5 +
.../internal/binary/BinaryEnumObjectImpl.java | 5 +
.../ignite/internal/binary/BinaryObjectEx.java | 8 +
.../internal/binary/BinaryObjectExImpl.java | 164 +-
.../internal/binary/BinaryObjectImpl.java | 7 +
.../binary/BinaryObjectOffheapImpl.java | 7 +
.../ignite/internal/binary/BinaryUtils.java | 5 +-
.../internal/binary/BinaryWriterExImpl.java | 27 +-
.../binary/builder/BinaryObjectBuilderImpl.java | 11 +-
.../internal/managers/GridManagerAdapter.java | 15 +
.../communication/GridIoMessageFactory.java | 6 +
.../discovery/GridDiscoveryManager.java | 73 +-
.../loadbalancer/GridLoadBalancerManager.java | 10 +-
.../processors/cache/GridCacheEntryEx.java | 8 +
.../processors/cache/GridCacheMapEntry.java | 9 +-
.../processors/cache/GridCacheProcessor.java | 2 +
.../GridCacheReturnCompletableWrapper.java | 101 +
.../cache/GridCacheSharedContext.java | 24 +-
.../cache/GridCacheSharedTtlCleanupManager.java | 132 +
.../processors/cache/GridCacheSwapManager.java | 14 +
.../processors/cache/GridCacheTtlManager.java | 145 +-
.../processors/cache/GridCacheUtils.java | 5 +
.../cache/GridDeferredAckMessageSender.java | 219 +
.../GridDistributedTxRemoteAdapter.java | 65 +-
.../distributed/dht/GridDhtTxFinishFuture.java | 12 +-
.../distributed/dht/GridDhtTxFinishRequest.java | 33 +-
.../dht/GridDhtTxFinishResponse.java | 52 +-
.../dht/GridDhtTxOnePhaseCommitAckRequest.java | 134 +
.../distributed/dht/GridDhtTxPrepareFuture.java | 42 +-
.../dht/GridDhtTxPrepareRequest.java | 93 +-
.../cache/distributed/dht/GridDhtTxRemote.java | 6 +-
.../dht/atomic/GridDhtAtomicCache.java | 227 +-
...arOptimisticSerializableTxPrepareFuture.java | 4 +-
.../near/GridNearOptimisticTxPrepareFuture.java | 7 +-
.../GridNearPessimisticTxPrepareFuture.java | 4 +-
.../near/GridNearTxFinishFuture.java | 112 +-
.../continuous/CacheContinuousQueryHandler.java | 5 -
.../cache/transactions/IgniteTxAdapter.java | 46 +-
.../cache/transactions/IgniteTxEntry.java | 44 +-
.../cache/transactions/IgniteTxHandler.java | 163 +-
.../transactions/IgniteTxLocalAdapter.java | 27 +-
.../cache/transactions/IgniteTxManager.java | 159 +-
.../continuous/GridContinuousHandler.java | 8 -
.../continuous/GridContinuousProcessor.java | 33 +-
.../processors/hadoop/HadoopClassLoader.java | 487 +
.../processors/hadoop/HadoopClasspathUtils.java | 424 +
.../processors/hadoop/HadoopDefaultJobInfo.java | 156 +
.../processors/hadoop/HadoopHelper.java | 55 +
.../processors/hadoop/HadoopJobInfo.java | 4 +-
.../processors/hadoop/HadoopLocations.java | 123 +
.../processors/hadoop/HadoopNoopHelper.java | 66 +
.../processors/hadoop/HadoopNoopProcessor.java | 4 +-
.../igfs/IgfsAbstractOutputStream.java | 266 +
.../internal/processors/igfs/IgfsContext.java | 35 +
.../processors/igfs/IgfsDataManager.java | 123 +-
.../internal/processors/igfs/IgfsImpl.java | 130 +-
.../processors/igfs/IgfsInputStreamImpl.java | 103 +-
.../processors/igfs/IgfsKernalContextAware.java | 32 +
.../processors/igfs/IgfsOutputStreamImpl.java | 319 +-
.../igfs/IgfsOutputStreamProxyImpl.java | 163 +
.../internal/processors/igfs/IgfsProcessor.java | 17 +-
.../processors/job/GridJobProcessor.java | 3 +-
.../offheap/GridOffHeapProcessor.java | 14 +
.../platform/PlatformConfigurationEx.java | 7 +
.../platform/PlatformContextImpl.java | 3 -
.../processors/platform/PlatformProcessor.java | 10 +-
.../platform/PlatformProcessorImpl.java | 72 +-
.../platform/cache/PlatformCache.java | 114 +-
.../platform/cache/PlatformCacheExtension.java | 47 +
.../cpp/PlatformCppConfigurationEx.java | 7 +
.../dotnet/PlatformDotNetConfigurationEx.java | 9 +
.../PlatformDotNetSessionCacheExtension.java | 144 +
.../websession/PlatformDotNetSessionData.java | 260 +
.../PlatformDotNetSessionLockProcessor.java | 84 +
.../PlatformDotNetSessionLockResult.java | 106 +
...tformDotNetSessionSetAndUnlockProcessor.java | 179 +
.../session/GridTaskSessionProcessor.java | 9 +-
.../processors/task/GridTaskProcessor.java | 3 +-
.../processors/task/GridTaskWorker.java | 2 +-
.../util/GridBoundedConcurrentOrderedMap.java | 5 +
.../ignite/internal/util/IgniteUtils.java | 23 +-
.../org/apache/ignite/spi/IgniteSpiAdapter.java | 11 +
.../org/apache/ignite/spi/IgniteSpiContext.java | 26 +-
.../ignite/spi/discovery/tcp/ClientImpl.java | 18 +-
.../TcpDiscoveryMulticastIpFinder.java | 3 -
.../spi/swapspace/file/FileSwapSpaceSpi.java | 91 +-
.../CacheJdbcPojoStoreAbstractSelfTest.java | 103 +-
...heJdbcPojoStoreBinaryMarshallerSelfTest.java | 14 +-
...reBinaryMarshallerWithSqlEscapeSelfTest.java | 28 +
...dbcPojoStoreOptimizedMarshallerSelfTest.java | 2 +-
...ptimizedMarshallerWithSqlEscapeSelfTest.java | 28 +
.../IgniteClientReconnectCacheTest.java | 35 +
.../binary/BinaryMarshallerSelfTest.java | 53 +-
.../binary/BinaryObjectToStringSelfTest.java | 92 +
...GridManagerLocalMessageListenerSelfTest.java | 222 +
.../GridDiscoveryManagerAliveCacheSelfTest.java | 4 +-
.../discovery/GridDiscoveryManagerSelfTest.java | 6 +-
.../CacheSwapUnswapGetTestSmallQueueSize.java | 35 +
...idAbstractCacheInterceptorRebalanceTest.java | 356 +
.../cache/GridCacheAbstractFullApiSelfTest.java | 2 +-
...heInterceptorAtomicOffheapRebalanceTest.java | 30 +
...GridCacheInterceptorAtomicRebalanceTest.java | 36 +
...ceptorTransactionalOffheapRebalanceTest.java | 35 +
...heInterceptorTransactionalRebalanceTest.java | 36 +
.../cache/GridCacheOffHeapCleanupTest.java | 169 +
...ridCacheStoreManagerDeserializationTest.java | 1 +
.../cache/GridCacheSwapCleanupTest.java | 99 +
.../processors/cache/GridCacheTestEntryEx.java | 4 +
.../GridCacheTtlManagerNotificationTest.java | 107 +-
.../cache/GridCacheUtilsSelfTest.java | 64 +-
...calCacheStoreManagerDeserializationTest.java | 2 +-
.../IgniteCacheInterceptorSelfTestSuite.java | 5 +
.../GridCacheBinaryObjectsAbstractSelfTest.java | 31 +
.../IgniteCachePutRetryAbstractSelfTest.java | 39 +-
...gniteCachePutRetryTransactionalSelfTest.java | 75 +-
.../IgniteCacheExpiryPolicyTestSuite.java | 2 +
...eCacheOnlyOneTtlCleanupThreadExistsTest.java | 102 +
...ContinuousQueryFailoverAbstractSelfTest.java | 99 +
...eContinuousQueryMultiNodesFilteringTest.java | 161 +
.../igfs/IgfsAbstractBaseSelfTest.java | 12 +-
.../processors/igfs/IgfsAbstractSelfTest.java | 26 +-
.../IgfsAtomicPrimaryMultiNodeSelfTest.java | 39 +
.../IgfsAtomicPrimaryOffheapTieredSelfTest.java | 39 +
.../IgfsAtomicPrimaryOffheapValuesSelfTest.java | 39 +
.../igfs/IgfsAtomicPrimarySelfTest.java | 39 +
...SecondaryFileSystemDualAbstractSelfTest.java | 3 +-
...lSecondaryFileSystemProxyClientSelfTest.java | 28 +
...fsLocalSecondaryFileSystemProxySelfTest.java | 272 +
.../processors/igfs/IgfsProxySelfTest.java | 2 +-
.../loadtests/hashmap/GridCacheTestContext.java | 2 +
.../marshaller/MarshallerContextTestImpl.java | 28 +-
.../tcp/TcpClientDiscoverySpiMulticastTest.java | 2 +-
.../spi/discovery/tcp/TcpDiscoverySelfTest.java | 2 +-
.../TcpDiscoveryMulticastIpFinderSelfTest.java | 6 +-
.../GridInternalTasksLoadBalancingSelfTest.java | 201 +
.../file/GridFileSwapSpaceSpiSelfTest.java | 89 +
.../testframework/GridSpiTestContext.java | 115 +-
.../ignite/testframework/IgniteTestSuite.java | 163 +-
.../testframework/junits/GridAbstractTest.java | 22 +-
.../IgniteBinaryObjectsTestSuite.java | 2 +
.../ignite/testsuites/IgniteCacheTestSuite.java | 6 +
.../testsuites/IgniteCacheTestSuite4.java | 2 +
.../testsuites/IgniteCacheTestSuite5.java | 3 +
.../ignite/testsuites/IgniteIgfsTestSuite.java | 16 +
.../apache/ignite/testsuites/IgniteIgnore.java | 11 +-
.../testsuites/IgniteIgnoredTestSuite.java | 63 -
.../IgniteSpiLoadBalancingSelfTestSuite.java | 34 +-
.../ignite/testsuites/IgniteSpiTestSuite.java | 6 +-
.../hadoop/fs/BasicHadoopFileSystemFactory.java | 132 +-
.../fs/CachingHadoopFileSystemFactory.java | 54 +-
.../hadoop/fs/HadoopFileSystemFactory.java | 11 +-
.../fs/IgniteHadoopFileSystemCounterWriter.java | 79 +-
.../fs/IgniteHadoopIgfsSecondaryFileSystem.java | 402 +-
.../fs/KerberosHadoopFileSystemFactory.java | 77 +-
.../hadoop/fs/v1/IgniteHadoopFileSystem.java | 47 +-
.../hadoop/fs/v2/IgniteHadoopFileSystem.java | 47 +-
.../IgniteHadoopClientProtocolProvider.java | 11 +-
.../mapreduce/IgniteHadoopMapReducePlanner.java | 22 +-
.../IgniteHadoopWeightedMapReducePlanner.java | 4 +-
.../ignite/hadoop/util/UserNameMapper.java | 4 +-
.../processors/hadoop/HadoopClassLoader.java | 966 --
.../processors/hadoop/HadoopClasspathMain.java | 44 -
.../processors/hadoop/HadoopClasspathUtils.java | 295 -
.../processors/hadoop/HadoopCommonUtils.java | 154 +
.../processors/hadoop/HadoopContext.java | 1 -
.../processors/hadoop/HadoopDefaultJobInfo.java | 157 -
.../processors/hadoop/HadoopExternalSplit.java | 88 +
.../processors/hadoop/HadoopHelperImpl.java | 120 +
.../processors/hadoop/HadoopLocations.java | 123 -
.../hadoop/HadoopMapReduceCounterGroup.java | 123 -
.../hadoop/HadoopMapReduceCounters.java | 228 -
.../processors/hadoop/HadoopProcessor.java | 32 +-
.../processors/hadoop/HadoopSplitWrapper.java | 119 +
.../internal/processors/hadoop/HadoopUtils.java | 436 -
.../hadoop/counter/HadoopCounterAdapter.java | 1 +
.../counter/HadoopPerformanceCounter.java | 12 +-
.../hadoop/delegate/HadoopDelegateUtils.java | 138 +
.../HadoopFileSystemCounterWriterDelegate.java | 36 +
.../HadoopFileSystemFactoryDelegate.java | 36 +
.../HadoopIgfsSecondaryFileSystemDelegate.java | 28 +
.../hadoop/fs/HadoopFileSystemCacheUtils.java | 242 -
.../hadoop/fs/HadoopFileSystemsUtils.java | 51 -
.../hadoop/fs/HadoopLazyConcurrentMap.java | 212 -
.../hadoop/fs/HadoopLocalFileSystemV1.java | 39 -
.../hadoop/fs/HadoopLocalFileSystemV2.java | 88 -
.../processors/hadoop/fs/HadoopParameters.java | 94 -
.../hadoop/fs/HadoopRawLocalFileSystem.java | 314 -
.../processors/hadoop/igfs/HadoopIgfs.java | 202 -
.../igfs/HadoopIgfsCommunicationException.java | 57 -
.../processors/hadoop/igfs/HadoopIgfsEx.java | 93 -
.../hadoop/igfs/HadoopIgfsFuture.java | 97 -
.../hadoop/igfs/HadoopIgfsInProc.java | 510 -
.../hadoop/igfs/HadoopIgfsInputStream.java | 629 -
.../processors/hadoop/igfs/HadoopIgfsIo.java | 76 -
.../processors/hadoop/igfs/HadoopIgfsIpcIo.java | 624 -
.../hadoop/igfs/HadoopIgfsIpcIoListener.java | 36 -
.../hadoop/igfs/HadoopIgfsJclLogger.java | 116 -
.../hadoop/igfs/HadoopIgfsOutProc.java | 524 -
.../hadoop/igfs/HadoopIgfsOutputStream.java | 201 -
.../hadoop/igfs/HadoopIgfsProperties.java | 86 -
.../hadoop/igfs/HadoopIgfsProxyInputStream.java | 337 -
.../igfs/HadoopIgfsProxyOutputStream.java | 165 -
...fsSecondaryFileSystemPositionedReadable.java | 105 -
.../hadoop/igfs/HadoopIgfsStreamDelegate.java | 96 -
.../igfs/HadoopIgfsStreamEventListener.java | 39 -
.../processors/hadoop/igfs/HadoopIgfsUtils.java | 174 -
.../hadoop/igfs/HadoopIgfsWrapper.java | 552 -
.../impl/HadoopMapReduceCounterGroup.java | 124 +
.../hadoop/impl/HadoopMapReduceCounters.java | 229 +
.../processors/hadoop/impl/HadoopUtils.java | 328 +
.../HadoopBasicFileSystemFactoryDelegate.java | 164 +
.../HadoopCachingFileSystemFactoryDelegate.java | 75 +
.../HadoopDefaultFileSystemFactoryDelegate.java | 62 +
...doopFileSystemCounterWriterDelegateImpl.java | 108 +
...doopIgfsSecondaryFileSystemDelegateImpl.java | 472 +
...HadoopKerberosFileSystemFactoryDelegate.java | 112 +
.../impl/fs/HadoopFileSystemCacheUtils.java | 243 +
.../hadoop/impl/fs/HadoopFileSystemsUtils.java | 51 +
.../hadoop/impl/fs/HadoopLazyConcurrentMap.java | 210 +
.../hadoop/impl/fs/HadoopLocalFileSystemV1.java | 40 +
.../hadoop/impl/fs/HadoopLocalFileSystemV2.java | 89 +
.../hadoop/impl/fs/HadoopParameters.java | 94 +
.../impl/fs/HadoopRawLocalFileSystem.java | 315 +
.../processors/hadoop/impl/igfs/HadoopIgfs.java | 203 +
.../igfs/HadoopIgfsCommunicationException.java | 57 +
.../hadoop/impl/igfs/HadoopIgfsEx.java | 94 +
.../hadoop/impl/igfs/HadoopIgfsFuture.java | 97 +
.../hadoop/impl/igfs/HadoopIgfsInProc.java | 511 +
.../hadoop/impl/igfs/HadoopIgfsInputStream.java | 630 +
.../hadoop/impl/igfs/HadoopIgfsIo.java | 76 +
.../hadoop/impl/igfs/HadoopIgfsIpcIo.java | 625 +
.../impl/igfs/HadoopIgfsIpcIoListener.java | 36 +
.../hadoop/impl/igfs/HadoopIgfsJclLogger.java | 116 +
.../hadoop/impl/igfs/HadoopIgfsOutProc.java | 525 +
.../impl/igfs/HadoopIgfsOutputStream.java | 202 +
.../hadoop/impl/igfs/HadoopIgfsProperties.java | 87 +
.../impl/igfs/HadoopIgfsProxyInputStream.java | 338 +
.../impl/igfs/HadoopIgfsProxyOutputStream.java | 166 +
...fsSecondaryFileSystemPositionedReadable.java | 106 +
.../impl/igfs/HadoopIgfsStreamDelegate.java | 96 +
.../igfs/HadoopIgfsStreamEventListener.java | 39 +
.../hadoop/impl/igfs/HadoopIgfsUtils.java | 175 +
.../hadoop/impl/igfs/HadoopIgfsWrapper.java | 554 +
.../hadoop/impl/proto/HadoopClientProtocol.java | 354 +
.../hadoop/impl/v1/HadoopV1CleanupTask.java | 65 +
.../hadoop/impl/v1/HadoopV1Counter.java | 107 +
.../hadoop/impl/v1/HadoopV1MapTask.java | 122 +
.../hadoop/impl/v1/HadoopV1OutputCollector.java | 138 +
.../hadoop/impl/v1/HadoopV1Partitioner.java | 44 +
.../hadoop/impl/v1/HadoopV1ReduceTask.java | 101 +
.../hadoop/impl/v1/HadoopV1Reporter.java | 81 +
.../hadoop/impl/v1/HadoopV1SetupTask.java | 57 +
.../hadoop/impl/v1/HadoopV1Splitter.java | 103 +
.../processors/hadoop/impl/v1/HadoopV1Task.java | 98 +
.../processors/hadoop/impl/v2/HadoopDaemon.java | 126 +
.../impl/v2/HadoopSerializationWrapper.java | 139 +
.../impl/v2/HadoopShutdownHookManager.java | 98 +
.../hadoop/impl/v2/HadoopV2CleanupTask.java | 73 +
.../hadoop/impl/v2/HadoopV2Context.java | 244 +
.../hadoop/impl/v2/HadoopV2Counter.java | 89 +
.../processors/hadoop/impl/v2/HadoopV2Job.java | 452 +
.../impl/v2/HadoopV2JobResourceManager.java | 324 +
.../hadoop/impl/v2/HadoopV2MapTask.java | 99 +
.../hadoop/impl/v2/HadoopV2Partitioner.java | 44 +
.../hadoop/impl/v2/HadoopV2ReduceTask.java | 91 +
.../hadoop/impl/v2/HadoopV2SetupTask.java | 66 +
.../hadoop/impl/v2/HadoopV2Splitter.java | 112 +
.../processors/hadoop/impl/v2/HadoopV2Task.java | 186 +
.../hadoop/impl/v2/HadoopV2TaskContext.java | 563 +
.../impl/v2/HadoopWritableSerialization.java | 76 +
.../hadoop/jobtracker/HadoopJobTracker.java | 23 +-
.../planner/HadoopDefaultMapReducePlan.java | 7 +-
.../hadoop/proto/HadoopClientProtocol.java | 349 -
.../child/HadoopChildProcessRunner.java | 16 +-
.../hadoop/v1/HadoopV1CleanupTask.java | 64 -
.../processors/hadoop/v1/HadoopV1Counter.java | 106 -
.../processors/hadoop/v1/HadoopV1MapTask.java | 122 -
.../hadoop/v1/HadoopV1OutputCollector.java | 137 -
.../hadoop/v1/HadoopV1Partitioner.java | 44 -
.../hadoop/v1/HadoopV1ReduceTask.java | 101 -
.../processors/hadoop/v1/HadoopV1Reporter.java | 81 -
.../processors/hadoop/v1/HadoopV1SetupTask.java | 56 -
.../processors/hadoop/v1/HadoopV1Splitter.java | 102 -
.../processors/hadoop/v1/HadoopV1Task.java | 97 -
.../processors/hadoop/v2/HadoopDaemon.java | 126 -
.../hadoop/v2/HadoopExternalSplit.java | 89 -
.../hadoop/v2/HadoopSerializationWrapper.java | 138 -
.../hadoop/v2/HadoopShutdownHookManager.java | 98 -
.../hadoop/v2/HadoopSplitWrapper.java | 119 -
.../hadoop/v2/HadoopV2CleanupTask.java | 72 -
.../processors/hadoop/v2/HadoopV2Context.java | 243 -
.../processors/hadoop/v2/HadoopV2Counter.java | 88 -
.../processors/hadoop/v2/HadoopV2Job.java | 443 -
.../hadoop/v2/HadoopV2JobResourceManager.java | 322 -
.../processors/hadoop/v2/HadoopV2MapTask.java | 99 -
.../hadoop/v2/HadoopV2Partitioner.java | 44 -
.../hadoop/v2/HadoopV2ReduceTask.java | 91 -
.../processors/hadoop/v2/HadoopV2SetupTask.java | 65 -
.../processors/hadoop/v2/HadoopV2Splitter.java | 111 -
.../processors/hadoop/v2/HadoopV2Task.java | 185 -
.../hadoop/v2/HadoopV2TaskContext.java | 559 -
.../hadoop/v2/HadoopWritableSerialization.java | 75 -
.../HadoopClientProtocolEmbeddedSelfTest.java | 35 -
.../hadoop/HadoopClientProtocolSelfTest.java | 654 -
.../hadoop/cache/HadoopTxConfigCacheTest.java | 42 -
...KerberosHadoopFileSystemFactorySelfTest.java | 121 -
.../util/BasicUserNameMapperSelfTest.java | 133 -
.../util/ChainedUserNameMapperSelfTest.java | 107 -
.../util/KerberosUserNameMapperSelfTest.java | 99 -
.../ignite/igfs/Hadoop1DualAbstractTest.java | 158 -
.../igfs/Hadoop1OverIgfsDualAsyncTest.java | 30 -
.../igfs/Hadoop1OverIgfsDualSyncTest.java | 30 -
.../igfs/HadoopFIleSystemFactorySelfTest.java | 327 -
.../HadoopIgfs20FileSystemAbstractSelfTest.java | 2040 ---
...Igfs20FileSystemLoopbackPrimarySelfTest.java | 74 -
...oopIgfs20FileSystemShmemPrimarySelfTest.java | 74 -
.../igfs/HadoopIgfsDualAbstractSelfTest.java | 321 -
.../igfs/HadoopIgfsDualAsyncSelfTest.java | 32 -
.../ignite/igfs/HadoopIgfsDualSyncSelfTest.java | 32 -
...adoopIgfsSecondaryFileSystemTestAdapter.java | 149 -
...oopSecondaryFileSystemConfigurationTest.java | 575 -
.../apache/ignite/igfs/IgfsEventsTestSuite.java | 285 -
.../igfs/IgfsNearOnlyMultiNodeSelfTest.java | 223 -
.../IgniteHadoopFileSystemAbstractSelfTest.java | 2432 ---
.../IgniteHadoopFileSystemClientSelfTest.java | 212 -
...IgniteHadoopFileSystemHandshakeSelfTest.java | 389 -
.../IgniteHadoopFileSystemIpcCacheSelfTest.java | 214 -
.../IgniteHadoopFileSystemLoggerSelfTest.java | 298 -
...niteHadoopFileSystemLoggerStateSelfTest.java | 329 -
...adoopFileSystemLoopbackAbstractSelfTest.java | 46 -
...SystemLoopbackEmbeddedDualAsyncSelfTest.java | 33 -
...eSystemLoopbackEmbeddedDualSyncSelfTest.java | 33 -
...leSystemLoopbackEmbeddedPrimarySelfTest.java | 33 -
...SystemLoopbackEmbeddedSecondarySelfTest.java | 34 -
...SystemLoopbackExternalDualAsyncSelfTest.java | 33 -
...eSystemLoopbackExternalDualSyncSelfTest.java | 33 -
...leSystemLoopbackExternalPrimarySelfTest.java | 33 -
...SystemLoopbackExternalSecondarySelfTest.java | 34 -
...condaryFileSystemInitializationSelfTest.java | 214 -
...teHadoopFileSystemShmemAbstractSelfTest.java | 91 -
...ileSystemShmemEmbeddedDualAsyncSelfTest.java | 33 -
...FileSystemShmemEmbeddedDualSyncSelfTest.java | 33 -
...pFileSystemShmemEmbeddedPrimarySelfTest.java | 33 -
...ileSystemShmemEmbeddedSecondarySelfTest.java | 33 -
...ileSystemShmemExternalDualAsyncSelfTest.java | 33 -
...FileSystemShmemExternalDualSyncSelfTest.java | 33 -
...pFileSystemShmemExternalPrimarySelfTest.java | 33 -
...ileSystemShmemExternalSecondarySelfTest.java | 33 -
.../hadoop/HadoopAbstractMapReduceTest.java | 429 -
.../hadoop/HadoopAbstractSelfTest.java | 239 -
.../hadoop/HadoopAbstractWordCountTest.java | 175 -
.../hadoop/HadoopClassLoaderTest.java | 110 -
.../hadoop/HadoopCommandLineTest.java | 474 -
.../HadoopDefaultMapReducePlannerSelfTest.java | 615 -
.../processors/hadoop/HadoopErrorSimulator.java | 326 -
.../hadoop/HadoopFileSystemsTest.java | 155 -
.../processors/hadoop/HadoopGroupingTest.java | 307 -
.../hadoop/HadoopJobTrackerSelfTest.java | 345 -
.../hadoop/HadoopMapReduceEmbeddedSelfTest.java | 253 -
.../HadoopMapReduceErrorResilienceTest.java | 154 -
.../processors/hadoop/HadoopMapReduceTest.java | 66 -
.../hadoop/HadoopNoHadoopMapReduceTest.java | 47 -
.../processors/hadoop/HadoopPlannerMockJob.java | 168 -
.../hadoop/HadoopPopularWordsTest.java | 298 -
.../HadoopSerializationWrapperSelfTest.java | 79 -
.../processors/hadoop/HadoopSharedMap.java | 1 +
.../hadoop/HadoopSnappyFullMapReduceTest.java | 36 -
.../processors/hadoop/HadoopSnappyTest.java | 102 -
.../hadoop/HadoopSortingExternalTest.java | 46 -
.../processors/hadoop/HadoopSortingTest.java | 303 -
.../hadoop/HadoopSplitWrapperSelfTest.java | 72 -
.../processors/hadoop/HadoopStartup.java | 54 -
.../hadoop/HadoopTaskExecutionSelfTest.java | 567 -
.../hadoop/HadoopTasksAllVersionsTest.java | 260 -
.../processors/hadoop/HadoopTasksV1Test.java | 58 -
.../processors/hadoop/HadoopTasksV2Test.java | 77 -
.../hadoop/HadoopTestClassLoader.java | 106 +
.../hadoop/HadoopTestRoundRobinMrPlanner.java | 71 -
.../hadoop/HadoopTestTaskContext.java | 228 -
.../processors/hadoop/HadoopTestUtils.java | 107 -
.../processors/hadoop/HadoopV2JobSelfTest.java | 100 -
.../hadoop/HadoopValidationSelfTest.java | 53 -
.../HadoopWeightedMapReducePlannerTest.java | 599 -
.../HadoopWeightedPlannerMapReduceTest.java | 38 -
.../hadoop/books/alice-in-wonderland.txt | 3735 -----
.../processors/hadoop/books/art-of-war.txt | 6982 ---------
.../hadoop/books/huckleberry-finn.txt | 11733 ---------------
.../processors/hadoop/books/sherlock-holmes.txt | 13052 -----------------
.../processors/hadoop/books/tom-sawyer.txt | 8858 -----------
.../hadoop/deps/CircularWIthHadoop.java | 32 -
.../hadoop/deps/CircularWithoutHadoop.java | 27 -
.../processors/hadoop/deps/WithCast.java | 41 -
.../hadoop/deps/WithClassAnnotation.java | 28 -
.../hadoop/deps/WithConstructorInvocation.java | 31 -
.../processors/hadoop/deps/WithExtends.java | 27 -
.../processors/hadoop/deps/WithField.java | 29 -
.../processors/hadoop/deps/WithImplements.java | 36 -
.../hadoop/deps/WithIndirectField.java | 27 -
.../processors/hadoop/deps/WithInitializer.java | 33 -
.../processors/hadoop/deps/WithInnerClass.java | 31 -
.../hadoop/deps/WithLocalVariable.java | 38 -
.../hadoop/deps/WithMethodAnnotation.java | 32 -
.../hadoop/deps/WithMethodArgument.java | 31 -
.../hadoop/deps/WithMethodCheckedException.java | 31 -
.../hadoop/deps/WithMethodInvocation.java | 31 -
.../hadoop/deps/WithMethodReturnType.java | 31 -
.../hadoop/deps/WithMethodRuntimeException.java | 31 -
.../processors/hadoop/deps/WithOuterClass.java | 38 -
.../hadoop/deps/WithParameterAnnotation.java | 31 -
.../processors/hadoop/deps/WithStaticField.java | 29 -
.../hadoop/deps/WithStaticInitializer.java | 34 -
.../processors/hadoop/deps/Without.java | 25 -
.../hadoop/examples/HadoopWordCount1.java | 94 -
.../hadoop/examples/HadoopWordCount1Map.java | 79 -
.../hadoop/examples/HadoopWordCount1Reduce.java | 61 -
.../hadoop/examples/HadoopWordCount2.java | 111 -
.../examples/HadoopWordCount2Combiner.java | 45 -
.../hadoop/examples/HadoopWordCount2Mapper.java | 88 -
.../examples/HadoopWordCount2Reducer.java | 113 -
.../impl/HadoopAbstractMapReduceTest.java | 430 +
.../hadoop/impl/HadoopAbstractSelfTest.java | 239 +
.../impl/HadoopAbstractWordCountTest.java | 175 +
.../hadoop/impl/HadoopCommandLineTest.java | 476 +
.../HadoopDefaultMapReducePlannerSelfTest.java | 619 +
.../hadoop/impl/HadoopErrorSimulator.java | 326 +
.../hadoop/impl/HadoopFileSystemsTest.java | 155 +
.../hadoop/impl/HadoopGroupingTest.java | 302 +
.../hadoop/impl/HadoopJobTrackerSelfTest.java | 334 +
.../impl/HadoopMapReduceEmbeddedSelfTest.java | 249 +
.../HadoopMapReduceErrorResilienceTest.java | 154 +
.../hadoop/impl/HadoopMapReduceTest.java | 66 +
.../impl/HadoopNoHadoopMapReduceTest.java | 47 +
.../hadoop/impl/HadoopPlannerMockJob.java | 175 +
.../hadoop/impl/HadoopPopularWordsTest.java | 298 +
.../HadoopSerializationWrapperSelfTest.java | 80 +
.../impl/HadoopSnappyFullMapReduceTest.java | 36 +
.../hadoop/impl/HadoopSnappyTest.java | 104 +
.../hadoop/impl/HadoopSortingExternalTest.java | 46 +
.../hadoop/impl/HadoopSortingTest.java | 304 +
.../hadoop/impl/HadoopSplitWrapperSelfTest.java | 72 +
.../processors/hadoop/impl/HadoopStartup.java | 54 +
.../impl/HadoopTaskExecutionSelfTest.java | 550 +
.../hadoop/impl/HadoopTasksAllVersionsTest.java | 264 +
.../hadoop/impl/HadoopTasksV1Test.java | 62 +
.../hadoop/impl/HadoopTasksV2Test.java | 81 +
.../impl/HadoopTestRoundRobinMrPlanner.java | 75 +
.../hadoop/impl/HadoopTestTaskContext.java | 233 +
.../processors/hadoop/impl/HadoopTestUtils.java | 178 +
.../hadoop/impl/HadoopTxConfigCacheTest.java | 42 +
.../hadoop/impl/HadoopUserLibsSelfTest.java | 261 +
.../hadoop/impl/HadoopV2JobSelfTest.java | 108 +
.../hadoop/impl/HadoopValidationSelfTest.java | 53 +
.../HadoopWeightedMapReducePlannerTest.java | 602 +
.../HadoopWeightedPlannerMapReduceTest.java | 38 +
.../hadoop/impl/books/alice-in-wonderland.txt | 3735 +++++
.../processors/hadoop/impl/books/art-of-war.txt | 6982 +++++++++
.../hadoop/impl/books/huckleberry-finn.txt | 11733 +++++++++++++++
.../hadoop/impl/books/sherlock-holmes.txt | 13052 +++++++++++++++++
.../processors/hadoop/impl/books/tom-sawyer.txt | 8858 +++++++++++
.../HadoopClientProtocolEmbeddedSelfTest.java | 35 +
.../client/HadoopClientProtocolSelfTest.java | 654 +
.../hadoop/impl/examples/HadoopWordCount1.java | 94 +
.../impl/examples/HadoopWordCount1Map.java | 79 +
.../impl/examples/HadoopWordCount1Reduce.java | 61 +
.../hadoop/impl/examples/HadoopWordCount2.java | 111 +
.../impl/examples/HadoopWordCount2Combiner.java | 45 +
.../impl/examples/HadoopWordCount2Mapper.java | 88 +
.../impl/examples/HadoopWordCount2Reducer.java | 113 +
...KerberosHadoopFileSystemFactorySelfTest.java | 126 +
.../impl/igfs/Hadoop1DualAbstractTest.java | 157 +
.../impl/igfs/Hadoop1OverIgfsDualAsyncTest.java | 32 +
.../impl/igfs/Hadoop1OverIgfsDualSyncTest.java | 32 +
.../igfs/HadoopFIleSystemFactorySelfTest.java | 345 +
.../HadoopIgfs20FileSystemAbstractSelfTest.java | 2047 +++
...Igfs20FileSystemLoopbackPrimarySelfTest.java | 77 +
...oopIgfs20FileSystemShmemPrimarySelfTest.java | 77 +
.../igfs/HadoopIgfsDualAbstractSelfTest.java | 328 +
.../impl/igfs/HadoopIgfsDualAsyncSelfTest.java | 32 +
.../impl/igfs/HadoopIgfsDualSyncSelfTest.java | 32 +
...adoopIgfsSecondaryFileSystemTestAdapter.java | 153 +
...oopSecondaryFileSystemConfigurationTest.java | 583 +
.../hadoop/impl/igfs/IgfsEventsTestSuite.java | 289 +
.../igfs/IgfsNearOnlyMultiNodeSelfTest.java | 226 +
.../IgniteHadoopFileSystemAbstractSelfTest.java | 2435 +++
.../IgniteHadoopFileSystemClientSelfTest.java | 216 +
...IgniteHadoopFileSystemHandshakeSelfTest.java | 393 +
.../IgniteHadoopFileSystemIpcCacheSelfTest.java | 215 +
.../IgniteHadoopFileSystemLoggerSelfTest.java | 299 +
...niteHadoopFileSystemLoggerStateSelfTest.java | 332 +
...adoopFileSystemLoopbackAbstractSelfTest.java | 50 +
...SystemLoopbackEmbeddedDualAsyncSelfTest.java | 33 +
...eSystemLoopbackEmbeddedDualSyncSelfTest.java | 33 +
...leSystemLoopbackEmbeddedPrimarySelfTest.java | 33 +
...SystemLoopbackEmbeddedSecondarySelfTest.java | 34 +
...SystemLoopbackExternalDualAsyncSelfTest.java | 33 +
...eSystemLoopbackExternalDualSyncSelfTest.java | 33 +
...leSystemLoopbackExternalPrimarySelfTest.java | 33 +
...SystemLoopbackExternalSecondarySelfTest.java | 34 +
...condaryFileSystemInitializationSelfTest.java | 217 +
...teHadoopFileSystemShmemAbstractSelfTest.java | 94 +
...ileSystemShmemEmbeddedDualAsyncSelfTest.java | 33 +
...FileSystemShmemEmbeddedDualSyncSelfTest.java | 33 +
...pFileSystemShmemEmbeddedPrimarySelfTest.java | 33 +
...ileSystemShmemEmbeddedSecondarySelfTest.java | 33 +
...ileSystemShmemExternalDualAsyncSelfTest.java | 33 +
...FileSystemShmemExternalDualSyncSelfTest.java | 33 +
...pFileSystemShmemExternalPrimarySelfTest.java | 33 +
...ileSystemShmemExternalSecondarySelfTest.java | 33 +
.../collections/HadoopAbstractMapTest.java | 175 +
.../HadoopConcurrentHashMultimapSelftest.java | 280 +
.../collections/HadoopHashMapSelfTest.java | 133 +
.../collections/HadoopSkipListSelfTest.java | 320 +
.../streams/HadoopDataStreamSelfTest.java | 153 +
.../taskexecutor/HadoopExecutorServiceTest.java | 119 +
.../HadoopExternalTaskExecutionSelfTest.java | 232 +
.../HadoopExternalCommunicationSelfTest.java | 222 +
.../impl/util/BasicUserNameMapperSelfTest.java | 134 +
.../util/ChainedUserNameMapperSelfTest.java | 111 +
.../util/KerberosUserNameMapperSelfTest.java | 100 +
.../collections/HadoopAbstractMapTest.java | 174 -
.../HadoopConcurrentHashMultimapSelftest.java | 278 -
.../collections/HadoopHashMapSelfTest.java | 131 -
.../collections/HadoopSkipListSelfTest.java | 318 -
.../streams/HadoopDataStreamSelfTest.java | 150 -
.../hadoop/state/HadoopGroupingTestState.java | 40 +
.../state/HadoopJobTrackerSelfTestState.java | 45 +
.../HadoopMapReduceEmbeddedSelfTestState.java | 32 +
.../HadoopTaskExecutionSelfTestValues.java | 51 +
.../taskexecutor/HadoopExecutorServiceTest.java | 118 -
.../HadoopExternalTaskExecutionSelfTest.java | 232 -
.../HadoopExternalCommunicationSelfTest.java | 220 -
.../testsuites/IgniteHadoopTestSuite.java | 115 +-
.../IgniteIgfsLinuxAndMacOSTestSuite.java | 25 +-
modules/ignored-tests/README.txt | 4 +
modules/ignored-tests/pom.xml | 121 +
.../testsuites/IgniteIgnoredTestSuite.java | 48 +
.../apache/ignite/testsuites/package-info.java | 22 +
.../stream/jms11/IgniteJmsStreamerTest.java | 206 +-
.../jms11/IgniteJmsStreamerTestSuite.java | 2 +-
modules/platforms/cpp/configure.ac | 2 +-
modules/platforms/cpp/examples/configure.ac | 2 +-
modules/platforms/cpp/odbc-test/Makefile.am | 1 +
.../cpp/odbc-test/include/test_utils.h | 8 +
.../cpp/odbc-test/project/vs/odbc-test.vcxproj | 1 +
.../project/vs/odbc-test.vcxproj.filters | 3 +
.../cpp/odbc-test/src/api_robustness_test.cpp | 1006 ++
.../src/application_data_buffer_test.cpp | 129 +-
.../platforms/cpp/odbc-test/src/column_test.cpp | 10 +-
.../cpp/odbc-test/src/queries_test.cpp | 143 +-
.../platforms/cpp/odbc-test/src/row_test.cpp | 4 +-
modules/platforms/cpp/odbc/Makefile.am | 3 +-
.../platforms/cpp/odbc/include/ignite/odbc.h | 6 +-
.../ignite/odbc/app/application_data_buffer.h | 58 +-
.../odbc/include/ignite/odbc/app/parameter.h | 27 +-
.../cpp/odbc/include/ignite/odbc/common_types.h | 26 +-
.../include/ignite/odbc/config/configuration.h | 17 +-
.../cpp/odbc/include/ignite/odbc/statement.h | 58 +-
.../platforms/cpp/odbc/project/vs/module.def | 1 -
.../platforms/cpp/odbc/project/vs/odbc.vcxproj | 2 +-
.../odbc/src/app/application_data_buffer.cpp | 343 +-
.../platforms/cpp/odbc/src/app/parameter.cpp | 126 +-
modules/platforms/cpp/odbc/src/common_types.cpp | 3 +
.../cpp/odbc/src/config/configuration.cpp | 27 +
.../cpp/odbc/src/config/connection_info.cpp | 35 +-
modules/platforms/cpp/odbc/src/connection.cpp | 2 +-
.../odbc/src/diagnostic/diagnostic_record.cpp | 18 +
modules/platforms/cpp/odbc/src/entry_points.cpp | 49 +-
modules/platforms/cpp/odbc/src/odbc.cpp | 240 +-
modules/platforms/cpp/odbc/src/statement.cpp | 152 +-
.../Apache.Ignite.AspNet.Tests.csproj | 77 +
.../Apache.Ignite.AspNet.Tests.snk | Bin 0 -> 596 bytes
.../Apache.Ignite.AspNet.Tests/App.config | 72 +
.../ExpiryCacheHolderTest.cs | 492 +
.../IgniteOutputCacheProviderTest.cs | 172 +
.../IgniteSessionStateItemCollectionTest.cs | 267 +
.../IgniteSessionStateStoreDataTest.cs | 117 +
.../IgniteSessionStateStoreProviderTest.cs | 425 +
.../Properties/AssemblyInfo.cs | 42 +
.../Apache.Ignite.AspNet.Tests/packages.config | 22 +
.../Apache.Ignite.AspNet.csproj | 6 +
.../Apache.Ignite.AspNet.ruleset | 3 +
.../IgniteOutputCacheProvider.cs | 120 +-
.../IgniteSessionStateStoreProvider.cs | 494 +
.../Apache.Ignite.AspNet/Impl/ConfigUtil.cs | 109 +
.../Impl/ExpiryCacheHolder.cs | 113 +
.../Impl/IgniteSessionStateItemCollection.cs | 534 +
.../Impl/IgniteSessionStateStoreData.cs | 116 +
.../Impl/SessionStateLockResult.cs | 91 +
.../Properties/AssemblyInfo.cs | 11 +-
.../Properties/AssemblyInfo.cs | 40 +-
.../Properties/AssemblyInfo.cs | 38 +-
.../Properties/AssemblyInfo.cs | 38 +-
.../Apache.Ignite.Core.Tests.csproj | 6 -
.../AspNet/IgniteOutputCacheProviderTest.cs | 172 -
.../Affinity/AffinityFunctionSpringTest.cs | 38 +-
.../Compute/ComputeApiTest.cs | 26 +
.../IgniteConfigurationSerializerTest.cs | 4 +-
.../ProjectFilesTest.cs | 38 +-
.../Properties/AssemblyInfo.cs | 40 +-
.../Apache.Ignite.Core.Tests/TestRunner.cs | 37 +-
.../Apache.Ignite.Core.Tests/packages.config | 18 +
.../Apache.Ignite.Core/Cache/ICacheLock.cs | 2 +-
.../Apache.Ignite.Core/Cache/ICacheMetrics.cs | 8 +-
.../Apache.Ignite.Core/Cluster/IClusterGroup.cs | 14 +
.../Apache.Ignite.Core/Compute/ICompute.cs | 6 +-
.../Apache.Ignite.Core/Impl/Cache/CacheImpl.cs | 15 +
.../Apache.Ignite.Core/Impl/Cache/CacheOp.cs | 3 +-
.../Impl/Cache/ICacheInternal.cs | 14 +
.../Impl/Cluster/ClusterGroupImpl.cs | 6 +
.../Apache.Ignite.Core/Impl/Common/Fnv1Hash.cs | 2 +-
.../Common/IgniteConfigurationXmlSerializer.cs | 21 +-
.../dotnet/Apache.Ignite.Core/Impl/Ignite.cs | 10 +-
.../Apache.Ignite.Core/Impl/IgniteProxy.cs | 6 +
.../Memory/PlatformBigEndianMemoryStream.cs | 34 +-
.../Impl/Unmanaged/UnmanagedCallbacks.cs | 90 +-
.../NuGet/LINQPad/PutGetExample.linq | 2 +-
.../NuGet/LINQPad/QueryExample.linq | 6 +-
.../Properties/AssemblyInfo.cs | 41 +-
.../Apache.Ignite.Linq/ICacheQueryable.cs | 32 +-
.../NuGet/LINQPad/QueryExample.linq | 4 +-
.../Properties/AssemblyInfo.cs | 40 +-
.../dotnet/Apache.Ignite.NLog/packages.config | 18 +
modules/platforms/dotnet/Apache.Ignite.sln | 14 +
.../Apache.Ignite/Properties/AssemblyInfo.cs | 40 +-
.../Properties/AssemblyInfo.cs | 44 +-
.../Events/LocalListener.cs | 2 +-
.../Properties/AssemblyInfo.cs | 42 +-
.../apache/ignite/schema/parser/DbColumn.java | 16 +-
.../parser/dialect/DatabaseMetadataDialect.java | 9 +
.../parser/dialect/JdbcMetadataDialect.java | 21 +-
.../parser/dialect/MySQLMetadataDialect.java | 24 +-
.../parser/dialect/OracleMetadataDialect.java | 5 +-
.../ignite/schema/model/PojoDescriptor.java | 24 +-
.../org/apache/ignite/IgniteSpringBean.java | 2 +-
.../src/test/config/jdbc-pojo-store-builtin.xml | 12 +-
.../src/test/config/jdbc-pojo-store-obj.xml | 12 +-
.../jdbc/CacheJdbcBlobStoreFactorySelfTest.java | 12 +-
.../jdbc/CacheJdbcPojoStoreFactorySelfTest.java | 14 +-
.../store/jdbc/CachePojoStoreXmlSelfTest.java | 13 +-
.../CachePojoStoreXmlWithSqlEscapeSelfTest.java | 28 +
.../testsuites/IgniteSpringTestSuite.java | 5 +-
modules/web-console/DEVNOTES.txt | 25 +-
modules/web-console/backend/.babelrc | 9 -
modules/web-console/backend/.eslintrc | 4 +-
modules/web-console/backend/.gitignore | 2 -
modules/web-console/backend/app/agent.js | 66 +-
modules/web-console/backend/app/app.js | 2 +
modules/web-console/backend/app/browser.js | 41 +-
modules/web-console/backend/app/index.js | 116 -
modules/web-console/backend/app/mongo.js | 7 +-
modules/web-console/backend/app/mongoose.js | 29 +
modules/web-console/backend/app/settings.js | 10 +-
.../backend/errors/AuthFailedException.js | 2 +-
.../backend/errors/DuplicateKeyException.js | 2 +-
.../backend/errors/IllegalAccessError.js | 4 +-
.../backend/errors/IllegalArgumentException.js | 2 +-
.../backend/errors/MissingResourceException.js | 2 +-
modules/web-console/backend/errors/index.js | 14 +-
modules/web-console/backend/index.js | 89 +-
modules/web-console/backend/injector.js | 2 +-
modules/web-console/backend/package.json | 23 +-
modules/web-console/backend/routes/demo.js | 8 +-
modules/web-console/backend/routes/public.js | 69 +-
modules/web-console/backend/services/auth.js | 79 +-
modules/web-console/backend/services/domains.js | 2 +
modules/web-console/backend/services/mails.js | 16 +-
.../web-console/backend/services/sessions.js | 4 +-
modules/web-console/backend/test/app/db.js | 66 +
.../web-console/backend/test/app/httpAgent.js | 50 +
.../web-console/backend/test/app/mockgoose.js | 30 +
.../web-console/backend/test/data/accounts.json | 5 +-
.../web-console/backend/test/data/caches.json | 30 +-
.../web-console/backend/test/data/clusters.json | 10 +-
.../web-console/backend/test/data/domains.json | 10 +
.../web-console/backend/test/data/igfss.json | 4 +-
.../web-console/backend/test/data/spaces.json | 14 +
modules/web-console/backend/test/index.js | 35 +
modules/web-console/backend/test/injector.js | 43 +-
.../web-console/backend/test/routes/clusters.js | 83 +
.../web-console/backend/test/routes/public.js | 68 +
.../backend/test/unit/AuthService.test.js | 107 +
.../backend/test/unit/CacheService.test.js | 20 +-
.../backend/test/unit/ClusterService.test.js | 19 +-
.../backend/test/unit/DomainService.test.js | 19 +-
.../backend/test/unit/IgfsService.test.js | 19 +-
modules/web-console/frontend/app/app.config.js | 2 +-
modules/web-console/frontend/app/app.js | 27 +-
.../frontend/app/data/jdbc-types.json | 44 +
.../frontend/app/data/sql-keywords.json | 41 +
.../frontend/app/decorator/tooltip.js | 38 +-
.../directives/retain-selection.directive.js | 67 +
.../ui-ace-pom/ui-ace-pom.controller.js | 4 +-
.../frontend/app/helpers/jade/form.jade | 1 +
.../helpers/jade/form/form-field-datalist.jade | 8 +-
.../helpers/jade/form/form-field-dropdown.jade | 8 +-
.../app/helpers/jade/form/form-field-label.jade | 4 +-
.../helpers/jade/form/form-field-number.jade | 8 +-
.../helpers/jade/form/form-field-password.jade | 47 +
.../app/helpers/jade/form/form-field-text.jade | 10 +-
.../frontend/app/helpers/jade/mixins.jade | 101 +-
.../modules/configuration/Version.service.js | 25 +
.../configuration/configuration.module.js | 2 +
.../configuration/generator/Pom.service.js | 30 +-
.../form/validator/java-identifier.directive.js | 4 +-
.../form/validator/java-keywords.directive.js | 6 +-
.../validator/java-package-name.directive.js | 4 +-
.../java-package-specified.directive.js | 7 +-
.../modules/form/validator/uuid.directive.js | 12 +-
.../frontend/app/modules/sql/Notebook.data.js | 16 +-
.../states/configuration/caches/memory.jade | 5 +-
.../states/configuration/caches/query.jade | 12 +-
.../configuration/clusters/cache-key-cfg.jade | 2 +-
.../configuration/clusters/communication.jade | 2 +-
.../states/configuration/clusters/odbc.jade | 47 +
.../states/configuration/domains/general.jade | 4 +-
.../states/configuration/domains/query.jade | 16 +-
.../configuration/summary/summary.controller.js | 24 +-
.../app/modules/version/Version.provider.js | 32 -
.../app/services/ErrorPopover.service.js | 3 +
.../frontend/app/services/JavaTypes.service.js | 163 +-
.../app/services/LegacyUtils.service.js | 44 -
.../frontend/app/services/SqlTypes.service.js | 67 +
.../frontend/controllers/admin-controller.js | 7 +-
.../frontend/controllers/domains-controller.js | 86 +-
.../frontend/controllers/profile-controller.js | 5 +-
.../frontend/generator/generator-common.js | 19 +-
.../frontend/generator/generator-java.js | 89 +-
.../frontend/generator/generator-properties.js | 2 +-
.../frontend/generator/generator-xml.js | 17 +-
.../frontend/public/stylesheets/form-field.scss | 108 +
.../frontend/public/stylesheets/style.scss | 1 +
.../frontend/test/unit/JavaTypes.test.js | 82 +-
.../frontend/test/unit/SqlTypes.test.js | 68 +
.../frontend/views/configuration/clusters.jade | 1 +
.../views/configuration/domains-import.jade | 116 +-
.../IgniteWebSessionSelfTestSuite.java | 68 +-
.../WebSessionReplicatedSelfTest.java | 28 +
.../WebSessionReplicatedV1SelfTest.java | 28 +
.../internal/websession/WebSessionSelfTest.java | 2 +
.../WebSessionTransactionalSelfTest.java | 48 +
.../WebSessionTransactionalV1SelfTest.java | 28 +
.../websession/WebSessionV1SelfTest.java | 28 +
.../config/benchmark-client-mode.properties | 2 +
.../config/benchmark-tx-win.properties | 2 +
.../yardstick/config/benchmark-tx.properties | 2 +
.../yardstick/config/benchmark-win.properties | 2 +
modules/yardstick/config/benchmark.properties | 2 +
.../cache/IgniteAtomicSequenceBenchmark.java | 2 +
.../cache/IgniteGetAndPutBenchmark.java | 41 +
.../cache/IgniteGetAndPutTxBenchmark.java | 70 +
.../cache/IgniteInvokeTxBenchmark.java | 40 +
parent/pom.xml | 18 +-
pom.xml | 7 +
833 files changed, 97111 insertions(+), 81711 deletions(-)
----------------------------------------------------------------------
[3/3] ignite git commit: reviewing changes
Posted by yz...@apache.org.
reviewing changes
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/c75f6fc1
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/c75f6fc1
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/c75f6fc1
Branch: refs/heads/ignite-3897-pr1059
Commit: c75f6fc14b7b309e49ce9b3ee96cecf5ddee2da8
Parents: f41f5a8
Author: yzhdanov <yz...@gridgain.com>
Authored: Fri Sep 30 18:27:45 2016 +0200
Committer: yzhdanov <yz...@gridgain.com>
Committed: Fri Sep 30 18:27:45 2016 +0200
----------------------------------------------------------------------
.../GridCacheRebalancingAggregationTest.java | 87 +++++++++++++-------
1 file changed, 55 insertions(+), 32 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/c75f6fc1/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheRebalancingAggregationTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheRebalancingAggregationTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheRebalancingAggregationTest.java
index 1d566e9..d5020f2 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheRebalancingAggregationTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheRebalancingAggregationTest.java
@@ -53,11 +53,16 @@ public class GridCacheRebalancingAggregationTest extends GridRollingRestartAbstr
/** Keys of entries under test. */
private static final Set<Integer> KEYS;
+
+ /*
+ *
+ */
static {
final Set<Integer> keys = new LinkedHashSet<>();
- for (int i = 0; i < ENTRY_COUNT; i++) {
+
+ for (int i = 0; i < ENTRY_COUNT; i++)
keys.add(i);
- }
+
KEYS = Collections.unmodifiableSet(keys);
}
@@ -71,29 +76,26 @@ public class GridCacheRebalancingAggregationTest extends GridRollingRestartAbstr
private volatile int totalUpdateCount;
/** {@inheritDoc} */
- @Override
- public int serverCount() {
+ @Override public int serverCount() {
return 3;
}
/** {@inheritDoc} */
- @Override
- public int getMaxRestarts() {
+ @Override public int getMaxRestarts() {
return MAX_RESTARTS;
}
/** {@inheritDoc} */
- @Override
- protected long getTestTimeout() {
+ @Override protected long getTestTimeout() {
return 1000 * 60 * 5;
}
/** {@inheritDoc} */
@Override protected CacheConfiguration<?, ?> getCacheConfiguration() {
return new CacheConfiguration<Integer, Integer>(CACHE_NAME)
- .setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL)
- .setCacheMode(CacheMode.PARTITIONED)
- .setBackups(1);
+ .setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL)
+ .setCacheMode(CacheMode.PARTITIONED)
+ .setBackups(1);
}
/** {@inheritDoc} */
@@ -120,18 +122,21 @@ public class GridCacheRebalancingAggregationTest extends GridRollingRestartAbstr
throws InterruptedException {
startUpdateThread();
+
RollingRestartThread restartThread = super.rollingRestartThread;
int totalAggregationCount = 0;
int checksumFailures = 0;
+
do {
- if (!checksumCache()) {
+ if (!checksumCache())
checksumFailures++;
- }
totalAggregationCount++;
+
this.aggregationCount++;
- } while (restartThread.isAlive());
+ }
+ while (restartThread.isAlive());
grid(0).log().info("Total successful aggregations during the test were: " + totalAggregationCount);
grid(0).log().info("Total successful updates during the test were: " + this.totalUpdateCount);
@@ -148,8 +153,10 @@ public class GridCacheRebalancingAggregationTest extends GridRollingRestartAbstr
*/
private void startUpdateThread() {
UpdateCacheThread updateThread = new UpdateCacheThread();
- updateThread.start();
+
this.updateThread = updateThread;
+
+ updateThread.start();
}
/**
@@ -160,36 +167,43 @@ public class GridCacheRebalancingAggregationTest extends GridRollingRestartAbstr
*/
private boolean checksumCache() {
final Ignite ignite = grid(0);
+
Cache<Integer, Integer> cache = ignite.cache(CACHE_NAME);
+
Throwable e = null;
+
for (int i = 0, c = 20; i <= c; ++i) {
try (Transaction tx = ignite.transactions().txStart()) {
- tx.timeout(2*60*1000l);
+ tx.timeout(2 * 60 * 1000L);
Integer ceiling = cache.get(CEILING_KEY);
- if (ceiling == null) {
+
+ if (ceiling == null)
return Boolean.TRUE;
- }
+
int floor = ceiling - ENTRY_COUNT + 1;
+
Map<Integer, Integer> results = cache.getAll(KEYS);
+
tx.commit();
int sum = 0;
- for (Integer j : results.values()) {
+
+ for (Integer j : results.values())
sum += j;
- }
- if (sum == calculateSum(floor, ceiling)) {
+ if (sum == calculateSum(floor, ceiling))
return Boolean.TRUE;
- }
grid(0).log().info("Failed testing that sum of " + sum + " equals sum(" + floor + "," + ceiling + ")");
+
return Boolean.FALSE;
}
catch (Throwable ee) {
e = ee;
}
}
+
throw new RuntimeException("Failed to commit transaction after " + 20 + " retries", e);
}
@@ -198,32 +212,40 @@ public class GridCacheRebalancingAggregationTest extends GridRollingRestartAbstr
*/
private void updateCache() {
final Ignite ignite = grid(0);
+
Cache<Integer, Integer> cache = ignite.cache(CACHE_NAME);
+
Throwable e = null;
+
for (int i = 0, c = 20; i <= c; ++i) {
try (Transaction tx = ignite.transactions().txStart()) {
- tx.timeout(2*60*1000l);
+ tx.timeout(2 * 60 * 1000L);
+
+ Integer curCeiling = cache.get(CEILING_KEY);
+
+ int newCeiling = curCeiling == null ? ENTRY_COUNT - 1 : curCeiling + ENTRY_COUNT;
+ int value = curCeiling == null ? 0 : curCeiling + 1;
- Integer currentCeiling = cache.get(CEILING_KEY);
- int newCeiling = currentCeiling == null ? ENTRY_COUNT - 1 : currentCeiling + ENTRY_COUNT;
- int value = currentCeiling == null ? 0 : currentCeiling + 1;
Map<Integer, Integer> entries = new TreeMap<>();
- for (Integer key : KEYS) {
+
+ for (Integer key : KEYS)
entries.put(key, value++);
- }
+
cache.putAll(entries);
cache.put(CEILING_KEY, newCeiling);
GridCacheRebalancingAggregationTest.this.totalUpdateCount++;
- if (!tx.isRollbackOnly()) {
- tx.commit();
- }
+
+ if (!tx.isRollbackOnly())
+ tx.commit();
+
return;
}
catch (Throwable ee) {
e = ee;
}
}
+
throw new RuntimeException("Failed to commit transaction after " + 20 + " retries", e);
}
@@ -246,7 +268,7 @@ public class GridCacheRebalancingAggregationTest extends GridRollingRestartAbstr
/**
* Default Constructor sets this thread to run as a daemon.
*/
- public UpdateCacheThread() {
+ UpdateCacheThread() {
setDaemon(true);
setName(UpdateCacheThread.class.getSimpleName());
}
@@ -254,6 +276,7 @@ public class GridCacheRebalancingAggregationTest extends GridRollingRestartAbstr
/** {@inheritDoc} */
@Override public void run() {
RollingRestartThread restartThread = GridCacheRebalancingAggregationTest.this.rollingRestartThread;
+
do {
GridCacheRebalancingAggregationTest.this.updateCache();
}