Merge remote-tracking branch 'remotes/origin/ignite-1.3.3-p2' Conflicts: examples/pom.xml modules/aop/pom.xml modules/apache-license-gen/pom.xml modules/aws/pom.xml modules/clients/pom.xml modules/cloud/pom.xml modules/codegen/pom.xml modules/core/pom.xml modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java modules/core/src/main/resources/ignite.properties modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheDhtLocalPartitionAfterRemoveSelfTest.java modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePutRetryAbstractSelfTest.java modules/extdata/p2p/pom.xml modules/extdata/uri/modules/uri-dependency/pom.xml modules/extdata/uri/pom.xml modules/gce/pom.xml modules/geospatial/pom.xml modules/hadoop/pom.xml modules/hibernate/pom.xml modules/indexing/pom.xml modules/jcl/pom.xml modules/jta/pom.xml modules/kafka/pom.xml modules/log4j/pom.xml modules/mesos/pom.xml modules/rest-http/pom.xml modules/scalar-2.10/pom.xml modules/scalar/pom.xml modules/schedule/pom.xml modules/schema-import/pom.xml modules/slf4j/pom.xml modules/spark-2.10/pom.xml modules/spark/pom.xml modules/spring/pom.xml modules/ssh/pom.xml modules/tools/pom.xml modules/urideploy/pom.xml modules/visor-console-2.10/pom.xml modules/visor-console/pom.xml modules/visor-plugins/pom.xml modules/web/pom.xml modules/yardstick/pom.xml modules/yarn/pom.xml pom.xml
Merge remote-tracking branch 'remotes/origin/ignite-1.3.3-p2' Conflicts: benchmarks/cache-comparison/pom.xml benchmarks/filesystem/hadoop1/pom.xml benchmarks/filesystem/hadoop2/pom.xml benchmarks/mongo/pom.xml benchmarks/risk-analytics/pom.xml benchmarks/serialization/pom.xml benchmarks/yardstick/src/main/dotnet/gridgain-benchmarks/Properties/AssemblyInfo.cs examples/clients/cpp/configure.ac examples/clients/dotnet/GridGainExamples/GridGainExamples/Properties/AssemblyInfo.cs examples/clients/dotnet/GridGainExamples/GridGainExamplesDll/Properties/AssemblyInfo.cs examples/pom.xml modules/clients/common/configure.ac modules/clients/common/project/vs/Resource.rc modules/clients/cpp/_old/main/configure.ac modules/clients/cpp/_old/main/tests/configure.ac modules/clients/cpp/_old/vsproject/resource.h modules/clients/cpp/core-test/configure.ac modules/clients/cpp/core-test/project/vs/Resource.rc modules/clients/cpp/core/configure.ac modules/clients/cpp/core/project/vs/Resource.rc modules/clients/dotnet/gridgain-codegen/Properties/AssemblyInfo.cs modules/clients/dotnet/gridgain-exe/Properties/AssemblyInfo.cs modules/clients/dotnet/gridgain/Properties/AssemblyInfo.cs modules/clients/pom.xml modules/clients/src/test/dotnet/gridgain-examples-test/Properties/AssemblyInfo.cs modules/clients/src/test/dotnet/gridgain-test-compatibility/Properties/AssemblyInfo.cs modules/clients/src/test/dotnet/gridgain-test-dll/Properties/AssemblyInfo.cs modules/clients/src/test/dotnet/gridgain-test-runner/Properties/AssemblyInfo.cs modules/clients/src/test/dotnet/gridgain-test/Properties/AssemblyInfo.cs modules/codegen/pom.xml modules/compatibility/gg-versions/7.3.3/src/main/java/org/gridgain/grid/compatibility/GridCompatibilityTestsRunner.java modules/compatibility/pom.xml modules/core/pom.xml modules/core/src/main/resources/gridgain.properties modules/diagnostic/pom.xml modules/dr-demo/pom.xml modules/license-gen/pom.xml modules/mongo-sniffer/pom.xml modules/mongo-visor/pom.xml modules/mongo/pom.xml modules/tools/pom.xml modules/visor-console/pom.xml modules/visor-demo/pom.xml modules/visor-tester-plugin/pom.xml modules/visor-tester/pom.xml modules/visor/pom.xml modules/yardstick/dotnet/Properties/AssemblyInfo.cs modules/yardstick/pom.xml parent/pom.xml pilots/chronotrack/pom.xml pilots/ctb/pom.xml pilots/dsi/pom.xml pilots/ionic/pom.xml pilots/sb/pom.xml pilots/sony/pom.xml pilots/wellsfargo/pom.xml pilots/worldpay/pom.xml pom.xml Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/648cbd78 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/648cbd78 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/648cbd78 Branch: refs/heads/ignite-gg-9615-1 Commit: 648cbd78282dea1e895a80be9d1322952d4d7af3 Parents: 0d70112 5faffb9 Author: Anton Vinogradov <vinogradov.an...@gmail.com> Authored: Mon Aug 17 10:58:54 2015 +0300 Committer: Anton Vinogradov <vinogradov.an...@gmail.com> Committed: Mon Aug 17 10:58:54 2015 +0300 ---------------------------------------------------------------------- .../CachePartialUpdateCheckedException.java | 29 +++- .../processors/cache/GridCacheAdapter.java | 160 +++++++++++++++++-- .../processors/cache/GridCacheMapEntry.java | 4 +- .../dht/atomic/GridNearAtomicUpdateFuture.java | 63 ++++++-- .../near/GridNearOptimisticTxPrepareFuture.java | 2 +- ...cheDhtLocalPartitionAfterRemoveSelfTest.java | 33 ++-- .../cache/GridCacheAbstractFullApiSelfTest.java | 1 - .../IgniteCacheSizeFailoverTest.java | 115 +++++++++++++ .../IgniteCachePutRetryAbstractSelfTest.java | 120 ++++++++++++-- ...PutRetryAtomicPrimaryWriteOrderSelfTest.java | 32 ++++ .../tcp/IgniteCacheSslStartStopSelfTest.java | 1 + .../IgniteCacheFailoverTestSuite.java | 3 + .../testsuites/IgniteCacheTestSuite2.java | 1 + 13 files changed, 499 insertions(+), 65 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/648cbd78/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java index d125382,992edd8..00c0629 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java @@@ -2278,8 -2283,7 +2278,9 @@@ public abstract class GridCacheAdapter< * @param filter Filter. * @return Put future. */ + public IgniteInternalFuture<Boolean> putAsync(K key, V val, + @Nullable CacheEntryPredicate... filter) { + public IgniteInternalFuture<Boolean> putAsync(K key, V val, @Nullable CacheEntryPredicate... filter) { final boolean statsEnabled = ctx.config().isStatisticsEnabled(); final long start = statsEnabled ? System.nanoTime() : 0L; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/648cbd78/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/648cbd78/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/648cbd78/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/648cbd78/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/648cbd78/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePutRetryAbstractSelfTest.java ---------------------------------------------------------------------- diff --cc modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePutRetryAbstractSelfTest.java index 7f2d173,9abc5c8..74f62ba --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePutRetryAbstractSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePutRetryAbstractSelfTest.java @@@ -69,10 -81,23 +81,25 @@@ public abstract class IgniteCachePutRet * @throws Exception If failed. */ public void testPut() throws Exception { + checkPut(false); + } + + /** + * @throws Exception If failed. + */ + public void testPutAsync() throws Exception { + checkPut(true); + } + + /** + * @param async If {@code true} tests asynchronous put. + * @throws Exception If failed. + */ + private void checkPut(boolean async) throws Exception { final AtomicBoolean finished = new AtomicBoolean(); + int keysCnt = keysCount(); + IgniteInternalFuture<Object> fut = GridTestUtils.runAsync(new Callable<Object>() { @Override public Object call() throws Exception { while (!finished.get()) { @@@ -87,21 -112,53 +114,58 @@@ } }); - int keysCnt = keysCount(); - try { - for (int i = 0; i < keysCnt; i++) - ignite(0).cache(null).put(i, i); + IgniteCache<Object, Object> cache = ignite(0).cache(null); - finished.set(true); + if (atomicityMode() == ATOMIC) + assertEquals(writeOrderMode(), cache.getConfiguration(CacheConfiguration.class).getAtomicWriteOrderMode()); + + int iter = 0; + + long stopTime = System.currentTimeMillis() + 60_000; + + if (async) { + IgniteCache<Object, Object> cache0 = cache.withAsync(); + + while (System.currentTimeMillis() < stopTime) { + Integer val = ++iter; + + for (int i = 0; i < keysCnt; i++) { + cache0.put(i, val); + + cache0.future().get(); + } + + for (int i = 0; i < keysCnt; i++) { + cache0.get(i); + + assertEquals(val, cache0.future().get()); + } + } + } + else { + while (System.currentTimeMillis() < stopTime) { + Integer val = ++iter; + + for (int i = 0; i < keysCnt; i++) + cache.put(i, val); + + for (int i = 0; i < keysCnt; i++) + assertEquals(val, cache.get(i)); + } + } + + finished.set(true); + fut.get(); + fut.get(); + } + finally { + finished.set(true); + } + for (int i = 0; i < keysCnt; i++) - assertEquals(i, ignite(0).cache(null).get(i)); + assertEquals(iter, cache.get(i)); } /** @@@ -124,34 -196,39 +203,45 @@@ } }); - int keysCnt = keysCount(); + try { + int keysCnt = keysCount(); - boolean eThrown = false; + boolean eThrown = false; + + IgniteCache<Object, Object> cache = ignite(0).cache(null).withNoRetries(); + + if (async) + cache = cache.withAsync(); - for (int i = 0; i < keysCnt; i++) { - try { - ignite(0).cache(null).withNoRetries().put(i, i); + for (int i = 0; i < keysCnt; i++) { + try { + if (async) { + cache.put(i, i); + + cache.future().get(); } - catch (Exception e) { - assertTrue("Invalid exception: " + e, X.hasCause(e, ClusterTopologyCheckedException.class) || - X.hasCause(e, CachePartialUpdateException.class)); + else + cache.put(i, i); + } + catch (Exception e) { + assertTrue("Invalid exception: " + e, + X.hasCause(e, ClusterTopologyCheckedException.class, CachePartialUpdateException.class)); - eThrown = true; + eThrown = true; - break; + break; + } } - } - assertTrue(eThrown); + assertTrue(eThrown); - finished.set(true); - fut.get(); + finished.set(true); + + fut.get(); + } + finally { + finished.set(true); + } } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/648cbd78/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite2.java ----------------------------------------------------------------------