You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by vo...@apache.org on 2016/03/24 08:53:31 UTC
[01/14] ignite git commit: Minor
Repository: ignite
Updated Branches:
refs/heads/ignite-gg-10994 e339745ea -> 5a7cb70f6
Minor
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/8d199683
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/8d199683
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/8d199683
Branch: refs/heads/ignite-gg-10994
Commit: 8d199683d074ba377077d1291eb2682bc2f228b4
Parents: cadc61fa
Author: Yakov Zhdanov <yz...@gridgain.com>
Authored: Tue Mar 22 15:14:15 2016 +0300
Committer: Yakov Zhdanov <yz...@gridgain.com>
Committed: Tue Mar 22 15:14:15 2016 +0300
----------------------------------------------------------------------
.../cache/distributed/dht/atomic/GridDhtAtomicUpdateFuture.java | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/8d199683/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateFuture.java
index 58d704d..9f52658 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateFuture.java
@@ -135,9 +135,7 @@ public class GridDhtAtomicUpdateFuture extends GridFutureAdapter<Void>
keys = new ArrayList<>(updateReq.keys().size());
mappings = U.newHashMap(updateReq.keys().size());
- boolean topLocked = updateReq.topologyLocked() || (updateReq.fastMap() && !updateReq.clientRequest());
-
- waitForExchange = !topLocked;
+ waitForExchange = !(updateReq.topologyLocked() || (updateReq.fastMap() && !updateReq.clientRequest()));
}
/**
[07/14] ignite git commit: Fixed tests.
Posted by vo...@apache.org.
Fixed tests.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/66f9a34b
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/66f9a34b
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/66f9a34b
Branch: refs/heads/ignite-gg-10994
Commit: 66f9a34bfc13eb54822581aefcd2c687c5bc9245
Parents: b189bb2
Author: nikolay_tikhonov <nt...@gridgain.com>
Authored: Wed Mar 23 19:45:51 2016 +0300
Committer: nikolay_tikhonov <nt...@gridgain.com>
Committed: Wed Mar 23 19:46:16 2016 +0300
----------------------------------------------------------------------
.../continuous/CacheContinuousQueryManager.java | 13 +++++++++----
.../continuous/GridContinuousProcessor.java | 2 +-
.../processors/cache/IgniteCacheAbstractTest.java | 6 ++++++
.../cache/IgniteCacheEntryListenerAbstractTest.java | 16 +++++++++++++++-
.../distributed/IgniteCacheManyClientsTest.java | 6 ++++++
...acheContinuousQueryFailoverAbstractSelfTest.java | 6 ++++++
6 files changed, 43 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/66f9a34b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryManager.java
index 869a51b..c01f636 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryManager.java
@@ -489,7 +489,8 @@ public class CacheContinuousQueryManager extends GridCacheManagerAdapter {
false,
false,
loc,
- keepBinary);
+ keepBinary,
+ false);
}
/**
@@ -528,6 +529,7 @@ public class CacheContinuousQueryManager extends GridCacheManagerAdapter {
true,
notifyExisting,
loc,
+ false,
false);
}
@@ -608,6 +610,7 @@ public class CacheContinuousQueryManager extends GridCacheManagerAdapter {
* @param internal Internal flag.
* @param notifyExisting Notify existing flag.
* @param loc Local flag.
+ * @param onStart Waiting topology exchange.
* @return Continuous routine ID.
* @throws IgniteCheckedException In case of error.
*/
@@ -619,7 +622,8 @@ public class CacheContinuousQueryManager extends GridCacheManagerAdapter {
boolean internal,
boolean notifyExisting,
boolean loc,
- final boolean keepBinary) throws IgniteCheckedException
+ final boolean keepBinary,
+ boolean onStart) throws IgniteCheckedException
{
cctx.checkSecurity(SecurityPermission.CACHE_READ);
@@ -650,7 +654,7 @@ public class CacheContinuousQueryManager extends GridCacheManagerAdapter {
pred).get();
try {
- if (hnd.isQuery() && cctx.userCache())
+ if (hnd.isQuery() && cctx.userCache() && !onStart)
hnd.waitTopologyFuture(cctx.kernalContext());
}
catch (IgniteCheckedException e) {
@@ -905,7 +909,8 @@ public class CacheContinuousQueryManager extends GridCacheManagerAdapter {
false,
false,
false,
- keepBinary
+ keepBinary,
+ onStart
);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/66f9a34b/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java
index f2d6e1e..99e0bb5 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java
@@ -915,7 +915,7 @@ public class GridContinuousProcessor extends GridProcessorAdapter {
if (proc != null) {
GridCacheAdapter cache = ctx.cache().internalCache(hnd0.cacheName());
- if (cache != null && !cache.isLocal())
+ if (cache != null && !cache.isLocal() && cache.context().userCache())
req.addUpdateCounters(ctx.localNodeId(), cache.context().topology().updateCounters());
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/66f9a34b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractTest.java
index 7df72f0..ce60232 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractTest.java
@@ -37,6 +37,7 @@ import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi;
import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
+import org.apache.ignite.spi.eventstorage.memory.MemoryEventStorageSpi;
import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
import org.jsr166.ConcurrentHashMap8;
@@ -100,6 +101,11 @@ public abstract class IgniteCacheAbstractTest extends GridCommonAbstractTest {
if (isDebug())
disco.setAckTimeout(Integer.MAX_VALUE);
+ MemoryEventStorageSpi eventSpi = new MemoryEventStorageSpi();
+ eventSpi.setExpireCount(100);
+
+ cfg.setEventStorageSpi(eventSpi);
+
cfg.setDiscoverySpi(disco);
cfg.setCacheConfiguration(cacheConfiguration(gridName));
http://git-wip-us.apache.org/repos/asf/ignite/blob/66f9a34b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheEntryListenerAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheEntryListenerAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheEntryListenerAbstractTest.java
index 35fbbd5..1f58765 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheEntryListenerAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheEntryListenerAbstractTest.java
@@ -60,11 +60,13 @@ import org.apache.ignite.IgniteCache;
import org.apache.ignite.cache.CacheEntryEventSerializableFilter;
import org.apache.ignite.cache.CacheMemoryMode;
import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.configuration.IgniteConfiguration;
import org.apache.ignite.internal.IgniteInternalFuture;
import org.apache.ignite.internal.processors.continuous.GridContinuousProcessor;
import org.apache.ignite.internal.util.lang.GridAbsPredicate;
import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.spi.eventstorage.memory.MemoryEventStorageSpi;
import org.apache.ignite.testframework.GridTestUtils;
import org.jetbrains.annotations.Nullable;
@@ -118,6 +120,18 @@ public abstract class IgniteCacheEntryListenerAbstractTest extends IgniteCacheAb
return cfg;
}
+ /** {@inheritDoc} */
+ @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+ IgniteConfiguration cfg = super.getConfiguration(gridName);
+
+ MemoryEventStorageSpi eventSpi = new MemoryEventStorageSpi();
+ eventSpi.setExpireCount(50);
+
+ cfg.setEventStorageSpi(eventSpi);
+
+ return cfg;
+ }
+
/**
* @return Cache memory mode.
*/
@@ -421,7 +435,7 @@ public abstract class IgniteCacheEntryListenerAbstractTest extends IgniteCacheAb
barrier.await();
- for (int i = 0; i < 200; i++) {
+ for (int i = 0; i < 100; i++) {
cache.registerCacheEntryListener(cfg);
cache.deregisterCacheEntryListener(cfg);
http://git-wip-us.apache.org/repos/asf/ignite/blob/66f9a34b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheManyClientsTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheManyClientsTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheManyClientsTest.java
index 8d4af19..ddc75ba 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheManyClientsTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheManyClientsTest.java
@@ -38,6 +38,7 @@ import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi;
import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
+import org.apache.ignite.spi.eventstorage.memory.MemoryEventStorageSpi;
import org.apache.ignite.testframework.GridTestUtils;
import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
@@ -71,6 +72,11 @@ public class IgniteCacheManyClientsTest extends GridCommonAbstractTest {
cfg.setPeerClassLoadingEnabled(false);
cfg.setTimeServerPortRange(200);
+ MemoryEventStorageSpi eventSpi = new MemoryEventStorageSpi();
+ eventSpi.setExpireCount(100);
+
+ cfg.setEventStorageSpi(eventSpi);
+
((TcpCommunicationSpi)cfg.getCommunicationSpi()).setLocalPortRange(200);
((TcpCommunicationSpi)cfg.getCommunicationSpi()).setSharedMemoryPort(-1);
http://git-wip-us.apache.org/repos/asf/ignite/blob/66f9a34b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryFailoverAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryFailoverAbstractSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryFailoverAbstractSelfTest.java
index f104f21..4454379 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryFailoverAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryFailoverAbstractSelfTest.java
@@ -90,6 +90,7 @@ import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi;
import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
+import org.apache.ignite.spi.eventstorage.memory.MemoryEventStorageSpi;
import org.apache.ignite.testframework.GridTestUtils;
import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
import org.apache.ignite.transactions.Transaction;
@@ -136,6 +137,11 @@ public abstract class CacheContinuousQueryFailoverAbstractSelfTest extends GridC
cfg.setCommunicationSpi(commSpi);
+ MemoryEventStorageSpi eventSpi = new MemoryEventStorageSpi();
+ eventSpi.setExpireCount(50);
+
+ cfg.setEventStorageSpi(eventSpi);
+
CacheConfiguration ccfg = new CacheConfiguration();
ccfg.setCacheMode(cacheMode());
[09/14] ignite git commit: Added remove() method for Iterator in Java
7.
Posted by vo...@apache.org.
Added remove() method for Iterator in Java 7.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/3bf5f46b
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/3bf5f46b
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/3bf5f46b
Branch: refs/heads/ignite-gg-10994
Commit: 3bf5f46b19d7f142bb04917d812e7336e86c085a
Parents: 2f64ab0
Author: shtykh_roman <rs...@yahoo.com>
Authored: Thu Mar 24 14:44:04 2016 +0900
Committer: shtykh_roman <rs...@yahoo.com>
Committed: Thu Mar 24 14:44:04 2016 +0900
----------------------------------------------------------------------
.../examples/datagrid/store/CacheLoadOnlyStoreExample.java | 5 +++++
1 file changed, 5 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/3bf5f46b/examples/src/main/java/org/apache/ignite/examples/datagrid/store/CacheLoadOnlyStoreExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/datagrid/store/CacheLoadOnlyStoreExample.java b/examples/src/main/java/org/apache/ignite/examples/datagrid/store/CacheLoadOnlyStoreExample.java
index 4635c16..ac3d27b 100644
--- a/examples/src/main/java/org/apache/ignite/examples/datagrid/store/CacheLoadOnlyStoreExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/datagrid/store/CacheLoadOnlyStoreExample.java
@@ -153,6 +153,11 @@ public class CacheLoadOnlyStoreExample {
return scanner.next();
}
+
+ /** {@inheritDoc} */
+ @Override public void remove() {
+ throw new UnsupportedOperationException();
+ }
};
}
[03/14] ignite git commit: Added ability to dump comm SPI recovery
descriptors (cherry picked from commit f76a313)
Posted by vo...@apache.org.
Added ability to dump comm SPI recovery descriptors
(cherry picked from commit f76a313)
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/61a0a5f8
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/61a0a5f8
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/61a0a5f8
Branch: refs/heads/ignite-gg-10994
Commit: 61a0a5f8c0d05001071d40fbaf365fa231ed0e70
Parents: 046a188
Author: Yakov Zhdanov <yz...@gridgain.com>
Authored: Tue Mar 22 15:58:49 2016 +0300
Committer: Yakov Zhdanov <yz...@gridgain.com>
Committed: Tue Mar 22 16:00:25 2016 +0300
----------------------------------------------------------------------
.../ignite/internal/util/nio/GridNioServer.java | 13 ++++++++-----
.../spi/communication/tcp/TcpCommunicationSpi.java | 16 ++++++++++++++++
2 files changed, 24 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/61a0a5f8/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
index 42c7ac7..0d5c5de 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
@@ -1455,16 +1455,19 @@ public class GridNioServer<T> {
for (SelectionKey key : keys) {
GridSelectorNioSessionImpl ses = (GridSelectorNioSessionImpl)key.attachment();
- sb.append(" Conn [")
+ sb.append(" Connection info [")
.append("rmtAddr=").append(ses.remoteAddress())
.append(", locAddr=").append(ses.localAddress())
.append(", bytesRcvd=").append(ses.bytesReceived())
.append(", bytesSent=").append(ses.bytesSent());
- if (ses.recoveryDescriptor() != null) {
- sb.append(", msgsSent=").append(ses.recoveryDescriptor().sent())
- .append(", msgsAckedByRmt=").append(ses.recoveryDescriptor().acked())
- .append(", msgsRcvd=").append(ses.recoveryDescriptor().received());
+ GridNioRecoveryDescriptor desc = ses.recoveryDescriptor();
+
+ if (desc != null) {
+ sb.append(", msgsSent=").append(desc.sent())
+ .append(", msgsAckedByRmt=").append(desc.acked())
+ .append(", msgsRcvd=").append(desc.received())
+ .append(", descIdHash=").append(System.identityHashCode(desc));
}
else
sb.append(", recoveryDesc=null");
http://git-wip-us.apache.org/repos/asf/ignite/blob/61a0a5f8/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
index b283b82..df60982 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
@@ -1381,6 +1381,22 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
/** {@inheritDoc} */
@Override public void dumpStats() {
+ StringBuilder sb = new StringBuilder("Communication SPI recovery descriptors: ").append(U.nl());
+
+ for (Map.Entry<ClientKey, GridNioRecoveryDescriptor> entry : recoveryDescs.entrySet()) {
+ GridNioRecoveryDescriptor desc = entry.getValue();
+
+ sb.append(" [key=").append(entry.getKey())
+ .append(", msgsSent=").append(desc.sent())
+ .append(", msgsAckedByRmt=").append(desc.acked())
+ .append(", msgsRcvd=").append(desc.received())
+ .append(", descIdHash=").append(System.identityHashCode(desc))
+ .append(']').append(U.nl());
+ }
+
+ if (log.isInfoEnabled())
+ log.info(sb.toString());
+
GridNioServer<Message> nioSrvr1 = nioSrvr;
if (nioSrvr1 != null)
[05/14] ignite git commit: IGNITE-2844: .NET: Added "LoadAll" methods
to cache API. This closes #562.
Posted by vo...@apache.org.
IGNITE-2844: .NET: Added "LoadAll" methods to cache API. This closes #562.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/fc9730a9
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/fc9730a9
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/fc9730a9
Branch: refs/heads/ignite-gg-10994
Commit: fc9730a9ae33b36ee8b6430583b39f13dfdd16de
Parents: 0013955
Author: Pavel Tupitsyn <pt...@gridgain.com>
Authored: Wed Mar 23 12:44:44 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Wed Mar 23 12:44:44 2016 +0300
----------------------------------------------------------------------
.../platform/cache/PlatformCache.java | 54 ++++++++++++++++++++
.../platform/utils/PlatformFutureUtils.java | 2 +-
.../Cache/CacheTestAsyncWrapper.cs | 12 +++++
.../Cache/Store/CacheStoreTest.cs | 31 +++++++++++
.../Cache/Store/CacheTestStore.cs | 2 +-
.../dotnet/Apache.Ignite.Core/Cache/ICache.cs | 26 ++++++++++
.../Apache.Ignite.Core/Impl/Cache/CacheImpl.cs | 17 ++++++
.../Apache.Ignite.Core/Impl/Cache/CacheOp.cs | 3 +-
8 files changed, 144 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/fc9730a9/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cache/PlatformCache.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cache/PlatformCache.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cache/PlatformCache.java
index 37fd335..35ccd19 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cache/PlatformCache.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cache/PlatformCache.java
@@ -44,16 +44,19 @@ import org.apache.ignite.internal.processors.platform.cache.query.PlatformFields
import org.apache.ignite.internal.processors.platform.cache.query.PlatformQueryCursor;
import org.apache.ignite.internal.processors.platform.utils.PlatformConfigurationUtils;
import org.apache.ignite.internal.processors.platform.utils.PlatformFutureUtils;
+import org.apache.ignite.internal.processors.platform.utils.PlatformListenable;
import org.apache.ignite.internal.processors.platform.utils.PlatformUtils;
import org.apache.ignite.internal.util.GridConcurrentFactory;
import org.apache.ignite.internal.util.future.IgniteFutureImpl;
import org.apache.ignite.internal.util.typedef.C1;
+import org.apache.ignite.lang.IgniteBiInClosure;
import org.apache.ignite.lang.IgniteFuture;
import org.jetbrains.annotations.Nullable;
import javax.cache.Cache;
import javax.cache.expiry.Duration;
import javax.cache.expiry.ExpiryPolicy;
+import javax.cache.integration.CompletionListener;
import javax.cache.processor.EntryProcessorException;
import javax.cache.processor.EntryProcessorResult;
import java.util.Iterator;
@@ -183,6 +186,9 @@ public class PlatformCache extends PlatformAbstractTarget {
/** */
public static final int OP_GET_CONFIG = 39;
+ /** */
+ public static final int OP_LOAD_ALL = 40;
+
/** Underlying JCache. */
private final IgniteCacheProxy cache;
@@ -369,6 +375,19 @@ public class PlatformCache extends PlatformAbstractTarget {
case OP_IS_LOCAL_LOCKED:
return cache.isLocalLocked(reader.readObjectDetached(), reader.readBoolean()) ? TRUE : FALSE;
+ case OP_LOAD_ALL: {
+ long futId = reader.readLong();
+ boolean replaceExisting = reader.readBoolean();
+
+ CompletionListenable fut = new CompletionListenable();
+
+ PlatformFutureUtils.listen(platformCtx, fut, futId, PlatformFutureUtils.TYP_OBJ, null, this);
+
+ cache.loadAll(PlatformUtils.readSet(reader), replaceExisting, fut);
+
+ return TRUE;
+ }
+
default:
return super.processInStreamOutLong(type, reader);
}
@@ -1101,4 +1120,39 @@ public class PlatformCache extends PlatformAbstractTarget {
}
}
}
+
+ /**
+ * Listenable around CompletionListener.
+ */
+ private static class CompletionListenable implements PlatformListenable, CompletionListener {
+ /** */
+ private IgniteBiInClosure<Object, Throwable> lsnr;
+
+ /** {@inheritDoc} */
+ @Override public void onCompletion() {
+ assert lsnr != null;
+
+ lsnr.apply(null, null);
+ }
+
+ /** {@inheritDoc} */
+ @Override public void onException(Exception e) {
+ lsnr.apply(null, e);
+ }
+
+ /** {@inheritDoc} */
+ @Override public void listen(IgniteBiInClosure<Object, Throwable> lsnr) {
+ this.lsnr = lsnr;
+ }
+
+ /** {@inheritDoc} */
+ @Override public boolean cancel() throws IgniteCheckedException {
+ return false;
+ }
+
+ /** {@inheritDoc} */
+ @Override public boolean isCancelled() {
+ return false;
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/fc9730a9/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/utils/PlatformFutureUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/utils/PlatformFutureUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/utils/PlatformFutureUtils.java
index 7a86201..8fad7d7 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/utils/PlatformFutureUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/utils/PlatformFutureUtils.java
@@ -182,7 +182,7 @@ public class PlatformFutureUtils {
* @param writer Optional writer.
*/
@SuppressWarnings("unchecked")
- private static void listen(final PlatformContext ctx, PlatformListenable listenable, final long futPtr, final
+ public static void listen(final PlatformContext ctx, PlatformListenable listenable, final long futPtr, final
int typ, @Nullable final Writer writer, final PlatformAbstractTarget target) {
final PlatformCallbackGateway gate = ctx.gateway();
http://git-wip-us.apache.org/repos/asf/ignite/blob/fc9730a9/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/CacheTestAsyncWrapper.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/CacheTestAsyncWrapper.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/CacheTestAsyncWrapper.cs
index 09e57dc..ff0c37c 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/CacheTestAsyncWrapper.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/CacheTestAsyncWrapper.cs
@@ -119,6 +119,18 @@ namespace Apache.Ignite.Core.Tests.Cache
}
/** <inheritDoc /> */
+ public void LoadAll(IEnumerable<TK> keys, bool replaceExistingValues)
+ {
+ _cache.LoadAll(keys, replaceExistingValues);
+ }
+
+ /** <inheritDoc /> */
+ public Task LoadAllAsync(IEnumerable<TK> keys, bool replaceExistingValues)
+ {
+ return _cache.LoadAllAsync(keys, replaceExistingValues);
+ }
+
+ /** <inheritDoc /> */
public bool ContainsKey(TK key)
{
return GetResult(_cache.ContainsKeyAsync(key));
http://git-wip-us.apache.org/repos/asf/ignite/blob/fc9730a9/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/Store/CacheStoreTest.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/Store/CacheStoreTest.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/Store/CacheStoreTest.cs
index cc46642..76ec384 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/Store/CacheStoreTest.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/Store/CacheStoreTest.cs
@@ -21,6 +21,7 @@ namespace Apache.Ignite.Core.Tests.Cache.Store
using System;
using System.Collections;
using System.Collections.Generic;
+ using System.Linq;
using Apache.Ignite.Core.Binary;
using Apache.Ignite.Core.Cache;
using Apache.Ignite.Core.Cache.Store;
@@ -474,6 +475,36 @@ namespace Apache.Ignite.Core.Tests.Cache.Store
_storeCount++;
}
+ [Test]
+ public void TestLoadAll([Values(true, false)] bool isAsync)
+ {
+ var cache = GetCache();
+
+ var loadAll = isAsync
+ ? (Action<IEnumerable<int>, bool>) ((x, y) => { cache.LoadAllAsync(x, y).Wait(); })
+ : cache.LoadAll;
+
+ Assert.AreEqual(0, cache.GetSize());
+
+ loadAll(Enumerable.Range(105, 5), false);
+
+ Assert.AreEqual(5, cache.GetSize());
+
+ for (int i = 105; i < 110; i++)
+ Assert.AreEqual("val_" + i, cache[i]);
+
+ // Test overwrite
+ cache[105] = "42";
+
+ cache.LocalEvict(new[] { 105 });
+ loadAll(new[] {105}, false);
+ Assert.AreEqual("42", cache[105]);
+
+ loadAll(new[] {105, 106}, true);
+ Assert.AreEqual("val_105", cache[105]);
+ Assert.AreEqual("val_106", cache[106]);
+ }
+
/// <summary>
/// Get's grid name for this test.
/// </summary>
http://git-wip-us.apache.org/repos/asf/ignite/blob/fc9730a9/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/Store/CacheTestStore.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/Store/CacheTestStore.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/Store/CacheTestStore.cs
index 9c381cb..b4b1670 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/Store/CacheTestStore.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/Store/CacheTestStore.cs
@@ -100,7 +100,7 @@ namespace Apache.Ignite.Core.Tests.Cache.Store
{
Debug.Assert(_grid != null);
- return keys.OfType<object>().ToDictionary(key => key, Load);
+ return keys.OfType<object>().ToDictionary(key => key, key => "val_" + key);
}
public void Write(object key, object val)
http://git-wip-us.apache.org/repos/asf/ignite/blob/fc9730a9/modules/platforms/dotnet/Apache.Ignite.Core/Cache/ICache.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Cache/ICache.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Cache/ICache.cs
index f5e7cd2..9d72cfa 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Cache/ICache.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Cache/ICache.cs
@@ -161,6 +161,32 @@ namespace Apache.Ignite.Core.Cache
Task LocalLoadCacheAsync(ICacheEntryFilter<TK, TV> p, params object[] args);
/// <summary>
+ /// Loads the specified entries into the cache using the configured
+ /// <see cref="ICacheStore"/>> for the given keys.
+ /// <para />
+ /// If an entry for a key already exists in the cache, a value will be loaded if and only if
+ /// <paramref name="replaceExistingValues" /> is true.
+ /// If no loader is configured for the cache, no objects will be loaded.
+ /// </summary>
+ /// <param name="keys">The keys to load.</param>
+ /// <param name="replaceExistingValues">if set to <c>true</c>, existing cache values will
+ /// be replaced by those loaded from a cache store.</param>
+ void LoadAll(IEnumerable<TK> keys, bool replaceExistingValues);
+
+ /// <summary>
+ /// Asynchronously loads the specified entries into the cache using the configured
+ /// <see cref="ICacheStore"/>> for the given keys.
+ /// <para />
+ /// If an entry for a key already exists in the cache, a value will be loaded if and only if
+ /// <paramref name="replaceExistingValues" /> is true.
+ /// If no loader is configured for the cache, no objects will be loaded.
+ /// </summary>
+ /// <param name="keys">The keys to load.</param>
+ /// <param name="replaceExistingValues">if set to <c>true</c>, existing cache values will
+ /// be replaced by those loaded from a cache store.</param>
+ Task LoadAllAsync(IEnumerable<TK> keys, bool replaceExistingValues);
+
+ /// <summary>
/// Check if cache contains mapping for this key.
/// </summary>
/// <param name="key">Key.</param>
http://git-wip-us.apache.org/repos/asf/ignite/blob/fc9730a9/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Cache/CacheImpl.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Cache/CacheImpl.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Cache/CacheImpl.cs
index 1296596..266012f 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Cache/CacheImpl.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Cache/CacheImpl.cs
@@ -288,6 +288,23 @@ namespace Apache.Ignite.Core.Impl.Cache
}
/** <inheritDoc /> */
+ public void LoadAll(IEnumerable<TK> keys, bool replaceExistingValues)
+ {
+ LoadAllAsync(keys, replaceExistingValues).Wait();
+ }
+
+ /** <inheritDoc /> */
+ public Task LoadAllAsync(IEnumerable<TK> keys, bool replaceExistingValues)
+ {
+ return GetFuture<object>((futId, futTyp) => DoOutOp((int) CacheOp.LoadAll, writer =>
+ {
+ writer.WriteLong(futId);
+ writer.WriteBoolean(replaceExistingValues);
+ WriteEnumerable(writer, keys);
+ })).Task;
+ }
+
+ /** <inheritDoc /> */
public bool ContainsKey(TK key)
{
IgniteArgumentCheck.NotNull(key, "key");
http://git-wip-us.apache.org/repos/asf/ignite/blob/fc9730a9/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Cache/CacheOp.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Cache/CacheOp.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Cache/CacheOp.cs
index 61ccb5f..4c42bf3 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Cache/CacheOp.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Cache/CacheOp.cs
@@ -60,6 +60,7 @@ namespace Apache.Ignite.Core.Impl.Cache
RemoveObj = 36,
Replace2 = 37,
Replace3 = 38,
- GetConfig = 39
+ GetConfig = 39,
+ LoadAll = 40
}
}
\ No newline at end of file
[08/14] ignite git commit: IGNITE-2415: CacheLoadOnlyStoreAdapter use
example. - Fixes #569.
Posted by vo...@apache.org.
IGNITE-2415: CacheLoadOnlyStoreAdapter use example. - Fixes #569.
Signed-off-by: shtykh_roman <rs...@yahoo.com>
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/2f64ab0b
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/2f64ab0b
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/2f64ab0b
Branch: refs/heads/ignite-gg-10994
Commit: 2f64ab0b4739a646dfb2c3b1fb2ed5b8039b43b4
Parents: 66f9a34
Author: shtykh_roman <rs...@yahoo.com>
Authored: Thu Mar 24 11:00:21 2016 +0900
Committer: shtykh_roman <rs...@yahoo.com>
Committed: Thu Mar 24 11:00:21 2016 +0900
----------------------------------------------------------------------
.../store/CacheLoadOnlyStoreExample.java | 166 +++++++++++++++++++
examples/src/main/resources/person.csv | 20 +++
.../ignite/examples/CacheExamplesSelfTest.java | 8 +
3 files changed, 194 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f64ab0b/examples/src/main/java/org/apache/ignite/examples/datagrid/store/CacheLoadOnlyStoreExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/datagrid/store/CacheLoadOnlyStoreExample.java b/examples/src/main/java/org/apache/ignite/examples/datagrid/store/CacheLoadOnlyStoreExample.java
new file mode 100644
index 0000000..4635c16
--- /dev/null
+++ b/examples/src/main/java/org/apache/ignite/examples/datagrid/store/CacheLoadOnlyStoreExample.java
@@ -0,0 +1,166 @@
+/*
+ * 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.examples.datagrid.store;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.Serializable;
+import java.util.Iterator;
+import java.util.NoSuchElementException;
+import java.util.Scanner;
+import javax.cache.configuration.FactoryBuilder;
+import javax.cache.integration.CacheLoaderException;
+import org.apache.ignite.Ignite;
+import org.apache.ignite.IgniteCache;
+import org.apache.ignite.IgniteException;
+import org.apache.ignite.Ignition;
+import org.apache.ignite.cache.CacheMode;
+import org.apache.ignite.cache.CachePeekMode;
+import org.apache.ignite.cache.store.CacheLoadOnlyStoreAdapter;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.examples.ExampleNodeStartup;
+import org.apache.ignite.examples.model.Person;
+import org.apache.ignite.internal.util.IgniteUtils;
+import org.apache.ignite.internal.util.typedef.T2;
+import org.apache.ignite.lang.IgniteBiTuple;
+import org.jetbrains.annotations.Nullable;
+
+/**
+ * Example of how to load data from CSV file using {@link CacheLoadOnlyStoreAdapter}.
+ * <p>
+ * The adapter is intended to be used in cases when you need to pre-load a cache from text or file of any other format.
+ * <p>
+ * Remote nodes can be started with {@link ExampleNodeStartup} in another JVM which will
+ * start node with {@code examples/config/example-ignite.xml} configuration.
+ */
+public class CacheLoadOnlyStoreExample {
+ /** Cache name. */
+ private static final String CACHE_NAME = CacheLoadOnlyStoreExample.class.getSimpleName();
+
+ /**
+ * Executes example.
+ *
+ * @param args Command line arguments, none required.
+ * @throws IgniteException If example execution failed.
+ */
+ public static void main(String[] args) throws IgniteException {
+ try (Ignite ignite = Ignition.start("examples/config/example-ignite.xml")) {
+ System.out.println();
+ System.out.println(">>> CacheLoadOnlyStoreExample started.");
+
+ ProductLoader productLoader = new ProductLoader("examples/src/main/resources/person.csv");
+
+ productLoader.setThreadsCount(2);
+ productLoader.setBatchSize(10);
+ productLoader.setBatchQueueSize(1);
+
+ try (IgniteCache<Long, Person> cache = ignite.getOrCreateCache(cacheConfiguration(productLoader))) {
+ // load data.
+ cache.loadCache(null);
+
+ System.out.println(">>> Loaded number of items: " + cache.size(CachePeekMode.PRIMARY));
+
+ System.out.println(">>> Data for the person by id1: " + cache.get(1L));
+ }
+ finally {
+ // Distributed cache could be removed from cluster only by #destroyCache() call.
+ ignite.destroyCache(CACHE_NAME);
+ }
+ }
+ }
+
+ /**
+ * Creates cache configurations for the loader.
+ *
+ * @return {@link CacheConfiguration}.
+ */
+ private static CacheConfiguration cacheConfiguration(ProductLoader productLoader) {
+ CacheConfiguration cacheCfg = new CacheConfiguration();
+
+ cacheCfg.setCacheMode(CacheMode.PARTITIONED);
+ cacheCfg.setName(CACHE_NAME);
+
+ // provide the loader.
+ cacheCfg.setCacheStoreFactory(new FactoryBuilder.SingletonFactory(productLoader));
+
+ return cacheCfg;
+ }
+
+ /**
+ * Csv data loader for product data.
+ */
+ private static class ProductLoader extends CacheLoadOnlyStoreAdapter<Long, Person, String> implements Serializable {
+ /** Csv file name. */
+ final String csvFileName;
+
+ /** Constructor. */
+ ProductLoader(String csvFileName) {
+ this.csvFileName = csvFileName;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected Iterator<String> inputIterator(@Nullable Object... args) throws CacheLoaderException {
+ final Scanner scanner;
+
+ try {
+ File path = IgniteUtils.resolveIgnitePath(csvFileName);
+
+ if (path == null)
+ throw new CacheLoaderException("Failed to open the source file: " + csvFileName);
+
+ scanner = new Scanner(path);
+
+ scanner.useDelimiter("\\n");
+ }
+ catch (FileNotFoundException e) {
+ throw new CacheLoaderException("Failed to open the source file " + csvFileName, e);
+ }
+
+ /**
+ * Iterator for text input. The scanner is implicitly closed when there's nothing to scan.
+ */
+ return new Iterator<String>() {
+ /** {@inheritDoc} */
+ @Override public boolean hasNext() {
+ if (!scanner.hasNext()) {
+ scanner.close();
+
+ return false;
+ }
+
+ return true;
+ }
+
+ /** {@inheritDoc} */
+ @Override public String next() {
+ if (!hasNext())
+ throw new NoSuchElementException();
+
+ return scanner.next();
+ }
+ };
+ }
+
+ /** {@inheritDoc} */
+ @Nullable @Override protected IgniteBiTuple<Long, Person> parse(String rec, @Nullable Object... args) {
+ String[] p = rec.split("\\s*,\\s*");
+ return new T2<>(Long.valueOf(p[0]), new Person(Long.valueOf(p[0]), Long.valueOf(p[1]),
+ p[2], p[3], Double.valueOf(p[4]), p[5].trim()));
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f64ab0b/examples/src/main/resources/person.csv
----------------------------------------------------------------------
diff --git a/examples/src/main/resources/person.csv b/examples/src/main/resources/person.csv
new file mode 100644
index 0000000..6f45854
--- /dev/null
+++ b/examples/src/main/resources/person.csv
@@ -0,0 +1,20 @@
+1,201,name1,surname1,1000,r1
+2,202,name2,surname2,2000,r2
+3,203,name3,surname3,3000,r3
+4,204,name4,surname4,4000,r4
+5,205,name5,surname5,5000,r5
+6,206,name6,surname6,6000,r6
+7,207,name7,surname7,7000,r7
+8,208,name8,surname8,8000,r8
+9,209,name9,surname9,9000,r9
+10,210,name10,surname10,10000,r10
+11,211,name11,surname11,11000,r11
+12,212,name12,surname12,12000,r12
+13,213,name13,surname13,13000,r13
+14,214,name14,surname14,14000,r14
+15,215,name15,surname15,15000,r15
+16,216,name16,surname16,16000,r16
+17,217,name17,surname17,17000,r17
+18,218,name18,surname18,18000,r18
+19,219,name19,surname19,19000,r19
+20,220,name20,surname20,20000,r20
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f64ab0b/examples/src/test/java/org/apache/ignite/examples/CacheExamplesSelfTest.java
----------------------------------------------------------------------
diff --git a/examples/src/test/java/org/apache/ignite/examples/CacheExamplesSelfTest.java b/examples/src/test/java/org/apache/ignite/examples/CacheExamplesSelfTest.java
index 39c2ea6..541291b 100644
--- a/examples/src/test/java/org/apache/ignite/examples/CacheExamplesSelfTest.java
+++ b/examples/src/test/java/org/apache/ignite/examples/CacheExamplesSelfTest.java
@@ -26,6 +26,7 @@ import org.apache.ignite.examples.datagrid.CachePutGetExample;
import org.apache.ignite.examples.datagrid.CacheQueryExample;
import org.apache.ignite.examples.datagrid.CacheTransactionExample;
import org.apache.ignite.examples.datagrid.starschema.CacheStarSchemaExample;
+import org.apache.ignite.examples.datagrid.store.CacheLoadOnlyStoreExample;
import org.apache.ignite.examples.datastructures.IgniteAtomicLongExample;
import org.apache.ignite.examples.datastructures.IgniteAtomicReferenceExample;
import org.apache.ignite.examples.datastructures.IgniteAtomicSequenceExample;
@@ -158,4 +159,11 @@ public class CacheExamplesSelfTest extends GridAbstractExamplesTest {
public void testCacheContinuousQueryExample() throws Exception {
CacheContinuousQueryExample.main(EMPTY_ARGS);
}
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testCacheLoadOnlyStoreExample() throws Exception {
+ CacheLoadOnlyStoreExample.main(EMPTY_ARGS);
+ }
}
[13/14] ignite git commit: Merge branch 'master' into ignite-gg-10994
Posted by vo...@apache.org.
Merge branch 'master' into ignite-gg-10994
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/b2980ec0
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/b2980ec0
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/b2980ec0
Branch: refs/heads/ignite-gg-10994
Commit: b2980ec025a7e9bb6e4d3fae24899eb383d9a676
Parents: e339745 88c65b8
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Thu Mar 24 10:51:41 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Thu Mar 24 10:51:41 2016 +0300
----------------------------------------------------------------------
.../store/CacheLoadOnlyStoreExample.java | 171 +++++++++++++++++++
examples/src/main/resources/person.csv | 20 +++
.../ignite/examples/CacheExamplesSelfTest.java | 8 +
.../ignite/internal/binary/BinaryContext.java | 2 +
.../internal/direct/DirectMessageReader.java | 2 +-
.../internal/direct/DirectMessageWriter.java | 4 +-
.../direct/state/DirectMessageState.java | 7 +-
.../stream/v2/DirectByteBufferStreamImplV2.java | 2 +-
.../dht/atomic/GridDhtAtomicUpdateFuture.java | 4 +-
.../continuous/CacheContinuousQueryManager.java | 13 +-
.../continuous/GridContinuousProcessor.java | 2 +-
.../internal/processors/igfs/IgfsBlockKey.java | 30 +++-
.../processors/igfs/IgfsDirectoryInfo.java | 33 +++-
.../internal/processors/igfs/IgfsEntryInfo.java | 8 +-
.../internal/processors/igfs/IgfsUtils.java | 127 ++++++++++++++
.../meta/IgfsMetaDirectoryCreateProcessor.java | 24 ++-
.../IgfsMetaDirectoryListingAddProcessor.java | 6 +-
...gfsMetaDirectoryListingReplaceProcessor.java | 4 +-
.../igfs/meta/IgfsMetaFileCreateProcessor.java | 16 +-
.../meta/IgfsMetaUpdatePropertiesProcessor.java | 5 +-
.../platform/cache/PlatformCache.java | 54 ++++++
.../platform/utils/PlatformFutureUtils.java | 2 +-
.../internal/util/nio/GridDirectParser.java | 4 +-
.../ignite/internal/util/nio/GridNioServer.java | 19 ++-
.../communication/tcp/TcpCommunicationSpi.java | 16 ++
.../cache/IgniteCacheAbstractTest.java | 6 +
.../IgniteCacheEntryListenerAbstractTest.java | 16 +-
.../distributed/IgniteCacheManyClientsTest.java | 6 +
...ContinuousQueryFailoverAbstractSelfTest.java | 6 +
.../processors/igfs/IgfsAbstractSelfTest.java | 11 ++
.../IgfsPrimaryOptimziedMarshallerSelfTest.java | 28 +++
.../ignite/testsuites/IgniteIgfsTestSuite.java | 2 +
.../Cache/CacheTestAsyncWrapper.cs | 12 ++
.../Cache/Store/CacheStoreTest.cs | 31 ++++
.../Cache/Store/CacheTestStore.cs | 2 +-
.../dotnet/Apache.Ignite.Core/Cache/ICache.cs | 26 +++
.../Apache.Ignite.Core/Impl/Cache/CacheImpl.cs | 17 ++
.../Apache.Ignite.Core/Impl/Cache/CacheOp.cs | 3 +-
38 files changed, 687 insertions(+), 62 deletions(-)
----------------------------------------------------------------------
[11/14] ignite git commit: Merge remote-tracking branch
'origin/master'
Posted by vo...@apache.org.
Merge remote-tracking branch 'origin/master'
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/90a5bbec
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/90a5bbec
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/90a5bbec
Branch: refs/heads/ignite-gg-10994
Commit: 90a5bbec4978da35d43c1c121d880cbba5c8dea4
Parents: 29806af 3bf5f46
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Thu Mar 24 10:35:55 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Thu Mar 24 10:35:55 2016 +0300
----------------------------------------------------------------------
.../examples/datagrid/store/CacheLoadOnlyStoreExample.java | 5 +++++
1 file changed, 5 insertions(+)
----------------------------------------------------------------------
[12/14] ignite git commit: Reverted accidental change to
GridCacheMapEntry (commit b189bb2e15e7a54).
Posted by vo...@apache.org.
Reverted accidental change to GridCacheMapEntry (commit b189bb2e15e7a54).
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/88c65b84
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/88c65b84
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/88c65b84
Branch: refs/heads/ignite-gg-10994
Commit: 88c65b84847244401eb6a7c520bbbcb2158685c0
Parents: 90a5bbe
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Thu Mar 24 10:40:15 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Thu Mar 24 10:40:15 2016 +0300
----------------------------------------------------------------------
.../ignite/internal/processors/cache/GridCacheMapEntry.java | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/88c65b84/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
index 6677c6a..fb6aeef 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
@@ -2453,12 +2453,10 @@ public abstract class GridCacheMapEntry extends GridMetadataAwareAdapter impleme
recordNodeId(affNodeId, topVer);
- if (hadVal) {
- updateCntr0 = nextPartCounter(topVer);
+ updateCntr0 = nextPartCounter(topVer);
- if (updateCntr != null)
- updateCntr0 = updateCntr;
- }
+ if (updateCntr != null)
+ updateCntr0 = updateCntr;
drReplicate(drType, null, newVer, topVer);
[02/14] ignite git commit: Merge remote-tracking branch
'origin/master'
Posted by vo...@apache.org.
Merge remote-tracking branch 'origin/master'
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/046a188b
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/046a188b
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/046a188b
Branch: refs/heads/ignite-gg-10994
Commit: 046a188b80f0110080b1151362a51379429aa660
Parents: 8d19968 409a623
Author: Yakov Zhdanov <yz...@gridgain.com>
Authored: Tue Mar 22 15:14:34 2016 +0300
Committer: Yakov Zhdanov <yz...@gridgain.com>
Committed: Tue Mar 22 15:14:34 2016 +0300
----------------------------------------------------------------------
.../configuration/FileSystemConfiguration.java | 51 +-
.../internal/GridEventConsumeHandler.java | 3 +-
.../internal/GridMessageListenHandler.java | 3 +-
.../ignite/internal/binary/BinaryContext.java | 2 -
.../continuous/CacheContinuousQueryHandler.java | 88 +++-
.../continuous/CacheContinuousQueryManager.java | 12 +
.../continuous/GridContinuousHandler.java | 4 +-
.../continuous/GridContinuousProcessor.java | 27 +-
.../StartRoutineAckDiscoveryMessage.java | 22 +-
.../StartRoutineDiscoveryMessage.java | 22 +-
.../processors/igfs/IgfsDeleteWorker.java | 8 +-
.../processors/igfs/IgfsDirectoryInfo.java | 30 +-
.../internal/processors/igfs/IgfsEntryInfo.java | 37 +-
.../ignite/internal/processors/igfs/IgfsEx.java | 12 -
.../internal/processors/igfs/IgfsImpl.java | 47 +-
.../processors/igfs/IgfsInputStreamImpl.java | 2 +-
.../processors/igfs/IgfsMetaManager.java | 111 ++---
.../processors/igfs/IgfsOutputStreamImpl.java | 21 +-
.../internal/processors/igfs/IgfsPathIds.java | 52 ++-
.../processors/igfs/IgfsPathsCreateResult.java | 15 +-
.../internal/processors/igfs/IgfsProcessor.java | 29 +-
.../IgfsSecondaryOutputStreamDescriptor.java | 17 +-
.../internal/processors/igfs/IgfsUtils.java | 173 ++++++-
.../meta/IgfsMetaDirectoryCreateProcessor.java | 12 +-
.../IgfsMetaDirectoryListingAddProcessor.java | 7 +-
.../igfs/meta/IgfsMetaFileCreateProcessor.java | 8 +-
.../igfs/meta/IgfsMetaUpdatePathProcessor.java | 102 ----
.../meta/IgfsMetaUpdatePropertiesProcessor.java | 5 +-
.../ignite/igfs/IgfsEventsAbstractSelfTest.java | 32 +-
.../distributed/IgniteCacheCreatePutTest.java | 137 +++++-
.../CacheContinuousQueryLostPartitionTest.java | 2 -
.../GridCacheContinuousQueryConcurrentTest.java | 466 +++++++++++++++++++
.../processors/igfs/IgfsAbstractSelfTest.java | 31 +-
.../igfs/IgfsDualAbstractSelfTest.java | 13 +-
.../igfs/IgfsMetaManagerSelfTest.java | 8 +-
.../igfs/IgfsPrimaryRelaxedSelfTest.java | 28 ++
.../processors/igfs/IgfsProcessorSelfTest.java | 17 +-
.../processors/igfs/IgfsStreamsSelfTest.java | 2 +-
.../ignite/testsuites/IgniteIgfsTestSuite.java | 2 +
.../fs/IgniteHadoopIgfsSecondaryFileSystem.java | 8 +-
.../hadoop/fs/v1/IgniteHadoopFileSystem.java | 19 +-
.../hadoop/fs/v2/IgniteHadoopFileSystem.java | 21 +-
.../hadoop/igfs/HadoopIgfsProperties.java | 11 +-
...oopFileSystemUniversalFileSystemAdapter.java | 8 +-
.../processors/hadoop/HadoopMapReduceTest.java | 5 +-
.../IgniteCacheQuerySelfTestSuite.java | 2 +
46 files changed, 1248 insertions(+), 486 deletions(-)
----------------------------------------------------------------------
[04/14] ignite git commit: Added ability to dump direct message
reader and writer (cherry picked from commit 660aa2f)
Posted by vo...@apache.org.
Added ability to dump direct message reader and writer
(cherry picked from commit 660aa2f)
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/00139554
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/00139554
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/00139554
Branch: refs/heads/ignite-gg-10994
Commit: 00139554ffdcfaae07970a2281b6dcec8cec0af4
Parents: 61a0a5f
Author: Yakov Zhdanov <yz...@gridgain.com>
Authored: Tue Mar 22 17:03:03 2016 +0300
Committer: Yakov Zhdanov <yz...@gridgain.com>
Committed: Tue Mar 22 17:28:39 2016 +0300
----------------------------------------------------------------------
.../apache/ignite/internal/direct/DirectMessageReader.java | 2 +-
.../apache/ignite/internal/direct/DirectMessageWriter.java | 4 ++--
.../ignite/internal/direct/state/DirectMessageState.java | 7 +++----
.../direct/stream/v2/DirectByteBufferStreamImplV2.java | 2 +-
.../org/apache/ignite/internal/util/nio/GridDirectParser.java | 4 ++--
.../org/apache/ignite/internal/util/nio/GridNioServer.java | 6 ++++++
6 files changed, 15 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/00139554/modules/core/src/main/java/org/apache/ignite/internal/direct/DirectMessageReader.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/direct/DirectMessageReader.java b/modules/core/src/main/java/org/apache/ignite/internal/direct/DirectMessageReader.java
index b567a03..10bc7e2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/direct/DirectMessageReader.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/direct/DirectMessageReader.java
@@ -26,8 +26,8 @@ import org.apache.ignite.internal.direct.state.DirectMessageState;
import org.apache.ignite.internal.direct.state.DirectMessageStateItem;
import org.apache.ignite.internal.direct.stream.DirectByteBufferStream;
import org.apache.ignite.internal.direct.stream.v1.DirectByteBufferStreamImplV1;
-import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.internal.direct.stream.v2.DirectByteBufferStreamImplV2;
+import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.lang.IgniteOutClosure;
import org.apache.ignite.lang.IgniteUuid;
import org.apache.ignite.plugin.extensions.communication.Message;
http://git-wip-us.apache.org/repos/asf/ignite/blob/00139554/modules/core/src/main/java/org/apache/ignite/internal/direct/DirectMessageWriter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/direct/DirectMessageWriter.java b/modules/core/src/main/java/org/apache/ignite/internal/direct/DirectMessageWriter.java
index be17113..28993c6 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/direct/DirectMessageWriter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/direct/DirectMessageWriter.java
@@ -26,9 +26,9 @@ import org.apache.ignite.internal.direct.state.DirectMessageState;
import org.apache.ignite.internal.direct.state.DirectMessageStateItem;
import org.apache.ignite.internal.direct.stream.DirectByteBufferStream;
import org.apache.ignite.internal.direct.stream.v1.DirectByteBufferStreamImplV1;
+import org.apache.ignite.internal.direct.stream.v2.DirectByteBufferStreamImplV2;
import org.apache.ignite.internal.util.tostring.GridToStringInclude;
import org.apache.ignite.internal.util.typedef.internal.S;
-import org.apache.ignite.internal.direct.stream.v2.DirectByteBufferStreamImplV2;
import org.apache.ignite.lang.IgniteOutClosure;
import org.apache.ignite.lang.IgniteUuid;
import org.apache.ignite.plugin.extensions.communication.Message;
@@ -336,7 +336,7 @@ public class DirectMessageWriter implements MessageWriter {
}
/** {@inheritDoc} */
- public String toString() {
+ @Override public String toString() {
return S.toString(DirectMessageWriter.class, this);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/00139554/modules/core/src/main/java/org/apache/ignite/internal/direct/state/DirectMessageState.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/direct/state/DirectMessageState.java b/modules/core/src/main/java/org/apache/ignite/internal/direct/state/DirectMessageState.java
index 8ad7fe0..58f625f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/direct/state/DirectMessageState.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/direct/state/DirectMessageState.java
@@ -18,8 +18,8 @@
package org.apache.ignite.internal.direct.state;
import java.lang.reflect.Array;
+import java.util.Arrays;
import org.apache.ignite.internal.util.tostring.GridToStringExclude;
-import org.apache.ignite.internal.util.tostring.GridToStringInclude;
import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.lang.IgniteOutClosure;
@@ -35,7 +35,6 @@ public class DirectMessageState<T extends DirectMessageStateItem> {
private final IgniteOutClosure<T> factory;
/** Stack array. */
- @GridToStringInclude
private T[] stack;
/** Current position. */
@@ -102,7 +101,7 @@ public class DirectMessageState<T extends DirectMessageStateItem> {
}
/** {@inheritDoc} */
- public String toString() {
- return S.toString(DirectMessageState.class, this);
+ @Override public String toString() {
+ return S.toString(DirectMessageState.class, this, "stack", Arrays.toString(stack));
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/00139554/modules/core/src/main/java/org/apache/ignite/internal/direct/stream/v2/DirectByteBufferStreamImplV2.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/direct/stream/v2/DirectByteBufferStreamImplV2.java b/modules/core/src/main/java/org/apache/ignite/internal/direct/stream/v2/DirectByteBufferStreamImplV2.java
index 7958793..d7dc990 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/direct/stream/v2/DirectByteBufferStreamImplV2.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/direct/stream/v2/DirectByteBufferStreamImplV2.java
@@ -1779,7 +1779,7 @@ public class DirectByteBufferStreamImplV2 implements DirectByteBufferStream {
}
/** {@inheritDoc} */
- public String toString() {
+ @Override public String toString() {
return S.toString(DirectByteBufferStreamImplV2.class, this);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/00139554/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridDirectParser.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridDirectParser.java b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridDirectParser.java
index 76e7d4d..5a02662 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridDirectParser.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridDirectParser.java
@@ -33,10 +33,10 @@ import org.jetbrains.annotations.Nullable;
*/
public class GridDirectParser implements GridNioParser {
/** Message metadata key. */
- private static final int MSG_META_KEY = GridNioSessionMetaKey.nextUniqueKey();
+ static final int MSG_META_KEY = GridNioSessionMetaKey.nextUniqueKey();
/** Reader metadata key. */
- private static final int READER_META_KEY = GridNioSessionMetaKey.nextUniqueKey();
+ static final int READER_META_KEY = GridNioSessionMetaKey.nextUniqueKey();
/** */
private final IgniteLogger log;
http://git-wip-us.apache.org/repos/asf/ignite/blob/00139554/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
index 0d5c5de..c9c64ec 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
@@ -64,6 +64,7 @@ import org.apache.ignite.lang.IgniteBiInClosure;
import org.apache.ignite.lang.IgniteInClosure;
import org.apache.ignite.lang.IgnitePredicate;
import org.apache.ignite.plugin.extensions.communication.Message;
+import org.apache.ignite.plugin.extensions.communication.MessageReader;
import org.apache.ignite.plugin.extensions.communication.MessageWriter;
import org.apache.ignite.thread.IgniteThread;
import org.jetbrains.annotations.Nullable;
@@ -1455,9 +1456,14 @@ public class GridNioServer<T> {
for (SelectionKey key : keys) {
GridSelectorNioSessionImpl ses = (GridSelectorNioSessionImpl)key.attachment();
+ MessageWriter writer = ses.meta(MSG_WRITER.ordinal());
+ MessageReader reader = ses.meta(GridDirectParser.READER_META_KEY);
+
sb.append(" Connection info [")
.append("rmtAddr=").append(ses.remoteAddress())
.append(", locAddr=").append(ses.localAddress())
+ .append(", msgWriter=").append(writer != null ? writer.toString() : "null")
+ .append(", msgReader=").append(reader != null ? reader.toString() : "null")
.append(", bytesRcvd=").append(ses.bytesReceived())
.append(", bytesSent=").append(ses.bytesSent());
[14/14] ignite git commit: Fixed missing SUIDs.
Posted by vo...@apache.org.
Fixed missing SUIDs.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/5a7cb70f
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/5a7cb70f
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/5a7cb70f
Branch: refs/heads/ignite-gg-10994
Commit: 5a7cb70f689c38bef15090116ad660b9331b912b
Parents: b2980ec
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Thu Mar 24 10:53:23 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Thu Mar 24 10:53:23 2016 +0300
----------------------------------------------------------------------
.../ignite/internal/processors/datastreamer/DataStreamerImpl.java | 3 +++
1 file changed, 3 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/5a7cb70f/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerImpl.java
index 26d08e3..4599060 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerImpl.java
@@ -1645,6 +1645,9 @@ public class DataStreamerImpl<K, V> implements IgniteDataStreamer<K, V>, Delayed
* Default IO policy resolver.
*/
private static class DefaultIoPolicyResolver implements IgniteClosure<ClusterNode, Byte> {
+ /** */
+ private static final long serialVersionUID = 0L;
+
/** {@inheritDoc} */
@Override public Byte apply(ClusterNode gridNode) {
return PUBLIC_POOL;
[10/14] ignite git commit: IGNITE-2878: IGFS: Optimzied serialization
of IgfsListingEntry and properties map.
Posted by vo...@apache.org.
IGNITE-2878: IGFS: Optimzied serialization of IgfsListingEntry and properties map.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/29806af4
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/29806af4
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/29806af4
Branch: refs/heads/ignite-gg-10994
Commit: 29806af4ec2a0a9ab6b19f9a08c1fd17ea7a0694
Parents: 2f64ab0
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Thu Mar 24 10:35:43 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Thu Mar 24 10:35:43 2016 +0300
----------------------------------------------------------------------
.../ignite/internal/binary/BinaryContext.java | 2 +
.../internal/processors/igfs/IgfsBlockKey.java | 30 ++++-
.../processors/igfs/IgfsDirectoryInfo.java | 33 ++++-
.../internal/processors/igfs/IgfsEntryInfo.java | 8 +-
.../internal/processors/igfs/IgfsUtils.java | 127 +++++++++++++++++++
.../meta/IgfsMetaDirectoryCreateProcessor.java | 24 ++--
.../IgfsMetaDirectoryListingAddProcessor.java | 6 +-
...gfsMetaDirectoryListingReplaceProcessor.java | 4 +-
.../igfs/meta/IgfsMetaFileCreateProcessor.java | 16 ++-
.../meta/IgfsMetaUpdatePropertiesProcessor.java | 5 +-
.../processors/igfs/IgfsAbstractSelfTest.java | 11 ++
.../IgfsPrimaryOptimziedMarshallerSelfTest.java | 28 ++++
.../ignite/testsuites/IgniteIgfsTestSuite.java | 2 +
13 files changed, 261 insertions(+), 35 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/29806af4/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java
index b357345..4d8c293 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java
@@ -65,6 +65,7 @@ import org.apache.ignite.internal.processors.cache.binary.BinaryMetadataKey;
import org.apache.ignite.internal.processors.closure.GridClosureProcessor;
import org.apache.ignite.internal.processors.datastructures.CollocatedQueueItemKey;
import org.apache.ignite.internal.processors.datastructures.CollocatedSetItemKey;
+import org.apache.ignite.internal.processors.igfs.IgfsBlockKey;
import org.apache.ignite.internal.processors.igfs.IgfsDirectoryInfo;
import org.apache.ignite.internal.processors.igfs.IgfsFileAffinityRange;
import org.apache.ignite.internal.processors.igfs.IgfsFileInfo;
@@ -118,6 +119,7 @@ public class BinaryContext {
// IGFS classes.
sysClss.add(IgfsPath.class.getName());
+ sysClss.add(IgfsBlockKey.class.getName());
sysClss.add(IgfsDirectoryInfo.class.getName());
sysClss.add(IgfsFileAffinityRange.class.getName());
sysClss.add(IgfsFileInfo.class.getName());
http://git-wip-us.apache.org/repos/asf/ignite/blob/29806af4/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsBlockKey.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsBlockKey.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsBlockKey.java
index 06a2e1c..c366ae3 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsBlockKey.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsBlockKey.java
@@ -22,6 +22,14 @@ import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.nio.ByteBuffer;
+
+import org.apache.ignite.binary.BinaryObjectException;
+import org.apache.ignite.binary.BinaryRawReader;
+import org.apache.ignite.binary.BinaryRawWriter;
+import org.apache.ignite.binary.BinaryReader;
+import org.apache.ignite.binary.BinaryWriter;
+import org.apache.ignite.binary.Binarylizable;
+import org.apache.ignite.internal.binary.BinaryUtils;
import org.apache.ignite.internal.processors.task.GridInternal;
import org.apache.ignite.internal.util.typedef.F;
import org.apache.ignite.internal.util.typedef.internal.S;
@@ -37,7 +45,7 @@ import org.jetbrains.annotations.Nullable;
* File's binary data block key.
*/
@GridInternal
-public final class IgfsBlockKey implements Message, Externalizable, Comparable<IgfsBlockKey> {
+public final class IgfsBlockKey implements Message, Externalizable, Binarylizable, Comparable<IgfsBlockKey> {
/** */
private static final long serialVersionUID = 0L;
@@ -150,6 +158,26 @@ public final class IgfsBlockKey implements Message, Externalizable, Comparable<I
}
/** {@inheritDoc} */
+ @Override public void writeBinary(BinaryWriter writer) throws BinaryObjectException {
+ BinaryRawWriter out = writer.rawWriter();
+
+ BinaryUtils.writeIgniteUuid(out, fileId);
+ BinaryUtils.writeIgniteUuid(out, affKey);
+ out.writeBoolean(evictExclude);
+ out.writeLong(blockId);
+ }
+
+ /** {@inheritDoc} */
+ @Override public void readBinary(BinaryReader reader) throws BinaryObjectException {
+ BinaryRawReader in = reader.rawReader();
+
+ fileId = BinaryUtils.readIgniteUuid(in);
+ affKey = BinaryUtils.readIgniteUuid(in);
+ evictExclude = in.readBoolean();
+ blockId = in.readLong();
+ }
+
+ /** {@inheritDoc} */
@Override public int hashCode() {
return fileId.hashCode() + (int)(blockId ^ (blockId >>> 32));
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/29806af4/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsDirectoryInfo.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsDirectoryInfo.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsDirectoryInfo.java
index a426e8c..269098b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsDirectoryInfo.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsDirectoryInfo.java
@@ -26,6 +26,7 @@ import org.apache.ignite.binary.Binarylizable;
import org.apache.ignite.internal.util.tostring.GridToStringInclude;
import org.apache.ignite.internal.util.typedef.F;
import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.lang.IgniteUuid;
import org.jetbrains.annotations.Nullable;
@@ -181,7 +182,19 @@ public class IgfsDirectoryInfo extends IgfsEntryInfo implements Binarylizable {
@Override public void writeExternal(ObjectOutput out) throws IOException {
super.writeExternal(out);
- out.writeObject(listing);
+ if (listing != null) {
+ out.writeBoolean(true);
+
+ out.writeInt(listing.size());
+
+ for (Map.Entry<String, IgfsListingEntry> entry : listing.entrySet()) {
+ U.writeString(out, entry.getKey());
+
+ IgfsUtils.writeListingEntry(out, entry.getValue());
+ }
+ }
+ else
+ out.writeBoolean(false);
}
/** {@inheritDoc} */
@@ -189,7 +202,19 @@ public class IgfsDirectoryInfo extends IgfsEntryInfo implements Binarylizable {
@Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
super.readExternal(in);
- listing = (Map<String, IgfsListingEntry>)in.readObject();
+ if (in.readBoolean()) {
+ int listingSize = in.readInt();
+
+ listing = new HashMap<>(listingSize);
+
+ for (int i = 0; i < listingSize; i++) {
+ String key = U.readString(in);
+
+ IgfsListingEntry val = IgfsUtils.readListingEntry(in);
+
+ listing.put(key, val);
+ }
+ }
}
/** {@inheritDoc} */
@@ -211,8 +236,6 @@ public class IgfsDirectoryInfo extends IgfsEntryInfo implements Binarylizable {
}
else
out.writeBoolean(false);
-
- out.writeMap(listing);
}
/** {@inheritDoc} */
@@ -234,8 +257,6 @@ public class IgfsDirectoryInfo extends IgfsEntryInfo implements Binarylizable {
listing.put(key, val);
}
}
-
- listing = in.readMap();
}
/** {@inheritDoc} */
http://git-wip-us.apache.org/repos/asf/ignite/blob/29806af4/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsEntryInfo.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsEntryInfo.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsEntryInfo.java
index 9ff65da..4df8b34 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsEntryInfo.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsEntryInfo.java
@@ -267,7 +267,9 @@ public abstract class IgfsEntryInfo implements Externalizable {
/** {@inheritDoc} */
@Override public void writeExternal(ObjectOutput out) throws IOException {
U.writeGridUuid(out, id);
- U.writeStringMap(out, props);
+
+ IgfsUtils.writeProperties(out, props);
+
out.writeLong(accessTime);
out.writeLong(modificationTime);
}
@@ -275,7 +277,9 @@ public abstract class IgfsEntryInfo implements Externalizable {
/** {@inheritDoc} */
@Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
id = U.readGridUuid(in);
- props = U.readStringMap(in);
+
+ props = IgfsUtils.readProperties(in);
+
accessTime = in.readLong();
modificationTime = in.readLong();
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/29806af4/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsUtils.java
index c6b7ad3..1b97565 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsUtils.java
@@ -36,6 +36,7 @@ import org.apache.ignite.internal.binary.BinaryUtils;
import org.apache.ignite.internal.cluster.ClusterTopologyServerNotFoundException;
import org.apache.ignite.internal.managers.eventstorage.GridEventStorageManager;
import org.apache.ignite.internal.processors.cache.IgniteInternalCache;
+import org.apache.ignite.internal.util.IgniteUtils;
import org.apache.ignite.internal.util.future.IgniteFutureImpl;
import org.apache.ignite.internal.util.lang.IgniteOutClosureX;
import org.apache.ignite.internal.util.typedef.F;
@@ -45,6 +46,9 @@ import org.apache.ignite.lang.IgniteUuid;
import org.apache.ignite.transactions.Transaction;
import org.jetbrains.annotations.Nullable;
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
import java.lang.reflect.Constructor;
import java.util.HashMap;
import java.util.Map;
@@ -471,6 +475,42 @@ public class IgfsUtils {
}
/**
+ * Write listing entry.
+ *
+ * @param out Writer.
+ * @param entry Entry.
+ * @throws IOException If failed.
+ */
+ public static void writeListingEntry(DataOutput out, @Nullable IgfsListingEntry entry) throws IOException {
+ if (entry != null) {
+ out.writeBoolean(true);
+
+ IgniteUtils.writeGridUuid(out, entry.fileId());
+
+ out.writeBoolean(entry.isDirectory());
+ }
+ else
+ out.writeBoolean(false);
+ }
+
+ /**
+ * Read listing entry.
+ *
+ * @param in Reader.
+ * @return Entry.
+ */
+ @Nullable public static IgfsListingEntry readListingEntry(DataInput in) throws IOException {
+ if (in.readBoolean()) {
+ IgniteUuid id = IgniteUtils.readGridUuid(in);
+ boolean dir = in.readBoolean();
+
+ return new IgfsListingEntry(id, dir);
+ }
+ else
+ return null;
+ }
+
+ /**
* Write entry properties. Rely on reference equality for well-known properties.
*
* @param out Writer.
@@ -554,4 +594,91 @@ public class IgfsUtils {
else
return null;
}
+
+ /**
+ * Write entry properties. Rely on reference equality for well-known properties.
+ *
+ * @param out Writer.
+ * @param props Properties.
+ * @throws IOException If failed.
+ */
+ @SuppressWarnings("StringEquality")
+ public static void writeProperties(DataOutput out, @Nullable Map<String, String> props) throws IOException {
+ if (props != null) {
+ out.writeInt(props.size());
+
+ for (Map.Entry<String, String> entry : props.entrySet()) {
+ String key = entry.getKey();
+
+ if (key == PROP_PERMISSION)
+ out.writeByte(PROP_PERMISSION_IDX);
+ else if (key == PROP_PREFER_LOCAL_WRITES)
+ out.writeByte(PROP_PREFER_LOCAL_WRITES_IDX);
+ else if (key == PROP_USER_NAME)
+ out.writeByte(PROP_USER_NAME_IDX);
+ else if (key == PROP_GROUP_NAME)
+ out.writeByte(PROP_GROUP_NAME_IDX);
+ else {
+ out.writeByte(PROP_IDX);
+ U.writeString(out, key);
+ }
+
+ U.writeString(out, entry.getValue());
+ }
+ }
+ else
+ out.writeInt(-1);
+ }
+
+ /**
+ * Read entry properties.
+ *
+ * @param in Reader.
+ * @return Properties.
+ * @throws IOException If failed.
+ */
+ @Nullable public static Map<String, String> readProperties(DataInput in) throws IOException {
+ int size = in.readInt();
+
+ if (size >= 0) {
+ Map<String, String> props = new HashMap<>(size);
+
+ for (int i = 0; i < size; i++) {
+ byte idx = in.readByte();
+
+ String key;
+
+ switch (idx) {
+ case PROP_PERMISSION_IDX:
+ key = PROP_PERMISSION;
+
+ break;
+
+ case PROP_PREFER_LOCAL_WRITES_IDX:
+ key = PROP_PREFER_LOCAL_WRITES;
+
+ break;
+
+ case PROP_USER_NAME_IDX:
+ key = PROP_USER_NAME;
+
+ break;
+
+ case PROP_GROUP_NAME_IDX:
+ key = PROP_GROUP_NAME;
+
+ break;
+
+ default:
+ key = U.readString(in);
+ }
+
+ props.put(key, U.readString(in));
+ }
+
+ return props;
+ }
+ else
+ return null;
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/29806af4/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/meta/IgfsMetaDirectoryCreateProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/meta/IgfsMetaDirectoryCreateProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/meta/IgfsMetaDirectoryCreateProcessor.java
index 5f4fe73..eee9300 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/meta/IgfsMetaDirectoryCreateProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/meta/IgfsMetaDirectoryCreateProcessor.java
@@ -116,27 +116,25 @@ public class IgfsMetaDirectoryCreateProcessor implements EntryProcessor<IgniteUu
/** {@inheritDoc} */
@Override public void writeExternal(ObjectOutput out) throws IOException {
out.writeLong(createTime);
- U.writeStringMap(out, props);
- if (childName != null) {
- out.writeBoolean(true);
+ IgfsUtils.writeProperties(out, props);
+
+ U.writeString(out, childName);
- U.writeString(out, childName);
- out.writeObject(childEntry);
- }
- else
- out.writeBoolean(false);
+ if (childName != null)
+ IgfsUtils.writeListingEntry(out, childEntry);
}
/** {@inheritDoc} */
@Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
createTime = in.readLong();
- props = U.readStringMap(in);
- if (in.readBoolean()) {
- childName = U.readString(in);
- childEntry = (IgfsListingEntry)in.readObject();
- }
+ props = IgfsUtils.readProperties(in);
+
+ childName = U.readString(in);
+
+ if (childName != null)
+ childEntry = IgfsUtils.readListingEntry(in);
}
/** {@inheritDoc} */
http://git-wip-us.apache.org/repos/asf/ignite/blob/29806af4/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/meta/IgfsMetaDirectoryListingAddProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/meta/IgfsMetaDirectoryListingAddProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/meta/IgfsMetaDirectoryListingAddProcessor.java
index e9fa867..380d997 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/meta/IgfsMetaDirectoryListingAddProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/meta/IgfsMetaDirectoryListingAddProcessor.java
@@ -100,13 +100,15 @@ public final class IgfsMetaDirectoryListingAddProcessor implements EntryProcesso
/** {@inheritDoc} */
@Override public void writeExternal(ObjectOutput out) throws IOException {
U.writeString(out, fileName);
- out.writeObject(entry);
+
+ IgfsUtils.writeListingEntry(out, entry);
}
/** {@inheritDoc} */
@Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
fileName = U.readString(in);
- entry = (IgfsListingEntry)in.readObject();
+
+ entry = IgfsUtils.readListingEntry(in);
}
/** {@inheritDoc} */
http://git-wip-us.apache.org/repos/asf/ignite/blob/29806af4/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/meta/IgfsMetaDirectoryListingReplaceProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/meta/IgfsMetaDirectoryListingReplaceProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/meta/IgfsMetaDirectoryListingReplaceProcessor.java
index dfc9bfc..e230f05 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/meta/IgfsMetaDirectoryListingReplaceProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/meta/IgfsMetaDirectoryListingReplaceProcessor.java
@@ -98,13 +98,13 @@ public final class IgfsMetaDirectoryListingReplaceProcessor implements EntryProc
/** {@inheritDoc} */
@Override public void writeExternal(ObjectOutput out) throws IOException {
U.writeString(out, name);
- out.writeObject(id);
+ U.writeGridUuid(out, id);
}
/** {@inheritDoc} */
@Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
name = U.readString(in);
- id = (IgniteUuid)in.readObject();
+ id = U.readGridUuid(in);
}
/** {@inheritDoc} */
http://git-wip-us.apache.org/repos/asf/ignite/blob/29806af4/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/meta/IgfsMetaFileCreateProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/meta/IgfsMetaFileCreateProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/meta/IgfsMetaFileCreateProcessor.java
index 9fd16aa..8c4c296 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/meta/IgfsMetaFileCreateProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/meta/IgfsMetaFileCreateProcessor.java
@@ -116,20 +116,24 @@ public class IgfsMetaFileCreateProcessor implements EntryProcessor<IgniteUuid, I
/** {@inheritDoc} */
@Override public void writeExternal(ObjectOutput out) throws IOException {
out.writeLong(createTime);
- U.writeStringMap(out, props);
+
+ IgfsUtils.writeProperties(out, props);
+
out.writeInt(blockSize);
- out.writeObject(affKey);
- out.writeObject(lockId);
+ U.writeGridUuid(out, affKey);
+ U.writeGridUuid(out, lockId);
out.writeBoolean(evictExclude);
}
/** {@inheritDoc} */
@Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
createTime = in.readLong();
- props = U.readStringMap(in);
+
+ props = IgfsUtils.readProperties(in);
+
blockSize = in.readInt();
- affKey = (IgniteUuid)in.readObject();
- lockId = (IgniteUuid)in.readObject();
+ affKey = U.readGridUuid(in);
+ lockId = U.readGridUuid(in);
evictExclude = in.readBoolean();
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/29806af4/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/meta/IgfsMetaUpdatePropertiesProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/meta/IgfsMetaUpdatePropertiesProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/meta/IgfsMetaUpdatePropertiesProcessor.java
index e0d5b8b..af79332 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/meta/IgfsMetaUpdatePropertiesProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/meta/IgfsMetaUpdatePropertiesProcessor.java
@@ -27,7 +27,6 @@ import org.apache.ignite.internal.processors.igfs.IgfsEntryInfo;
import org.apache.ignite.internal.processors.igfs.IgfsUtils;
import org.apache.ignite.internal.util.GridLeanMap;
import org.apache.ignite.internal.util.typedef.internal.S;
-import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.lang.IgniteUuid;
import javax.cache.processor.EntryProcessor;
@@ -93,12 +92,12 @@ public class IgfsMetaUpdatePropertiesProcessor implements EntryProcessor<IgniteU
/** {@inheritDoc} */
@Override public void writeExternal(ObjectOutput out) throws IOException {
- U.writeStringMap(out, props);
+ IgfsUtils.writeProperties(out, props);
}
/** {@inheritDoc} */
@Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
- props = U.readStringMap(in);
+ props = IgfsUtils.readProperties(in);
}
/** {@inheritDoc} */
http://git-wip-us.apache.org/repos/asf/ignite/blob/29806af4/modules/core/src/test/java/org/apache/ignite/internal/processors/igfs/IgfsAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/igfs/IgfsAbstractSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/igfs/IgfsAbstractSelfTest.java
index ec3878c..2f6c7bf 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/igfs/IgfsAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/igfs/IgfsAbstractSelfTest.java
@@ -53,6 +53,7 @@ import org.apache.ignite.internal.util.typedef.X;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.lang.IgniteBiTuple;
import org.apache.ignite.lang.IgniteUuid;
+import org.apache.ignite.marshaller.optimized.OptimizedMarshaller;
import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
import org.apache.ignite.testframework.GridTestUtils;
@@ -232,6 +233,13 @@ public abstract class IgfsAbstractSelfTest extends IgfsCommonAbstractTest {
}
/**
+ * @return Use optimzied marshaller flag.
+ */
+ protected boolean useOptimizedMarshaller() {
+ return false;
+ }
+
+ /**
* Data chunk.
*
* @param len Length.
@@ -332,6 +340,9 @@ public abstract class IgfsAbstractSelfTest extends IgfsCommonAbstractTest {
IgniteConfiguration cfg = new IgniteConfiguration();
+ if (useOptimizedMarshaller())
+ cfg.setMarshaller(new OptimizedMarshaller());
+
cfg.setGridName(gridName);
TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
http://git-wip-us.apache.org/repos/asf/ignite/blob/29806af4/modules/core/src/test/java/org/apache/ignite/internal/processors/igfs/IgfsPrimaryOptimziedMarshallerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/igfs/IgfsPrimaryOptimziedMarshallerSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/igfs/IgfsPrimaryOptimziedMarshallerSelfTest.java
new file mode 100644
index 0000000..e4ad1f4
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/igfs/IgfsPrimaryOptimziedMarshallerSelfTest.java
@@ -0,0 +1,28 @@
+/*
+ * 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.igfs;
+
+/**
+ * Tests for PRIMARY mode with optimized marshaller.
+ */
+public class IgfsPrimaryOptimziedMarshallerSelfTest extends IgfsPrimarySelfTest {
+ /** {@inheritDoc} */
+ @Override protected boolean useOptimizedMarshaller() {
+ return true;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/29806af4/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteIgfsTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteIgfsTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteIgfsTestSuite.java
index 038cb54..aff3ad7 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteIgfsTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteIgfsTestSuite.java
@@ -40,6 +40,7 @@ import org.apache.ignite.internal.processors.igfs.IgfsModesSelfTest;
import org.apache.ignite.internal.processors.igfs.IgfsOneClientNodeTest;
import org.apache.ignite.internal.processors.igfs.IgfsPrimaryOffheapTieredSelfTest;
import org.apache.ignite.internal.processors.igfs.IgfsPrimaryOffheapValuesSelfTest;
+import org.apache.ignite.internal.processors.igfs.IgfsPrimaryOptimziedMarshallerSelfTest;
import org.apache.ignite.internal.processors.igfs.IgfsPrimaryRelaxedSelfTest;
import org.apache.ignite.internal.processors.igfs.IgfsPrimarySelfTest;
import org.apache.ignite.internal.processors.igfs.IgfsProcessorSelfTest;
@@ -69,6 +70,7 @@ public class IgniteIgfsTestSuite extends TestSuite {
suite.addTest(new TestSuite(IgfsPrimarySelfTest.class));
suite.addTest(new TestSuite(IgfsPrimaryRelaxedSelfTest.class));
+ suite.addTest(new TestSuite(IgfsPrimaryOptimziedMarshallerSelfTest.class));
suite.addTest(new TestSuite(IgfsPrimaryOffheapTieredSelfTest.class));
suite.addTest(new TestSuite(IgfsPrimaryOffheapValuesSelfTest.class));
suite.addTest(new TestSuite(IgfsDualSyncSelfTest.class));
[06/14] ignite git commit: Reproducer.
Posted by vo...@apache.org.
Reproducer.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/b189bb2e
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/b189bb2e
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/b189bb2e
Branch: refs/heads/ignite-gg-10994
Commit: b189bb2e15e7a54a890395b344bc7355e2f6d147
Parents: fc9730a
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Wed Mar 23 18:01:01 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Wed Mar 23 18:01:01 2016 +0300
----------------------------------------------------------------------
.../ignite/internal/processors/cache/GridCacheMapEntry.java | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/b189bb2e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
index fb6aeef..6677c6a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
@@ -2453,10 +2453,12 @@ public abstract class GridCacheMapEntry extends GridMetadataAwareAdapter impleme
recordNodeId(affNodeId, topVer);
- updateCntr0 = nextPartCounter(topVer);
+ if (hadVal) {
+ updateCntr0 = nextPartCounter(topVer);
- if (updateCntr != null)
- updateCntr0 = updateCntr;
+ if (updateCntr != null)
+ updateCntr0 = updateCntr;
+ }
drReplicate(drType, null, newVer, topVer);