merge from master
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/ecd727c4 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/ecd727c4 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/ecd727c4 Branch: refs/heads/ignite-comm-balance-master Commit: ecd727c4df9d9f53ece4a24182d964102e2c1508 Parents: 18229e8 b7908d7 Author: Yakov Zhdanov <yzhda...@gridgain.com> Authored: Mon Jan 16 18:21:10 2017 +0300 Committer: Yakov Zhdanov <yzhda...@gridgain.com> Committed: Mon Jan 16 18:21:10 2017 +0300 ---------------------------------------------------------------------- .../ignite/cache/query/SqlFieldsQuery.java | 6 + .../store/jdbc/dialect/BasicJdbcDialect.java | 31 +- .../GridClientConnectionManagerAdapter.java | 7 +- .../impl/connection/GridClientTopology.java | 53 +++- .../GridNearAtomicAbstractUpdateFuture.java | 34 ++- .../GridNearAtomicSingleUpdateFuture.java | 48 ++- .../dht/atomic/GridNearAtomicUpdateFuture.java | 61 ++-- .../IgniteCacheObjectProcessorImpl.java | 5 +- .../utils/PlatformConfigurationUtils.java | 128 +++++++- .../processors/query/GridQueryProcessor.java | 2 +- .../store/jdbc/CacheJdbcPojoStoreTest.java | 48 ++- .../ignite/cache/store/jdbc/model/Person.java | 2 +- .../cache/CacheEntryProcessorCopySelfTest.java | 6 +- .../cache/GridCacheBasicStoreAbstractTest.java | 2 +- .../GridCacheDhtEvictionsDisabledSelfTest.java | 5 +- .../AtomicPutAllChangingTopologyTest.java | 212 +++++++++++++ .../IgniteCacheFailoverTestSuite.java | 3 + .../apache/ignite/stream/flume/IgniteSink.java | 7 +- .../hadoop/impl/v2/HadoopV2TaskContext.java | 7 - ...niteCacheAbstractInsertSqlQuerySelfTest.java | 14 +- .../IgniteCacheAbstractSqlDmlQuerySelfTest.java | 6 +- .../IgniteCacheInsertSqlQuerySelfTest.java | 18 +- .../cache/IgniteCacheMergeSqlQuerySelfTest.java | 14 +- .../IgniteCacheUpdateSqlQuerySelfTest.java | 4 +- .../Apache.Ignite.Core.Tests.csproj | 3 + .../Binary/BinaryBuilderSelfTest.cs | 159 ++++++---- .../BinaryBuilderSelfTestArrayIdentity.cs | 34 +++ .../Binary/BinaryEqualityComparerTest.cs | 279 +++++++++++++++++ .../Binary/IO/BinaryStreamsTest.cs | 19 ++ .../Cache/CacheConfigurationTest.cs | 5 +- .../Cache/Query/CacheDmlQueriesTest.cs | 296 +++++++++++++++++++ .../IgniteConfigurationSerializerTest.cs | 46 ++- .../IgniteConfigurationTest.cs | 28 ++ .../Apache.Ignite.Core.csproj | 4 + .../Binary/BinaryArrayEqualityComparer.cs | 149 ++++++++++ .../Binary/BinaryConfiguration.cs | 24 ++ .../Binary/BinaryTypeConfiguration.cs | 14 + .../Cache/Configuration/QueryEntity.cs | 33 ++- .../Cache/Configuration/QueryField.cs | 6 + .../Apache.Ignite.Core/IgniteConfiguration.cs | 85 ++++-- .../IgniteConfigurationSection.xsd | 19 ++ .../Apache.Ignite.Core/Impl/Binary/Binary.cs | 28 +- .../Binary/BinaryEqualityComparerSerializer.cs | 99 +++++++ .../Impl/Binary/BinaryFieldEqualityComparer.cs | 138 +++++++++ .../Impl/Binary/BinaryFullTypeDescriptor.cs | 21 +- .../Impl/Binary/BinaryObject.cs | 31 +- .../Impl/Binary/BinaryObjectBuilder.cs | 62 +++- .../Impl/Binary/BinaryObjectHeader.cs | 21 +- .../Impl/Binary/BinaryObjectSchemaHolder.cs | 22 ++ .../Impl/Binary/BinaryReader.cs | 16 +- .../Binary/BinarySurrogateTypeDescriptor.cs | 6 + .../Impl/Binary/BinarySystemHandlers.cs | 6 +- .../Impl/Binary/BinaryWriter.cs | 11 +- .../Impl/Binary/DateTimeHolder.cs | 15 +- .../Impl/Binary/IBinaryEqualityComparer.cs | 53 ++++ .../Impl/Binary/IBinaryTypeDescriptor.cs | 5 + .../Impl/Binary/Io/BinaryHeapStream.cs | 9 + .../Impl/Binary/Io/BinaryStreamBase.cs | 13 + .../Impl/Binary/Io/IBinaryStream.cs | 25 ++ .../Impl/Binary/Marshaller.cs | 22 +- .../Impl/Binary/SerializableObjectHolder.cs | 16 + .../Common/IgniteConfigurationXmlSerializer.cs | 5 +- .../Impl/Memory/PlatformMemoryStream.cs | 16 + 63 files changed, 2271 insertions(+), 295 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/ecd727c4/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateFuture.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateFuture.java index fb4ca78,c92e0f5..a77facc --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateFuture.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicAbstractUpdateFuture.java @@@ -220,26 -220,10 +223,27 @@@ public abstract class GridNearAtomicAbs } /** + * @param completer + */ + public void completer(Runnable completer) { + this.completer = completer; + } + + /** {@inheritDoc} */ + protected Runnable clearCompleter() { + Runnable r = completer; + + if (r != null) + completer = null; + + return r; + } + + /** * @param topVer Topology version. + * @param futVer Future version */ - protected abstract void map(AffinityTopologyVersion topVer); + protected abstract void map(AffinityTopologyVersion topVer, GridCacheVersion futVer); /** * Maps future on ready topology. http://git-wip-us.apache.org/repos/asf/ignite/blob/ecd727c4/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java index f148cbb,7376aff..06076be --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java @@@ -386,60 -379,61 +379,67 @@@ public class GridNearAtomicSingleUpdate /** {@inheritDoc} */ @Override protected void mapOnTopology() { - AffinityTopologyVersion topVer = null; - cache.topology().readLock(); - + AffinityTopologyVersion topVer; - + GridCacheVersion futVer; - try { - if (cache.topology().stopping()) { - onDone(new IgniteCheckedException("Failed to perform cache operation (cache is stopped): " + - cache.name())); + if (!CU.cheatCache(cctx.cacheId())) { + cache.topology().readLock(); - return; - } + try { + if (cache.topology().stopping()) { + onDone(new IgniteCheckedException("Failed to perform cache operation (cache is stopped): " + + cache.name())); - GridDhtTopologyFuture fut = cache.topology().topologyVersionFuture(); + return; + } - if (fut.isDone()) { - Throwable err = fut.validateCache(cctx); + GridDhtTopologyFuture fut = cache.topology().topologyVersionFuture(); - if (err != null) { - onDone(err); + if (fut.isDone()) { + Throwable err = fut.validateCache(cctx); - return; - } + if (err != null) { + onDone(err); - topVer = fut.topologyVersion(); + return; + } - futVer = addAtomicFuture(topVer); - } - else { - if (waitTopFut) { - assert !topLocked : this; - - fut.listen(new CI1<IgniteInternalFuture<AffinityTopologyVersion>>() { - @Override public void apply(IgniteInternalFuture<AffinityTopologyVersion> t) { - cctx.kernalContext().closure().runLocalSafe(new Runnable() { - @Override public void run() { - mapOnTopology(); - } - }); - } - }); + topVer = fut.topologyVersion(); ++ ++ futVer = addAtomicFuture(topVer); } - else - onDone(new GridCacheTryPutFailedException()); + else { + if (waitTopFut) { + assert !topLocked : this; + + fut.listen(new CI1<IgniteInternalFuture<AffinityTopologyVersion>>() { + @Override public void apply(IgniteInternalFuture<AffinityTopologyVersion> t) { + cctx.kernalContext().closure().runLocalSafe(new Runnable() { + @Override public void run() { + mapOnTopology(); + } + }); + } + }); + } + else + onDone(new GridCacheTryPutFailedException()); - return; + return; + } + } + finally { + cache.topology().readUnlock(); } } - else - finally { - cache.topology().readUnlock(); ++ else { + topVer = cache.topology().topologyVersionFuture().topologyVersion(); + - map(topVer); ++ futVer = addAtomicFuture(topVer); + } + + if (futVer != null) + map(topVer, futVer); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/ecd727c4/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java index 0b917e9,950e5bd..9f6e761 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java @@@ -495,60 -488,61 +488,67 @@@ public class GridNearAtomicUpdateFutur /** {@inheritDoc} */ @Override protected void mapOnTopology() { - AffinityTopologyVersion topVer = null; - cache.topology().readLock(); - + AffinityTopologyVersion topVer; - + GridCacheVersion futVer; - try { - if (cache.topology().stopping()) { - onDone(new IgniteCheckedException("Failed to perform cache operation (cache is stopped): " + - cache.name())); + if (!CU.cheatCache(cctx.cacheId())) { + cache.topology().readLock(); - return; - } + try { + if (cache.topology().stopping()) { + onDone(new IgniteCheckedException("Failed to perform cache operation (cache is stopped): " + + cache.name())); - GridDhtTopologyFuture fut = cache.topology().topologyVersionFuture(); + return; + } - if (fut.isDone()) { - Throwable err = fut.validateCache(cctx); + GridDhtTopologyFuture fut = cache.topology().topologyVersionFuture(); - if (err != null) { - onDone(err); + if (fut.isDone()) { + Throwable err = fut.validateCache(cctx); - return; - } + if (err != null) { + onDone(err); - topVer = fut.topologyVersion(); + return; + } - futVer = addAtomicFuture(topVer); - } - else { - if (waitTopFut) { - assert !topLocked : this; - - fut.listen(new CI1<IgniteInternalFuture<AffinityTopologyVersion>>() { - @Override public void apply(IgniteInternalFuture<AffinityTopologyVersion> t) { - cctx.kernalContext().closure().runLocalSafe(new Runnable() { - @Override public void run() { - mapOnTopology(); - } - }); - } - }); + topVer = fut.topologyVersion(); ++ ++ futVer = addAtomicFuture(topVer); } - else - onDone(new GridCacheTryPutFailedException()); + else { + if (waitTopFut) { + assert !topLocked : this; + + fut.listen(new CI1<IgniteInternalFuture<AffinityTopologyVersion>>() { + @Override public void apply(IgniteInternalFuture<AffinityTopologyVersion> t) { + cctx.kernalContext().closure().runLocalSafe(new Runnable() { + @Override public void run() { + mapOnTopology(); + } + }); + } + }); + } + else + onDone(new GridCacheTryPutFailedException()); - return; + return; + } + } + finally { + cache.topology().readUnlock(); } } - else - finally { - cache.topology().readUnlock(); ++ else { + topVer = cache.topology().topologyVersionFuture().topologyVersion(); + - map(topVer, null); ++ futVer = addAtomicFuture(topVer); + } + + if (futVer != null) + map(topVer, futVer, remapKeys); } /**