You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2017/07/06 08:04:16 UTC
[01/21] ignite git commit: GG-12411 Backport [GG-12339] to 8.1.2
GG-12339 Improve logging of snasphot operation
Repository: ignite
Updated Branches:
refs/heads/ignite-gg-12306-1 627f09980 -> 6dabc6a9d
GG-12411 Backport [GG-12339] to 8.1.2
GG-12339 Improve logging of snasphot operation
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/32409009
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/32409009
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/32409009
Branch: refs/heads/ignite-gg-12306-1
Commit: 3240900902fd302d1d40bf43af5b15be4a0cbef7
Parents: 5037604
Author: EdShangGG <es...@gridgain.com>
Authored: Thu Jun 29 19:13:34 2017 +0300
Committer: EdShangGG <es...@gridgain.com>
Committed: Thu Jun 29 19:13:34 2017 +0300
----------------------------------------------------------------------
.../FinishSnapshotOperationAckDiscoveryMessage.java | 9 +++++++++
.../cache/persistence/GridCacheOffheapManager.java | 4 ++++
2 files changed, 13 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/32409009/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/FinishSnapshotOperationAckDiscoveryMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/FinishSnapshotOperationAckDiscoveryMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/FinishSnapshotOperationAckDiscoveryMessage.java
index 1e5ed42..83c512a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/FinishSnapshotOperationAckDiscoveryMessage.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/FinishSnapshotOperationAckDiscoveryMessage.java
@@ -74,4 +74,13 @@ public class FinishSnapshotOperationAckDiscoveryMessage implements DiscoveryCust
public boolean success() {
return success;
}
+
+ /** {@inheritDoc} */
+ @Override public String toString() {
+ return "FinishSnapshotOperationAckDiscoveryMessage{" +
+ "id=" + id +
+ ", opId=" + opId +
+ ", success=" + success +
+ '}';
+ }
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/32409009/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java
index 4e322b9..84b1efe 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java
@@ -318,6 +318,10 @@ public class GridCacheOffheapManager extends IgniteCacheOffheapManagerImpl imple
io.setNextSnapshotTag(metaPageAddr, nextSnapshotTag + 1);
+ if (log != null && log.isDebugEnabled())
+ log.debug("Save next snapshot before checkpoint start for grId = " + grpId
+ + ", nextSnapshotTag = " + nextSnapshotTag);
+
if (PageHandler.isWalDeltaRecordNeeded(pageMem, grpId, metaPageId,
metaPage, wal, null))
wal.log(new MetaPageUpdateNextSnapshotId(grpId, metaPageId,
[17/21] ignite git commit: Code style
Posted by sb...@apache.org.
Code style
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/d82b2b81
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/d82b2b81
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/d82b2b81
Branch: refs/heads/ignite-gg-12306-1
Commit: d82b2b81a487e244584a7101c6d0e3bc0ad38151
Parents: f4ad01b
Author: Ivan Rakov <iv...@gmail.com>
Authored: Wed Jul 5 20:05:52 2017 +0300
Committer: Ivan Rakov <iv...@gmail.com>
Committed: Wed Jul 5 20:05:52 2017 +0300
----------------------------------------------------------------------
.../FinishSnapshotOperationAckDiscoveryMessage.java | 8 +++-----
.../cache/persistence/DbCheckpointListener.java | 14 +++++++++++++-
2 files changed, 16 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/d82b2b81/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/FinishSnapshotOperationAckDiscoveryMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/FinishSnapshotOperationAckDiscoveryMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/FinishSnapshotOperationAckDiscoveryMessage.java
index 83c512a..f6758e0 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/FinishSnapshotOperationAckDiscoveryMessage.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/FinishSnapshotOperationAckDiscoveryMessage.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.pagemem.snapshot;
import org.apache.ignite.internal.managers.discovery.DiscoveryCustomMessage;
+import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.lang.IgniteUuid;
import org.jetbrains.annotations.Nullable;
@@ -77,10 +78,7 @@ public class FinishSnapshotOperationAckDiscoveryMessage implements DiscoveryCust
/** {@inheritDoc} */
@Override public String toString() {
- return "FinishSnapshotOperationAckDiscoveryMessage{" +
- "id=" + id +
- ", opId=" + opId +
- ", success=" + success +
- '}';
+ return S.toString(FinishSnapshotOperationAckDiscoveryMessage.class, this,
+ "id", id, "opId", opId, "success", success);
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/d82b2b81/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/DbCheckpointListener.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/DbCheckpointListener.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/DbCheckpointListener.java
index daaccff..0b28b6a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/DbCheckpointListener.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/DbCheckpointListener.java
@@ -25,16 +25,28 @@ import org.apache.ignite.internal.util.typedef.T2;
*
*/
public interface DbCheckpointListener {
+ /**
+ * Context with information about current snapshots.
+ */
public interface Context {
+ /**
+ *
+ */
public boolean nextSnapshot();
+ /**
+ *
+ */
public Map<T2<Integer, Integer>, T2<Integer, Integer>> partitionStatMap();
+ /**
+ * @param cacheOrGrpName Cache or group name.
+ */
public boolean needToSnapshot(String cacheOrGrpName);
}
/**
* @throws IgniteCheckedException If failed.
*/
- public void onCheckpointBegin(Context context) throws IgniteCheckedException;
+ public void onCheckpointBegin(Context ctx) throws IgniteCheckedException;
}
[19/21] ignite git commit: Fixed missing SUID.
Posted by sb...@apache.org.
Fixed missing SUID.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/dd30e584
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/dd30e584
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/dd30e584
Branch: refs/heads/ignite-gg-12306-1
Commit: dd30e584afd841f0fa0923cefbe49bee2fa1ede1
Parents: 09dff9b
Author: devozerov <vo...@gridgain.com>
Authored: Wed Jul 5 22:07:04 2017 +0300
Committer: devozerov <vo...@gridgain.com>
Committed: Wed Jul 5 22:07:04 2017 +0300
----------------------------------------------------------------------
.../internal/pagemem/snapshot/SnapshotCheckParameters.java | 4 ++++
1 file changed, 4 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/dd30e584/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotCheckParameters.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotCheckParameters.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotCheckParameters.java
index e95e79d..58cb240 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotCheckParameters.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotCheckParameters.java
@@ -14,6 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package org.apache.ignite.internal.pagemem.snapshot;
import java.io.File;
@@ -25,6 +26,9 @@ import org.jetbrains.annotations.Nullable;
* Tuple for passing optional parameters of {@link SnapshotOperationType#CHECK}.
*/
public class SnapshotCheckParameters implements Serializable {
+ /** */
+ private static final long serialVersionUID = 0L;
+
/** Optional paths. */
private final Collection<File> optionalPaths;
[04/21] ignite git commit: GG-12408: Backport [GG-12385] and
reproducing tests to 8.1.2
Posted by sb...@apache.org.
GG-12408: Backport [GG-12385] and reproducing tests to 8.1.2
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/fbf95975
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/fbf95975
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/fbf95975
Branch: refs/heads/ignite-gg-12306-1
Commit: fbf9597570211209f968d802e91efd997acf49e6
Parents: f4f8562
Author: Ivan Rakov <iv...@gmail.com>
Authored: Mon Jul 3 18:01:14 2017 +0300
Committer: Ivan Rakov <iv...@gmail.com>
Committed: Mon Jul 3 18:01:14 2017 +0300
----------------------------------------------------------------------
.../processors/cache/GridCacheProcessor.java | 20 +++++++++++++++++---
.../service/GridServiceProcessor.java | 9 ++++++++-
2 files changed, 25 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/fbf95975/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
index c425bfb..cbbfca0 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
@@ -2114,9 +2114,12 @@ public class GridCacheProcessor extends GridProcessorAdapter {
) {
initCacheProxies(topVer, err);
- if (exchActions != null && exchActions.systemCachesStarting() && exchActions.newClusterState() == null)
+ if (exchActions != null && exchActions.systemCachesStarting() && exchActions.newClusterState() == null) {
ctx.dataStructures().restoreStructuresState(ctx);
+ ctx.service().updateUtilityCache();
+ }
+
if (exchActions != null && err == null) {
Collection<IgniteBiTuple<CacheGroupContext, Boolean>> stoppedGrps = null;
@@ -2601,7 +2604,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
*/
public IgniteInternalFuture<?> dynamicStartCaches(Collection<CacheConfiguration> ccfgList, boolean failIfExists,
boolean checkThreadTx) {
- return dynamicStartCaches(ccfgList, CacheType.USER, failIfExists, checkThreadTx);
+ return dynamicStartCaches(ccfgList, null, failIfExists, checkThreadTx);
}
/**
@@ -2627,11 +2630,22 @@ public class GridCacheProcessor extends GridProcessorAdapter {
try {
for (CacheConfiguration ccfg : ccfgList) {
+ CacheType ct = cacheType;
+
+ if (ct == null) {
+ if (CU.isUtilityCache(ccfg.getName()))
+ ct = CacheType.UTILITY;
+ else if (internalCaches.contains(ccfg.getName()))
+ ct = CacheType.INTERNAL;
+ else
+ ct = CacheType.USER;
+ }
+
DynamicCacheChangeRequest req = prepareCacheChangeRequest(
ccfg,
ccfg.getName(),
null,
- cacheType,
+ ct,
false,
failIfExists,
true
http://git-wip-us.apache.org/repos/asf/ignite/blob/fbf95975/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java
index 12be63b..3e77d2a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java
@@ -224,7 +224,7 @@ public class GridServiceProcessor extends GridProcessorAdapter implements Ignite
* @throws IgniteCheckedException If failed.
*/
private void onKernalStart0() throws IgniteCheckedException {
- cache = ctx.cache().utilityCache();
+ updateUtilityCache();
if (!ctx.clientNode())
ctx.event().addDiscoveryEventListener(topLsnr, EVTS);
@@ -285,6 +285,13 @@ public class GridServiceProcessor extends GridProcessorAdapter implements Ignite
log.debug("Started service processor.");
}
+ /**
+ *
+ */
+ public void updateUtilityCache() {
+ cache = ctx.cache().utilityCache();
+ }
+
/** {@inheritDoc} */
@Override public void onKernalStop(boolean cancel) {
if (ctx.isDaemon())
[20/21] ignite git commit: Merge remote-tracking branch
'remotes/community/ignite-2.1.2' into ignite-gg-12306-1
Posted by sb...@apache.org.
Merge remote-tracking branch 'remotes/community/ignite-2.1.2' into ignite-gg-12306-1
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/4bfaa013
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/4bfaa013
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/4bfaa013
Branch: refs/heads/ignite-gg-12306-1
Commit: 4bfaa0137634565bdffc52811b5404f0a233d59d
Parents: 627f099 dd30e58
Author: sboikov <sb...@gridgain.com>
Authored: Thu Jul 6 10:49:08 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Thu Jul 6 10:49:08 2017 +0300
----------------------------------------------------------------------
.../rendezvous/RendezvousAffinityFunction.java | 4 -
...ishSnapshotOperationAckDiscoveryMessage.java | 7 +
.../snapshot/SnapshotCheckParameters.java | 75 ++++++
.../pagemem/snapshot/SnapshotOperation.java | 26 ++-
.../GridCachePartitionExchangeManager.java | 11 +-
.../processors/cache/GridCacheProcessor.java | 20 +-
.../cache/GridCacheSharedContext.java | 5 +
.../dht/GridDhtPartitionTopologyImpl.java | 5 +-
.../GridDhtPartitionsExchangeFuture.java | 8 +-
.../cache/persistence/DbCheckpointListener.java | 16 +-
.../GridCacheDatabaseSharedManager.java | 4 +
.../persistence/GridCacheOffheapManager.java | 41 ++--
.../wal/AbstractWalRecordsIterator.java | 14 +-
.../persistence/wal/ByteBufferExpander.java | 47 ++++
.../cache/persistence/wal/FileInput.java | 20 +-
.../wal/FileWriteAheadLogManager.java | 2 +-
.../service/GridServiceProcessor.java | 9 +-
.../org.apache.ignite.plugin.PluginProvider | 3 +-
.../db/wal/IgniteWalRecoveryTest.java | 100 +++++---
.../IgniteStandByClusterTest.java | 164 +++++++++++++
.../DynamicIndexAbstractConcurrentSelfTest.java | 81 ++++---
.../core-test/config/cache-query-default.xml | 18 ++
.../cpp/core-test/src/compute_test.cpp | 176 ++++++++++++++
.../cpp/core/include/ignite/compute/compute.h | 35 ++-
.../include/ignite/impl/compute/compute_impl.h | 42 ++++
.../ignite/impl/compute/compute_job_holder.h | 73 ++++++
.../ignite/impl/compute/compute_job_result.h | 112 +++++++++
.../ignite/impl/compute/compute_task_holder.h | 85 +++++++
.../yardstick/IgniteBenchmarkArguments.java | 46 ++++
.../cache/IgniteStreamerBenchmark.java | 234 +++++++++++++++++++
30 files changed, 1367 insertions(+), 116 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/4bfaa013/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
----------------------------------------------------------------------
[07/21] ignite git commit: Added page type check when saving cache
metadata (backport of d38fd8d6)
Posted by sb...@apache.org.
Added page type check when saving cache metadata (backport of d38fd8d6)
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/54084f56
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/54084f56
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/54084f56
Branch: refs/heads/ignite-gg-12306-1
Commit: 54084f566dc642afac88f48a5efc3319d70e46fb
Parents: ace8029
Author: Ivan Rakov <iv...@gmail.com>
Authored: Tue Jul 4 18:01:09 2017 +0300
Committer: Ivan Rakov <iv...@gmail.com>
Committed: Tue Jul 4 18:01:09 2017 +0300
----------------------------------------------------------------------
.../cache/persistence/GridCacheOffheapManager.java | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/54084f56/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java
index ed008be..0bb2250 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java
@@ -314,9 +314,11 @@ public class GridCacheOffheapManager extends IgniteCacheOffheapManagerImpl imple
long metaPageAddr = pageMem.writeLock(grpId, metaPageId, metaPage);
try {
- long nextSnapshotTag = io.getNextSnapshotTag(metaPageAddr);
+ PageMetaIO metaIo = PageMetaIO.getPageIO(metaPageAddr);
- io.setNextSnapshotTag(metaPageAddr, nextSnapshotTag + 1);
+ long nextSnapshotTag = metaIo.getNextSnapshotTag(metaPageAddr);
+
+ metaIo.setNextSnapshotTag(metaPageAddr, nextSnapshotTag + 1);
if (log != null && log.isDebugEnabled())
log.debug("Save next snapshot before checkpoint start for grId = " + grpId
@@ -328,7 +330,7 @@ public class GridCacheOffheapManager extends IgniteCacheOffheapManagerImpl imple
nextSnapshotTag + 1));
if (state == GridDhtPartitionState.OWNING)
- addPartition(ctx.partitionStatMap(), metaPageAddr, io, grpId, PageIdAllocator.INDEX_PARTITION,
+ addPartition(ctx.partitionStatMap(), metaPageAddr, metaIo, grpId, PageIdAllocator.INDEX_PARTITION,
this.ctx.kernalContext().cache().context().pageStore().pages(grpId, PageIdAllocator.INDEX_PARTITION));
}
finally {
@@ -407,7 +409,7 @@ public class GridCacheOffheapManager extends IgniteCacheOffheapManagerImpl imple
private static void addPartition(
Map<T2<Integer, Integer>, T2<Integer, Integer>> map,
long pageAddr,
- PagePartitionMetaIO io,
+ PageMetaIO io,
int cacheId,
int partition,
int pages
[18/21] ignite git commit: Merge remote-tracking branch
'community/ignite-2.1.2-merge-ea11' into ignite-2.1.2
Posted by sb...@apache.org.
Merge remote-tracking branch 'community/ignite-2.1.2-merge-ea11' into ignite-2.1.2
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/09dff9bb
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/09dff9bb
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/09dff9bb
Branch: refs/heads/ignite-gg-12306-1
Commit: 09dff9bb15468a7481107f66ea046ffa5eb6e7df
Parents: 69357c5 d82b2b8
Author: Alexey Goncharuk <al...@gmail.com>
Authored: Wed Jul 5 20:26:50 2017 +0300
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Wed Jul 5 20:26:50 2017 +0300
----------------------------------------------------------------------
...ishSnapshotOperationAckDiscoveryMessage.java | 7 ++
.../snapshot/SnapshotCheckParameters.java | 71 ++++++++++++++++++++
.../pagemem/snapshot/SnapshotOperation.java | 26 +++++--
.../processors/cache/GridCacheProcessor.java | 20 +++++-
.../dht/GridDhtPartitionTopologyImpl.java | 5 +-
.../cache/persistence/DbCheckpointListener.java | 16 ++++-
.../GridCacheDatabaseSharedManager.java | 4 ++
.../persistence/GridCacheOffheapManager.java | 41 ++++++-----
.../service/GridServiceProcessor.java | 9 ++-
9 files changed, 170 insertions(+), 29 deletions(-)
----------------------------------------------------------------------
[03/21] ignite git commit: GG-12407: Backport [GG-12364] to 8.1.2 -
skipCrc flag added
Posted by sb...@apache.org.
GG-12407: Backport [GG-12364] to 8.1.2 - skipCrc flag added
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/f4f8562e
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/f4f8562e
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/f4f8562e
Branch: refs/heads/ignite-gg-12306-1
Commit: f4f8562e8b61e09e14aad61d0d5cf98a2c896101
Parents: 68c0281
Author: Ivan Rakov <iv...@gmail.com>
Authored: Fri Jun 30 20:47:45 2017 +0300
Committer: Ivan Rakov <iv...@gmail.com>
Committed: Fri Jun 30 20:47:45 2017 +0300
----------------------------------------------------------------------
.../snapshot/SnapshotCheckParameters.java | 71 ++++++++++++++++++++
.../pagemem/snapshot/SnapshotOperation.java | 26 +++++--
2 files changed, 93 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/f4f8562e/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotCheckParameters.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotCheckParameters.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotCheckParameters.java
new file mode 100644
index 0000000..e95e79d
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotCheckParameters.java
@@ -0,0 +1,71 @@
+/*
+* 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.pagemem.snapshot;
+
+import java.io.File;
+import java.io.Serializable;
+import java.util.Collection;
+import org.jetbrains.annotations.Nullable;
+
+/**
+ * Tuple for passing optional parameters of {@link SnapshotOperationType#CHECK}.
+ */
+public class SnapshotCheckParameters implements Serializable {
+ /** Optional paths. */
+ private final Collection<File> optionalPaths;
+
+ /** Flag for skipping CRC check. */
+ private final boolean skipCrc;
+
+ /**
+ * Factory method.
+ *
+ * @return Tuple with optional parameters or null if parameters are default.
+ *
+ * @param optionalPaths Optional paths.
+ * @param skipCrc Skip crc.
+ */
+ @Nullable public static SnapshotCheckParameters valueOf(Collection<File> optionalPaths, boolean skipCrc) {
+ if (optionalPaths == null && !skipCrc)
+ return null;
+
+ return new SnapshotCheckParameters(optionalPaths, skipCrc);
+ }
+
+ /**
+ * @param optionalPaths Optional paths.
+ * @param skipCrc Flag for skipping CRC check.
+ */
+ private SnapshotCheckParameters(Collection<File> optionalPaths, boolean skipCrc) {
+ this.optionalPaths = optionalPaths;
+ this.skipCrc = skipCrc;
+ }
+
+ /**
+ * @return Optional paths.
+ */
+ public Collection<File> optionalPaths() {
+ return optionalPaths;
+ }
+
+ /**
+ * @return Flag for skipping CRC check.
+ */
+ public boolean skipCrc() {
+ return skipCrc;
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/f4f8562e/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotOperation.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotOperation.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotOperation.java
index 2fe9f45d..863107a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotOperation.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotOperation.java
@@ -134,10 +134,18 @@ public class SnapshotOperation implements Serializable {
* @param op Op.
*/
public static Collection<File> getOptionalPathsParameter(SnapshotOperation op) {
- assert (op.type() == SnapshotOperationType.CHECK ||
- op.type() == SnapshotOperationType.RESTORE ||
- op.type() == SnapshotOperationType.RESTORE_2_PHASE)
- && (op.extraParameter() == null || op.extraParameter() instanceof Collection);
+ assert (op.type() == SnapshotOperationType.RESTORE ||
+ op.type() == SnapshotOperationType.RESTORE_2_PHASE)
+ && (op.extraParameter() == null || op.extraParameter() instanceof Collection)
+ || (op.type() == SnapshotOperationType.CHECK &&
+ (op.extraParameter() == null || op.extraParameter() instanceof SnapshotCheckParameters));
+
+ if (op.type() == SnapshotOperationType.CHECK) {
+ if (op.extraParameter() == null)
+ return null;
+ else
+ return ((SnapshotCheckParameters)op.extraParameter()).optionalPaths();
+ }
return (Collection<File>)op.extraParameter();
}
@@ -145,6 +153,16 @@ public class SnapshotOperation implements Serializable {
/**
* @param op Op.
*/
+ public static boolean getSkipCrcParameter(SnapshotOperation op) {
+ assert op.type() == SnapshotOperationType.CHECK &&
+ (op.extraParameter() == null | op.extraParameter() instanceof SnapshotCheckParameters);
+
+ return op.extraParameter() != null && ((SnapshotCheckParameters)op.extraParameter()).skipCrc();
+ }
+
+ /**
+ * @param op Op.
+ */
public static Boolean getFullSnapshotParameter(SnapshotOperation op) {
assert op.type() == SnapshotOperationType.CREATE && op.extraParameter() instanceof Boolean;
[16/21] ignite git commit: IGNITE-5604 - Expand WAL iterator buffer
if record size is greater than current buffer size - Fixes #2244.
Posted by sb...@apache.org.
IGNITE-5604 - Expand WAL iterator buffer if record size is greater than current buffer size - Fixes #2244.
Signed-off-by: Alexey Goncharuk <al...@gmail.com>
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/69357c5d
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/69357c5d
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/69357c5d
Branch: refs/heads/ignite-gg-12306-1
Commit: 69357c5d8be431aa51fc3add9e345807fe984fee
Parents: 905e34d
Author: Dmitriy Govorukhin <dm...@gmail.com>
Authored: Wed Jul 5 19:24:47 2017 +0300
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Wed Jul 5 19:24:47 2017 +0300
----------------------------------------------------------------------
.../rendezvous/RendezvousAffinityFunction.java | 4 -
.../wal/AbstractWalRecordsIterator.java | 14 ++-
.../persistence/wal/ByteBufferExpander.java | 47 +++++++++
.../cache/persistence/wal/FileInput.java | 20 +++-
.../wal/FileWriteAheadLogManager.java | 2 +-
.../db/wal/IgniteWalRecoveryTest.java | 100 ++++++++++++++-----
6 files changed, 146 insertions(+), 41 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/69357c5d/modules/core/src/main/java/org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.java b/modules/core/src/main/java/org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.java
index 1bd0587..0fb20ee 100644
--- a/modules/core/src/main/java/org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.java
+++ b/modules/core/src/main/java/org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.java
@@ -17,10 +17,6 @@
package org.apache.ignite.cache.affinity.rendezvous;
-import java.io.Externalizable;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
http://git-wip-us.apache.org/repos/asf/ignite/blob/69357c5d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/AbstractWalRecordsIterator.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/AbstractWalRecordsIterator.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/AbstractWalRecordsIterator.java
index 7dc0a28..f4bace1 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/AbstractWalRecordsIterator.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/AbstractWalRecordsIterator.java
@@ -22,7 +22,6 @@ import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
-import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.channels.FileChannel;
import org.apache.ignite.IgniteCheckedException;
@@ -41,8 +40,8 @@ import org.jetbrains.annotations.Nullable;
* Iterator over WAL segments. This abstract class provides most functionality for reading records in log.
* Subclasses are to override segment switching functionality
*/
-public abstract class AbstractWalRecordsIterator extends GridCloseableIteratorAdapter<IgniteBiTuple<WALPointer, WALRecord>>
- implements WALIterator {
+public abstract class AbstractWalRecordsIterator
+ extends GridCloseableIteratorAdapter<IgniteBiTuple<WALPointer, WALRecord>> implements WALIterator {
/** */
private static final long serialVersionUID = 0L;
@@ -73,7 +72,7 @@ public abstract class AbstractWalRecordsIterator extends GridCloseableIteratorAd
@NotNull private final RecordSerializer serializer;
/** Utility buffer for reading records */
- private final ByteBuffer buf;
+ private final ByteBufferExpander buf;
/**
* @param log Logger
@@ -85,15 +84,14 @@ public abstract class AbstractWalRecordsIterator extends GridCloseableIteratorAd
@NotNull final IgniteLogger log,
@NotNull final GridCacheSharedContext sharedCtx,
@NotNull final RecordSerializer serializer,
- final int bufSize) {
+ final int bufSize
+ ) {
this.log = log;
this.sharedCtx = sharedCtx;
this.serializer = serializer;
// Do not allocate direct buffer for iterator.
- buf = ByteBuffer.allocate(bufSize);
- buf.order(ByteOrder.nativeOrder());
-
+ buf = new ByteBufferExpander(bufSize, ByteOrder.nativeOrder());
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/69357c5d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/ByteBufferExpander.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/ByteBufferExpander.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/ByteBufferExpander.java
new file mode 100644
index 0000000..75d3a98
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/ByteBufferExpander.java
@@ -0,0 +1,47 @@
+package org.apache.ignite.internal.processors.cache.persistence.wal;
+
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+
+/**
+ * ByteBuffer wrapper for dynamically expand buffer size.
+ */
+public class ByteBufferExpander {
+ /** Byte buffer */
+ private ByteBuffer buf;
+
+ public ByteBufferExpander(int initSize, ByteOrder order) {
+ ByteBuffer buffer = ByteBuffer.allocate(initSize);
+ buffer.order(order);
+
+ this.buf = buffer;
+ }
+
+ /**
+ * Current byte buffer.
+ *
+ * @return Current byteBuffer.
+ */
+ public ByteBuffer buffer() {
+ return buf;
+ }
+
+ /**
+ * Expands current byte buffer to the requested size.
+ *
+ * @return ByteBuffer with requested size.
+ */
+ public ByteBuffer expand(int size) {
+ ByteBuffer newBuf = ByteBuffer.allocate(size);
+
+ newBuf.order(buf.order());
+
+ newBuf.put(buf);
+
+ newBuf.flip();
+
+ buf = newBuf;
+
+ return newBuf;
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/69357c5d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileInput.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileInput.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileInput.java
index e2d7cba..00c7c02 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileInput.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileInput.java
@@ -42,6 +42,9 @@ public final class FileInput implements ByteBufferBackedDataInput {
/** */
private long pos;
+ /** */
+ private ByteBufferExpander expBuf;
+
/**
* @param ch Channel to read from
* @param buf Buffer for reading blocks of data into
@@ -58,6 +61,16 @@ public final class FileInput implements ByteBufferBackedDataInput {
}
/**
+ * @param ch Channel to read from
+ * @param expBuf ByteBufferWrapper with ability expand buffer dynamically.
+ */
+ public FileInput(FileChannel ch, ByteBufferExpander expBuf) throws IOException {
+ this(ch, expBuf.buffer());
+
+ this.expBuf = expBuf;
+ }
+
+ /**
* Clear buffer.
*/
private void clearBuffer() {
@@ -96,8 +109,11 @@ public final class FileInput implements ByteBufferBackedDataInput {
if (available >= requested)
return;
- if (buf.capacity() < requested)
- throw new IOException("Requested size is greater than buffer: " + requested);
+ if (buf.capacity() < requested) {
+ buf = expBuf.expand(requested);
+
+ assert available == buf.remaining();
+ }
buf.compact();
http://git-wip-us.apache.org/repos/asf/ignite/blob/69357c5d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileWriteAheadLogManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileWriteAheadLogManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileWriteAheadLogManager.java
index 8993112..162f43d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileWriteAheadLogManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileWriteAheadLogManager.java
@@ -2327,7 +2327,7 @@ public class FileWriteAheadLogManager extends GridCacheSharedManagerAdapter impl
super(log,
cctx,
serializer,
- Math.min(16 * tlbSize, psCfg.getWalRecordIteratorBufferSize()));
+ psCfg.getWalRecordIteratorBufferSize());
this.walWorkDir = walWorkDir;
this.walArchiveDir = walArchiveDir;
this.psCfg = psCfg;
http://git-wip-us.apache.org/repos/asf/ignite/blob/69357c5d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/IgniteWalRecoveryTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/IgniteWalRecoveryTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/IgniteWalRecoveryTest.java
index 6b4907c..843fb5b 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/IgniteWalRecoveryTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/IgniteWalRecoveryTest.java
@@ -136,6 +136,8 @@ public class IgniteWalRecoveryTest extends GridCommonAbstractTest {
PersistentStoreConfiguration pCfg = new PersistentStoreConfiguration();
+ pCfg.setWalRecordIteratorBufferSize(1024 * 1024);
+
if (logOnly)
pCfg.setWalMode(WALMode.LOG_ONLY);
@@ -180,46 +182,79 @@ public class IgniteWalRecoveryTest extends GridCommonAbstractTest {
* @throws Exception if failed.
*/
public void testWalBig() throws Exception {
- try {
- IgniteEx ignite = startGrid(1);
+ IgniteEx ignite = startGrid(1);
- ignite.active(true);
+ ignite.active(true);
- IgniteCache<Object, Object> cache = ignite.cache("partitioned");
+ IgniteCache<Object, Object> cache = ignite.cache("partitioned");
- Random rnd = new Random();
+ Random rnd = new Random();
- Map<Integer, IndexedObject> map = new HashMap<>();
+ Map<Integer, IndexedObject> map = new HashMap<>();
- for (int i = 0; i < 10_000; i++) {
- if (i % 1000 == 0)
- X.println(" >> " + i);
+ for (int i = 0; i < 10_000; i++) {
+ if (i % 1000 == 0)
+ X.println(" >> " + i);
- int k = rnd.nextInt(300_000);
- IndexedObject v = new IndexedObject(rnd.nextInt(10_000));
+ int k = rnd.nextInt(300_000);
+ IndexedObject v = new IndexedObject(rnd.nextInt(10_000));
- cache.put(k, v);
- map.put(k, v);
- }
+ cache.put(k, v);
+ map.put(k, v);
+ }
- // Check.
- for (Integer k : map.keySet())
- assertEquals(map.get(k), cache.get(k));
+ // Check.
+ for (Integer k : map.keySet())
+ assertEquals(map.get(k), cache.get(k));
- stopGrid(1);
+ stopGrid(1);
- ignite = startGrid(1);
+ ignite = startGrid(1);
- ignite.active(true);
+ ignite.active(true);
- cache = ignite.cache("partitioned");
+ cache = ignite.cache("partitioned");
- // Check.
- for (Integer k : map.keySet())
- assertEquals(map.get(k), cache.get(k));
+ // Check.
+ for (Integer k : map.keySet())
+ assertEquals(map.get(k), cache.get(k));
+ }
+
+ /**
+ * @throws Exception if failed.
+ */
+ public void testWalBigObjectNodeCancel() throws Exception {
+ final int MAX_SIZE_POWER = 21;
+
+ IgniteEx ignite = startGrid(1);
+
+ ignite.active(true);
+
+ IgniteCache<Object, Object> cache = ignite.cache("partitioned");
+
+ for (int i = 0; i < MAX_SIZE_POWER; ++i) {
+ int size = 1 << i;
+
+ cache.put("key_" + i, createTestData(size));
}
- finally {
- stopAllGrids();
+
+ stopGrid(1, true);
+
+ ignite = startGrid(1);
+
+ ignite.active(true);
+
+ cache = ignite.cache("partitioned");
+
+ // Check.
+ for (int i = 0; i < MAX_SIZE_POWER; ++i) {
+ int size = 1 << i;
+
+ int[] data = createTestData(size);
+
+ int[] val = (int[])cache.get("key_" + i);
+
+ assertTrue("Invalid data. [key=key_" + i + ']', Arrays.equals(data, val));
}
}
@@ -977,6 +1012,19 @@ public class IgniteWalRecoveryTest extends GridCommonAbstractTest {
}
/**
+ * @param size Size of data.
+ * @return Test data.
+ */
+ private int[] createTestData(int size) {
+ int[] data = new int[size];
+
+ for (int d = 0; d < size; ++d)
+ data[d] = d;
+
+ return data;
+ }
+
+ /**
*
*/
private static class LoadRunnable implements IgniteRunnable {
[08/21] ignite git commit: Merge branch 'ignite-2.1' into
ignite-2.1.2-merge-ea11
Posted by sb...@apache.org.
Merge branch 'ignite-2.1' into ignite-2.1.2-merge-ea11
# Conflicts:
# modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/b223076c
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/b223076c
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/b223076c
Branch: refs/heads/ignite-gg-12306-1
Commit: b223076c4b5d09fadfd160f2d6db9210334fe90b
Parents: 54084f5 ee7566b
Author: Ivan Rakov <iv...@gmail.com>
Authored: Tue Jul 4 20:23:05 2017 +0300
Committer: Ivan Rakov <iv...@gmail.com>
Committed: Tue Jul 4 20:23:05 2017 +0300
----------------------------------------------------------------------
.../jdbc2/JdbcPreparedStatementSelfTest.java | 35 ++
.../jdbc/JdbcPreparedStatementSelfTest.java | 35 ++
.../thin/JdbcThinPreparedStatementSelfTest.java | 35 ++
.../apache/ignite/internal/IgniteKernal.java | 11 +-
.../internal/jdbc/JdbcPreparedStatement.java | 6 +-
.../jdbc/thin/JdbcThinPreparedStatement.java | 2 -
.../internal/jdbc2/JdbcPreparedStatement.java | 12 +-
.../checkpoint/GridCheckpointManager.java | 2 +-
.../managers/communication/GridIoManager.java | 10 +-
.../communication/GridMessageListener.java | 3 +-
.../deployment/GridDeploymentCommunication.java | 4 +-
.../eventstorage/GridEventStorageManager.java | 4 +-
.../affinity/GridAffinityAssignmentCache.java | 8 +-
.../cache/CacheAffinitySharedManager.java | 26 +-
.../processors/cache/ClusterCachesInfo.java | 16 +-
.../cache/DynamicCacheChangeRequest.java | 1 +
.../processors/cache/ExchangeActions.java | 109 ++++-
.../processors/cache/GridCacheAdapter.java | 4 +
.../processors/cache/GridCacheIoManager.java | 85 ++--
.../GridCachePartitionExchangeManager.java | 49 ++-
.../processors/cache/GridCacheProcessor.java | 83 ++--
.../cache/binary/BinaryMetadataTransport.java | 4 +-
.../dht/GridClientPartitionTopology.java | 5 +-
.../dht/GridDhtPartitionTopologyImpl.java | 13 +-
.../dht/preloader/GridDhtPartitionMap.java | 13 +-
.../GridDhtPartitionsExchangeFuture.java | 13 +-
.../distributed/near/GridNearCacheAdapter.java | 4 +-
.../GridCacheDatabaseSharedManager.java | 6 +-
.../persistence/IgniteCacheSnapshotManager.java | 8 +
.../persistence/tree/io/TrackingPageIO.java | 12 +-
.../wal/FileWriteAheadLogManager.java | 6 +-
.../cache/transactions/IgniteTxManager.java | 2 +-
.../processors/cluster/ClusterProcessor.java | 2 +-
.../cluster/GridClusterStateProcessor.java | 7 -
.../continuous/GridContinuousProcessor.java | 4 +-
.../datastreamer/DataStreamProcessor.java | 2 +-
.../datastreamer/DataStreamerImpl.java | 2 +-
.../GridCacheAtomicSequenceImpl.java | 52 ++-
.../processors/igfs/IgfsDataManager.java | 2 +-
.../igfs/IgfsFragmentizerManager.java | 4 +-
.../processors/job/GridJobProcessor.java | 8 +-
.../GridMarshallerMappingProcessor.java | 4 +-
.../utils/PlatformConfigurationUtils.java | 8 +-
.../processors/query/GridQueryProcessor.java | 2 +-
.../handlers/task/GridTaskCommandHandler.java | 4 +-
.../processors/task/GridTaskProcessor.java | 6 +-
.../internal/util/GridPartitionStateMap.java | 60 ++-
.../visor/cache/VisorCacheConfiguration.java | 11 +-
.../visor/node/VisorBasicConfiguration.java | 2 +-
.../node/VisorMemoryPolicyConfiguration.java | 2 +-
.../visor/node/VisorNodeDataCollectorJob.java | 32 +-
.../node/VisorNodeDataCollectorJobResult.java | 73 +++-
.../visor/node/VisorNodeDataCollectorTask.java | 14 +-
.../node/VisorNodeDataCollectorTaskResult.java | 28 +-
.../visor/node/VisorPersistenceMetrics.java | 214 +++++++++
.../visor/service/VisorServiceTask.java | 10 +-
.../jobstealing/JobStealingCollisionSpi.java | 2 +-
.../ignite/spi/discovery/tcp/ServerImpl.java | 5 +
.../messages/TcpDiscoveryAbstractMessage.java | 8 +-
...idCommunicationManagerListenersSelfTest.java | 2 +-
.../GridCommunicationSendMessageSelfTest.java | 2 +-
.../cache/GridCachePartitionedGetSelfTest.java | 2 +-
...lerCacheClientRequestsMappingOnMissTest.java | 6 +-
...naryObjectMetadataExchangeMultinodeTest.java | 6 +-
...titionedAtomicSequenceMultiThreadedTest.java | 32 ++
.../CacheLateAffinityAssignmentTest.java | 81 +++-
.../near/GridCacheNearEvictionSelfTest.java | 5 +-
.../near/GridCacheNearMetricsSelfTest.java | 29 +-
.../GridCachePartitionedNodeRestartTest.java | 5 -
...DeadlockDetectionMessageMarshallingTest.java | 2 +-
.../communication/GridIoManagerBenchmark.java | 4 +-
.../communication/GridIoManagerBenchmark0.java | 12 +-
.../communication/GridCacheMessageSelfTest.java | 2 +-
.../testframework/GridSpiTestContext.java | 5 +-
.../testsuites/IgniteUtilSelfTestSuite.java | 3 +
.../ignite/util/GridPartitionMapSelfTest.java | 162 +++++++
.../hadoop/shuffle/HadoopShuffle.java | 2 +-
.../query/h2/opt/GridH2IndexBase.java | 2 +-
.../query/h2/twostep/GridMapQueryExecutor.java | 2 +-
.../h2/twostep/GridReduceQueryExecutor.java | 2 +-
.../Cache/CacheConfigurationTest.cs | 21 +
.../Cache/Configuration/CacheConfiguration.cs | 75 +++-
.../Apache.Ignite.Core/IgniteConfiguration.cs | 7 +-
.../Apache.Ignite.Core/Impl/IgniteUtils.cs | 12 +-
modules/web-console/frontend/.eslintrc | 2 +-
modules/web-console/frontend/app/app.js | 4 +
.../app/components/bs-select-menu/style.scss | 1 +
.../grid-column-selector/component.js | 29 ++
.../grid-column-selector/controller.js | 111 +++++
.../grid-column-selector/controller.spec.js | 435 +++++++++++++++++++
.../components/grid-column-selector/index.js | 24 +
.../components/grid-column-selector/style.scss | 24 +
.../grid-column-selector/template.pug | 28 ++
.../list-of-registered-users.categories.js | 22 +-
.../list-of-registered-users.column-defs.js | 4 +-
.../list-of-registered-users.controller.js | 46 --
.../list-of-registered-users.scss | 3 +
.../list-of-registered-users.tpl.pug | 26 +-
.../components/pcbProtectFromBsSelectRender.js | 32 --
.../components/page-configure-basic/index.js | 2 -
.../page-configure-basic/template.pug | 4 +-
.../protect-from-bs-select-render/directive.js | 32 ++
.../protect-from-bs-select-render/index.js | 24 +
.../frontend/app/filters/duration.filter.js | 2 +-
.../helpers/jade/form/form-field-checkbox.pug | 2 +-
.../frontend/app/helpers/jade/mixins.pug | 1 -
.../generator/ConfigurationGenerator.js | 9 +-
.../frontend/app/modules/sql/sql.controller.js | 21 +-
.../states/configuration/caches/affinity.pug | 18 +-
.../states/configuration/caches/general.pug | 50 +--
.../frontend/app/primitives/btn/index.scss | 8 +-
.../frontend/app/primitives/dropdown/index.pug | 2 +-
.../frontend/app/primitives/tooltip/index.pug | 5 +-
.../app/primitives/ui-grid-settings/index.pug | 33 --
.../frontend/public/stylesheets/style.scss | 17 +
.../web-console/frontend/views/sql/sql.tpl.pug | 6 +-
116 files changed, 2149 insertions(+), 555 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/b223076c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
index cbbfca0,0f859eb..f4524ef
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
@@@ -2114,32 -2119,24 +2119,27 @@@ public class GridCacheProcessor extend
) {
initCacheProxies(topVer, err);
- if (exchActions != null && exchActions.systemCachesStarting() && exchActions.newClusterState() == null) {
+ if (exchActions == null)
+ return;
+
- if (exchActions.systemCachesStarting() && exchActions.newClusterState() == null)
++ if (exchActions.systemCachesStarting() && exchActions.newClusterState() == null) {
ctx.dataStructures().restoreStructuresState(ctx);
+ ctx.service().updateUtilityCache();
+ }
+
- if (exchActions != null && err == null) {
- Collection<IgniteBiTuple<CacheGroupContext, Boolean>> stoppedGrps = null;
-
- boolean forceCheckpoint = false;
-
- for (ExchangeActions.ActionData action : exchActions.cacheStopRequests()) {
- GridCacheContext<?, ?> stopCtx;
- boolean destroy;
-
- if (!forceCheckpoint){
- try {
- sharedCtx.database().waitForCheckpoint("caches stop");
- }
- catch (IgniteCheckedException e) {
- U.error(log, "Failed to wait for checkpoint finish during cache stop.", e);
- }
-
- forceCheckpoint = true;
+ if (err == null) {
+ // Force checkpoint if there is any cache stop request
+ if (exchActions.cacheStopRequests().size() > 0) {
+ try {
+ sharedCtx.database().waitForCheckpoint("caches stop");
+ }
+ catch (IgniteCheckedException e) {
+ U.error(log, "Failed to wait for checkpoint finish during cache stop.", e);
}
+ }
+ for (ExchangeActions.ActionData action : exchActions.cacheStopRequests()) {
stopGateway(action.request());
sharedCtx.database().checkpointReadLock();
http://git-wip-us.apache.org/repos/asf/ignite/blob/b223076c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/b223076c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
----------------------------------------------------------------------
[05/21] ignite git commit: GG-12416: Backport [GG-12402] to 8.1.2
Posted by sb...@apache.org.
GG-12416: Backport [GG-12402] to 8.1.2
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/c475f276
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/c475f276
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/c475f276
Branch: refs/heads/ignite-gg-12306-1
Commit: c475f2765ca557191dcbff67a070d458143203b0
Parents: fbf9597
Author: Ivan Rakov <iv...@gmail.com>
Authored: Tue Jul 4 14:58:16 2017 +0300
Committer: Ivan Rakov <iv...@gmail.com>
Committed: Tue Jul 4 14:58:16 2017 +0300
----------------------------------------------------------------------
.../cache/persistence/DbCheckpointListener.java | 2 ++
.../cache/persistence/GridCacheDatabaseSharedManager.java | 4 ++++
.../cache/persistence/GridCacheOffheapManager.java | 10 +++++-----
3 files changed, 11 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/c475f276/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/DbCheckpointListener.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/DbCheckpointListener.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/DbCheckpointListener.java
index f4da637..daaccff 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/DbCheckpointListener.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/DbCheckpointListener.java
@@ -29,6 +29,8 @@ public interface DbCheckpointListener {
public boolean nextSnapshot();
public Map<T2<Integer, Integer>, T2<Integer, Integer>> partitionStatMap();
+
+ public boolean needToSnapshot(String cacheOrGrpName);
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/c475f276/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
index 990f54c..3b3932e 100755
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
@@ -2155,6 +2155,10 @@ public class GridCacheDatabaseSharedManager extends IgniteCacheDatabaseSharedMan
@Override public Map<T2<Integer, Integer>, T2<Integer, Integer>> partitionStatMap() {
return map;
}
+
+ @Override public boolean needToSnapshot(String cacheOrGrpName) {
+ return curr.snapshotOperation.cacheGroupIds().contains(CU.cacheId(cacheOrGrpName));
+ }
};
// Listeners must be invoked before we write checkpoint record to WAL.
http://git-wip-us.apache.org/repos/asf/ignite/blob/c475f276/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java
index a890fa1..ed008be 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java
@@ -47,6 +47,9 @@ import org.apache.ignite.internal.processors.cache.GridCacheContext;
import org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl;
import org.apache.ignite.internal.processors.cache.IgniteRebalanceIterator;
import org.apache.ignite.internal.processors.cache.KeyCacheObject;
+import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLocalPartition;
+import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtPartitionState;
+import org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionMap;
import org.apache.ignite.internal.processors.cache.persistence.freelist.FreeListImpl;
import org.apache.ignite.internal.processors.cache.persistence.pagemem.PageMemoryEx;
import org.apache.ignite.internal.processors.cache.persistence.tree.io.PageIO;
@@ -56,9 +59,6 @@ import org.apache.ignite.internal.processors.cache.persistence.tree.io.PageParti
import org.apache.ignite.internal.processors.cache.persistence.tree.reuse.ReuseList;
import org.apache.ignite.internal.processors.cache.persistence.tree.reuse.ReuseListImpl;
import org.apache.ignite.internal.processors.cache.persistence.tree.util.PageHandler;
-import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLocalPartition;
-import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtPartitionState;
-import org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionMap;
import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
import org.apache.ignite.internal.util.GridUnsafe;
import org.apache.ignite.internal.util.lang.GridCursor;
@@ -169,7 +169,7 @@ public class GridCacheOffheapManager extends IgniteCacheOffheapManagerImpl imple
boolean beforeDestroy) throws IgniteCheckedException {
RowStore rowStore0 = store.rowStore();
- boolean beforeSnapshot = ctx != null && ctx.nextSnapshot();
+ boolean needSnapshot = ctx != null && ctx.nextSnapshot() && ctx.needToSnapshot(grp.cacheOrGroupName());
boolean wasSaveToMeta = false;
@@ -302,7 +302,7 @@ public class GridCacheOffheapManager extends IgniteCacheOffheapManagerImpl imple
int pageCnt;
- if (beforeSnapshot) {
+ if (needSnapshot) {
pageCnt = this.ctx.pageStore().pages(grpId, store.partId());
io.setCandidatePageCount(pageAddr, pageCnt);
[06/21] ignite git commit: Fixed updateCounter when node is removed
(backport of 4fedd0fe)
Posted by sb...@apache.org.
Fixed updateCounter when node is removed (backport of 4fedd0fe)
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/ace80299
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/ace80299
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/ace80299
Branch: refs/heads/ignite-gg-12306-1
Commit: ace802990822fa9a68ddb9824a159dacedc05901
Parents: c475f27
Author: Ivan Rakov <iv...@gmail.com>
Authored: Tue Jul 4 17:45:37 2017 +0300
Committer: Ivan Rakov <iv...@gmail.com>
Committed: Tue Jul 4 17:45:37 2017 +0300
----------------------------------------------------------------------
.../cache/distributed/dht/GridDhtPartitionTopologyImpl.java | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/ace80299/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
index a6f1831..f24dd45 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
@@ -1934,12 +1934,11 @@ public class GridDhtPartitionTopologyImpl implements GridDhtPartitionTopology {
ClusterNode loc = ctx.localNode();
if (node2part != null) {
- if (loc.equals(oldest) && !node2part.nodeId().equals(loc.id())) {
- updateSeq.setIfGreater(node2part.updateSequence());
+ updateSeq.setIfGreater(node2part.updateSequence());
+ if (loc.equals(oldest) && !node2part.nodeId().equals(loc.id()))
node2part = new GridDhtPartitionFullMap(loc.id(), loc.order(), updateSeq.incrementAndGet(),
node2part, false);
- }
else
node2part = new GridDhtPartitionFullMap(node2part, node2part.updateSequence());
[12/21] ignite git commit: ignite-2.1 Do not use 'compress' flag for
GridDhtPartitionsFullMessage send in discovery message.
Posted by sb...@apache.org.
ignite-2.1 Do not use 'compress' flag for GridDhtPartitionsFullMessage send in discovery message.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/7504b38a
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/7504b38a
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/7504b38a
Branch: refs/heads/ignite-gg-12306-1
Commit: 7504b38a603e593fbb190e9e1e9da262cbb8f855
Parents: 0357c51
Author: sboikov <sb...@gridgain.com>
Authored: Wed Jul 5 17:07:54 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Wed Jul 5 17:07:54 2017 +0300
----------------------------------------------------------------------
.../processors/cache/GridCachePartitionExchangeManager.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/7504b38a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
index ac06295..b3cbd17 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
@@ -1018,7 +1018,7 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
if (locMap != null) {
addFullPartitionsMap(m,
dupData,
- true,
+ compress,
grp.groupId(),
locMap,
affCache.similarAffinityKey());
@@ -1036,7 +1036,7 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
if (map != null) {
addFullPartitionsMap(m,
dupData,
- true,
+ compress,
top.groupId(),
map,
top.similarAffinityKey());
[14/21] ignite git commit: IGNITE-5576: Added Compute::Run() for C++
Posted by sb...@apache.org.
IGNITE-5576: Added Compute::Run() for C++
(cherry picked from commit 80c95ff79f344daf1fca3f094733a24bac2a218d)
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/29d532e8
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/29d532e8
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/29d532e8
Branch: refs/heads/ignite-gg-12306-1
Commit: 29d532e8be971ccac40ece00fc84a6a6bffdad0f
Parents: ad42f62
Author: Igor Sapego <is...@gridgain.com>
Authored: Wed Jul 5 18:51:27 2017 +0300
Committer: Igor Sapego <is...@gridgain.com>
Committed: Wed Jul 5 18:51:58 2017 +0300
----------------------------------------------------------------------
.../core-test/config/cache-query-default.xml | 18 ++
.../cpp/core-test/src/compute_test.cpp | 176 +++++++++++++++++++
.../cpp/core/include/ignite/compute/compute.h | 35 +++-
.../include/ignite/impl/compute/compute_impl.h | 42 +++++
.../ignite/impl/compute/compute_job_holder.h | 73 ++++++++
.../ignite/impl/compute/compute_job_result.h | 112 ++++++++++++
.../ignite/impl/compute/compute_task_holder.h | 85 +++++++++
7 files changed, 539 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/29d532e8/modules/platforms/cpp/core-test/config/cache-query-default.xml
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core-test/config/cache-query-default.xml b/modules/platforms/cpp/core-test/config/cache-query-default.xml
index 38636e5..16f601d 100644
--- a/modules/platforms/cpp/core-test/config/cache-query-default.xml
+++ b/modules/platforms/cpp/core-test/config/cache-query-default.xml
@@ -94,6 +94,12 @@
<property name="atomicityMode" value="TRANSACTIONAL"/>
<property name="writeSynchronizationMode" value="FULL_SYNC"/>
+ <property name="affinity">
+ <bean class="org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction">
+ <property name="partitions" value="256"/>
+ </bean>
+ </property>
+
<property name="queryEntities">
<list>
<bean class="org.apache.ignite.cache.QueryEntity">
@@ -115,6 +121,12 @@
<property name="atomicityMode" value="TRANSACTIONAL"/>
<property name="writeSynchronizationMode" value="FULL_SYNC"/>
+ <property name="affinity">
+ <bean class="org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction">
+ <property name="partitions" value="256"/>
+ </bean>
+ </property>
+
<!-- Configure type metadata to enable queries. -->
<property name="queryEntities">
<list>
@@ -132,6 +144,12 @@
<property name="atomicityMode" value="TRANSACTIONAL"/>
<property name="writeSynchronizationMode" value="FULL_SYNC"/>
+ <property name="affinity">
+ <bean class="org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction">
+ <property name="partitions" value="256"/>
+ </bean>
+ </property>
+
<!-- Configure type metadata to enable queries. -->
<property name="queryEntities">
<list>
http://git-wip-us.apache.org/repos/asf/ignite/blob/29d532e8/modules/platforms/cpp/core-test/src/compute_test.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core-test/src/compute_test.cpp b/modules/platforms/cpp/core-test/src/compute_test.cpp
index d3b1183..8c57ef1 100644
--- a/modules/platforms/cpp/core-test/src/compute_test.cpp
+++ b/modules/platforms/cpp/core-test/src/compute_test.cpp
@@ -146,6 +146,49 @@ struct Func2 : ComputeFunc<std::string>
IgniteError err;
};
+struct Func3 : ComputeFunc<void>
+{
+ Func3() :
+ a(), b(), err()
+ {
+ // No-op.
+ }
+
+ Func3(int32_t a, int32_t b) :
+ a(a), b(b), err()
+ {
+ // No-op.
+ }
+
+ Func3(IgniteError err) :
+ a(), b(), err(err)
+ {
+ // No-op.
+ }
+
+ virtual void Call()
+ {
+ boost::this_thread::sleep_for(boost::chrono::milliseconds(200));
+
+ if (err.GetCode() != IgniteError::IGNITE_SUCCESS)
+ throw err;
+
+ std::stringstream tmp;
+
+ tmp << a << '.' << b;
+
+ res = tmp.str();
+ }
+
+ int32_t a;
+ int32_t b;
+ IgniteError err;
+
+ static std::string res;
+};
+
+std::string Func3::res;
+
namespace ignite
{
namespace binary
@@ -235,6 +278,49 @@ namespace ignite
dst.err = reader.ReadObject<IgniteError>("err");
}
};
+
+ template<>
+ struct BinaryType<Func3>
+ {
+ static int32_t GetTypeId()
+ {
+ return GetBinaryStringHashCode("Func3");
+ }
+
+ static void GetTypeName(std::string& dst)
+ {
+ dst = "Func3";
+ }
+
+ static int32_t GetFieldId(const char* name)
+ {
+ return GetBinaryStringHashCode(name);
+ }
+
+ static bool IsNull(const Func3& obj)
+ {
+ return false;
+ }
+
+ static void GetNull(Func3& dst)
+ {
+ dst = Func3(0, 0);
+ }
+
+ static void Write(BinaryWriter& writer, const Func3& obj)
+ {
+ writer.WriteInt32("a", obj.a);
+ writer.WriteInt32("b", obj.b);
+ writer.WriteObject<IgniteError>("err", obj.err);
+ }
+
+ static void Read(BinaryReader& reader, Func3& dst)
+ {
+ dst.a = reader.ReadInt32("a");
+ dst.b = reader.ReadInt32("b");
+ dst.err = reader.ReadObject<IgniteError>("err");
+ }
+ };
}
}
@@ -244,6 +330,7 @@ IGNITE_EXPORTED_CALL void IgniteModuleInit1(IgniteBindingContext& context)
binding.RegisterComputeFunc<Func1>();
binding.RegisterComputeFunc<Func2>();
+ binding.RegisterComputeFunc<Func3>();
}
BOOST_FIXTURE_TEST_SUITE(ComputeTestSuite, ComputeTestSuiteFixture)
@@ -334,4 +421,93 @@ BOOST_AUTO_TEST_CASE(IgniteCallTestRemoteError)
BOOST_CHECK_EXCEPTION(res.GetValue(), IgniteError, IsTestError);
}
+BOOST_AUTO_TEST_CASE(IgniteRunSyncLocal)
+{
+ Compute compute = node.GetCompute();
+
+ BOOST_CHECKPOINT("Running");
+ compute.Run(Func3(8, 5));
+
+ BOOST_CHECK_EQUAL(Func3::res, "8.5");
+}
+
+BOOST_AUTO_TEST_CASE(IgniteRunAsyncLocal)
+{
+ Compute compute = node.GetCompute();
+
+ BOOST_CHECKPOINT("Running");
+ Future<void> res = compute.RunAsync(Func3(312, 245));
+
+ BOOST_CHECK(!res.IsReady());
+
+ BOOST_CHECKPOINT("Waiting with timeout");
+ res.WaitFor(100);
+
+ BOOST_CHECK(!res.IsReady());
+
+ res.GetValue();
+
+ BOOST_CHECK_EQUAL(Func3::res, "312.245");
+}
+
+BOOST_AUTO_TEST_CASE(IgniteRunSyncLocalError)
+{
+ Compute compute = node.GetCompute();
+
+ BOOST_CHECKPOINT("Running");
+
+ BOOST_CHECK_EXCEPTION(compute.Run(Func3(MakeTestError())), IgniteError, IsTestError);
+}
+
+BOOST_AUTO_TEST_CASE(IgniteRunAsyncLocalError)
+{
+ Compute compute = node.GetCompute();
+
+ BOOST_CHECKPOINT("Running");
+ Future<void> res = compute.RunAsync(Func3(MakeTestError()));
+
+ BOOST_CHECK(!res.IsReady());
+
+ BOOST_CHECKPOINT("Waiting with timeout");
+ res.WaitFor(100);
+
+ BOOST_CHECK(!res.IsReady());
+
+ BOOST_CHECK_EXCEPTION(res.GetValue(), IgniteError, IsTestError);
+}
+
+BOOST_AUTO_TEST_CASE(IgniteRunTestRemote)
+{
+ Ignite node2 = MakeNode("ComputeNode2");
+ Compute compute = node.GetCompute();
+
+ BOOST_CHECKPOINT("Running");
+ compute.CallAsync<std::string>(Func2(8, 5));
+
+ compute.Run(Func3(42, 24));
+
+ BOOST_CHECK_EQUAL(Func3::res, "42.24");
+}
+
+BOOST_AUTO_TEST_CASE(IgniteRunTestRemoteError)
+{
+ Ignite node2 = MakeNode("ComputeNode2");
+ Compute compute = node.GetCompute();
+
+ BOOST_CHECKPOINT("Running");
+ compute.CallAsync<std::string>(Func2(8, 5));
+
+ Future<void> res = compute.RunAsync(Func3(MakeTestError()));
+
+ BOOST_CHECK(!res.IsReady());
+
+ BOOST_CHECKPOINT("Waiting with timeout");
+ res.WaitFor(100);
+
+ BOOST_CHECK(!res.IsReady());
+
+ BOOST_CHECK_EXCEPTION(res.GetValue(), IgniteError, IsTestError);
+}
+
+
BOOST_AUTO_TEST_SUITE_END()
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/29d532e8/modules/platforms/cpp/core/include/ignite/compute/compute.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/include/ignite/compute/compute.h b/modules/platforms/cpp/core/include/ignite/compute/compute.h
index b079569..75c8c85 100644
--- a/modules/platforms/cpp/core/include/ignite/compute/compute.h
+++ b/modules/platforms/cpp/core/include/ignite/compute/compute.h
@@ -94,7 +94,7 @@ namespace ignite
* @tparam R Call return type. BinaryType should be specialized for
* the type if it is not primitive. Should not be void. For
* non-returning methods see Compute::Run().
- * @tparam F Compute function type. Should implement ComputeFunc
+ * @tparam F Compute function type. Should implement ComputeFunc<R>
* class.
* @param func Compute function to call.
* @return Computation result.
@@ -113,7 +113,7 @@ namespace ignite
* @tparam R Call return type. BinaryType should be specialized for
* the type if it is not primitive. Should not be void. For
* non-returning methods see Compute::Run().
- * @tparam F Compute function type. Should implement ComputeFunc
+ * @tparam F Compute function type. Should implement ComputeFunc<R>
* class.
* @param func Compute function to call.
* @return Future that can be used to access computation result once
@@ -126,6 +126,37 @@ namespace ignite
return impl.Get()->CallAsync<R, F>(func);
}
+ /**
+ * Runs provided ComputeFunc on a node within the underlying cluster
+ * group.
+ *
+ * @tparam F Compute function type. Should implement ComputeFunc<void>
+ * class.
+ * @param action Compute function to call.
+ * @throw IgniteError in case of error.
+ */
+ template<typename F>
+ void Run(const F& action)
+ {
+ return impl.Get()->RunAsync<F>(action).GetValue();
+ }
+
+ /**
+ * Asyncronuously runs provided ComputeFunc on a node within the
+ * underlying cluster group.
+ *
+ * @tparam F Compute function type. Should implement ComputeFunc<void>
+ * class.
+ * @param action Compute function to call.
+ * @return Future that can be used to wait for action to complete.
+ * @throw IgniteError in case of error.
+ */
+ template<typename F>
+ Future<void> RunAsync(const F& action)
+ {
+ return impl.Get()->RunAsync<F>(action);
+ }
+
private:
/** Implementation. */
common::concurrent::SharedPointer<impl::compute::ComputeImpl> impl;
http://git-wip-us.apache.org/repos/asf/ignite/blob/29d532e8/modules/platforms/cpp/core/include/ignite/impl/compute/compute_impl.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/include/ignite/impl/compute/compute_impl.h b/modules/platforms/cpp/core/include/ignite/impl/compute/compute_impl.h
index 389c571..63f9a46 100644
--- a/modules/platforms/cpp/core/include/ignite/impl/compute/compute_impl.h
+++ b/modules/platforms/cpp/core/include/ignite/impl/compute/compute_impl.h
@@ -108,6 +108,48 @@ namespace ignite
return promise.GetFuture();
}
+ /**
+ * Asyncronuously runs provided ComputeFunc on a node within
+ * the underlying cluster group.
+ *
+ * @tparam F Compute action type. Should implement ComputeAction
+ * class.
+ * @param action Compute action to call.
+ * @return Future that can be used to wait for action to complete.
+ * @throw IgniteError in case of error.
+ */
+ template<typename F>
+ Future<void> RunAsync(const F& action)
+ {
+ common::concurrent::SharedPointer<interop::InteropMemory> mem = GetEnvironment().AllocateMemory();
+ interop::InteropOutputStream out(mem.Get());
+ binary::BinaryWriterImpl writer(&out, GetEnvironment().GetTypeManager());
+
+ common::concurrent::SharedPointer<ComputeJobHolder> job(new ComputeJobHolderImpl<F, void>(action));
+
+ int64_t jobHandle = GetEnvironment().GetHandleRegistry().Allocate(job);
+
+ ComputeTaskHolderImpl<F, void>* taskPtr = new ComputeTaskHolderImpl<F, void>(jobHandle);
+ common::concurrent::SharedPointer<ComputeTaskHolder> task(taskPtr);
+
+ int64_t taskHandle = GetEnvironment().GetHandleRegistry().Allocate(task);
+
+ writer.WriteInt64(taskHandle);
+ writer.WriteInt32(1);
+ writer.WriteInt64(jobHandle);
+ writer.WriteObject<F>(action);
+
+ out.Synchronize();
+
+ jobject target = InStreamOutObject(Operation::Unicast, *mem.Get());
+ std::auto_ptr<common::Cancelable> cancelable(new CancelableImpl(GetEnvironmentPointer(), target));
+
+ common::Promise<void>& promise = taskPtr->GetPromise();
+ promise.SetCancelTarget(cancelable);
+
+ return promise.GetFuture();
+ }
+
private:
IGNITE_NO_COPY_ASSIGNMENT(ComputeImpl);
};
http://git-wip-us.apache.org/repos/asf/ignite/blob/29d532e8/modules/platforms/cpp/core/include/ignite/impl/compute/compute_job_holder.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/include/ignite/impl/compute/compute_job_holder.h b/modules/platforms/cpp/core/include/ignite/impl/compute/compute_job_holder.h
index e218e36..9f35a11 100644
--- a/modules/platforms/cpp/core/include/ignite/impl/compute/compute_job_holder.h
+++ b/modules/platforms/cpp/core/include/ignite/impl/compute/compute_job_holder.h
@@ -132,6 +132,79 @@ namespace ignite
/** Job. */
JobType job;
};
+
+ /**
+ * Compute job holder. Internal class.
+ * Specialisation for void return type
+ *
+ * @tparam F Actual job type.
+ */
+ template<typename F>
+ class ComputeJobHolderImpl<F, void> : public ComputeJobHolder
+ {
+ public:
+ typedef F JobType;
+
+ /**
+ * Constructor.
+ *
+ * @param job Job.
+ */
+ ComputeJobHolderImpl(JobType job) :
+ job(job)
+ {
+ // No-op.
+ }
+
+ /**
+ * Destructor.
+ */
+ virtual ~ComputeJobHolderImpl()
+ {
+ // No-op.
+ }
+
+ const ComputeJobResult<void>& GetResult()
+ {
+ return res;
+ }
+
+ virtual void ExecuteLocal()
+ {
+ try
+ {
+ job.Call();
+ res.SetResult();
+ }
+ catch (const IgniteError& err)
+ {
+ res.SetError(err);
+ }
+ catch (const std::exception& err)
+ {
+ res.SetError(IgniteError(IgniteError::IGNITE_ERR_STD, err.what()));
+ }
+ catch (...)
+ {
+ res.SetError(IgniteError(IgniteError::IGNITE_ERR_UNKNOWN,
+ "Unknown error occurred during call."));
+ }
+ }
+
+ virtual void ExecuteRemote(binary::BinaryWriterImpl& writer)
+ {
+ ExecuteLocal();
+
+ res.Write(writer);
+ }
+
+ private:
+ /** Result. */
+ ComputeJobResult<void> res;
+
+ /** Job. */
+ JobType job;
+ };
}
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/29d532e8/modules/platforms/cpp/core/include/ignite/impl/compute/compute_job_result.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/include/ignite/impl/compute/compute_job_result.h b/modules/platforms/cpp/core/include/ignite/impl/compute/compute_job_result.h
index 5bcb762..0874522 100644
--- a/modules/platforms/cpp/core/include/ignite/impl/compute/compute_job_result.h
+++ b/modules/platforms/cpp/core/include/ignite/impl/compute/compute_job_result.h
@@ -27,6 +27,8 @@
#include <sstream>
#include <ignite/common/promise.h>
+#include <ignite/impl/binary/binary_reader_impl.h>
+#include <ignite/impl/binary/binary_writer_impl.h>
namespace ignite
{
@@ -154,6 +156,116 @@ namespace ignite
/** Erorr. */
IgniteError err;
};
+
+ /**
+ * Used to hold compute job result.
+ */
+ template<>
+ class ComputeJobResult<void>
+ {
+ public:
+ /**
+ * Default constructor.
+ */
+ ComputeJobResult() :
+ err()
+ {
+ // No-op.
+ }
+
+ /**
+ * Mark as complete.
+ */
+ void SetResult()
+ {
+ err = IgniteError();
+ }
+
+ /**
+ * Set error.
+ *
+ * @param error Error to set.
+ */
+ void SetError(const IgniteError error)
+ {
+ err = error;
+ }
+
+ /**
+ * Set promise to a state which corresponds to result.
+ *
+ * @param promise Promise, which state to set.
+ */
+ void SetPromise(common::Promise<void>& promise)
+ {
+ if (err.GetCode() != IgniteError::IGNITE_SUCCESS)
+ promise.SetError(err);
+ else
+ promise.SetValue();
+ }
+
+ /**
+ * Write using writer.
+ *
+ * @param writer Writer.
+ */
+ void Write(binary::BinaryWriterImpl& writer)
+ {
+ if (err.GetCode() != IgniteError::IGNITE_SUCCESS)
+ {
+ // Fail
+ writer.WriteBool(false);
+
+ // Native Exception
+ writer.WriteBool(true);
+
+ writer.WriteObject<IgniteError>(err);
+ }
+ else
+ {
+ // Success
+ writer.WriteBool(true);
+
+ writer.WriteNull();
+ }
+ }
+
+ /**
+ * Read using reader.
+ *
+ * @param reader Reader.
+ */
+ void Read(binary::BinaryReaderImpl& reader)
+ {
+ bool success = reader.ReadBool();
+
+ if (success)
+ err = IgniteError();
+ else
+ {
+ bool native = reader.ReadBool();
+
+ if (native)
+ err = reader.ReadObject<IgniteError>();
+ else
+ {
+ std::stringstream buf;
+
+ buf << reader.ReadObject<std::string>() << " : ";
+ buf << reader.ReadObject<std::string>() << ", ";
+ buf << reader.ReadObject<std::string>();
+
+ std::string msg = buf.str();
+
+ err = IgniteError(IgniteError::IGNITE_ERR_GENERIC, msg.c_str());
+ }
+ }
+ }
+
+ private:
+ /** Erorr. */
+ IgniteError err;
+ };
}
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/29d532e8/modules/platforms/cpp/core/include/ignite/impl/compute/compute_task_holder.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/include/ignite/impl/compute/compute_task_holder.h b/modules/platforms/cpp/core/include/ignite/impl/compute/compute_task_holder.h
index bdd7513..f627f27 100644
--- a/modules/platforms/cpp/core/include/ignite/impl/compute/compute_task_holder.h
+++ b/modules/platforms/cpp/core/include/ignite/impl/compute/compute_task_holder.h
@@ -206,6 +206,91 @@ namespace ignite
/** Task result promise. */
common::Promise<ResultType> promise;
};
+
+ /**
+ * Compute task holder type-specific implementation.
+ */
+ template<typename F>
+ class ComputeTaskHolderImpl<F, void> : public ComputeTaskHolder
+ {
+ public:
+ typedef F JobType;
+
+ /**
+ * Constructor.
+ *
+ * @param handle Job handle.
+ */
+ ComputeTaskHolderImpl(int64_t handle) :
+ ComputeTaskHolder(handle)
+ {
+ // No-op.
+ }
+
+ /**
+ * Destructor.
+ */
+ virtual ~ComputeTaskHolderImpl()
+ {
+ // No-op.
+ }
+
+ /**
+ * Process local job result.
+ *
+ * @param job Job.
+ * @return Policy.
+ */
+ virtual int32_t JobResultLocal(ComputeJobHolder& job)
+ {
+ typedef ComputeJobHolderImpl<JobType, void> ActualComputeJobHolder;
+
+ ActualComputeJobHolder& job0 = static_cast<ActualComputeJobHolder&>(job);
+
+ res = job0.GetResult();
+
+ return ComputeJobResultPolicy::WAIT;
+ }
+
+ /**
+ * Process remote job result.
+ *
+ * @param job Job.
+ * @param reader Reader for stream with result.
+ * @return Policy.
+ */
+ virtual int32_t JobResultRemote(ComputeJobHolder& job, binary::BinaryReaderImpl& reader)
+ {
+ res.Read(reader);
+
+ return ComputeJobResultPolicy::WAIT;
+ }
+
+ /**
+ * Reduce results of related jobs.
+ */
+ virtual void Reduce()
+ {
+ res.SetPromise(promise);
+ }
+
+ /**
+ * Get result promise.
+ *
+ * @return Reference to result promise.
+ */
+ common::Promise<void>& GetPromise()
+ {
+ return promise;
+ }
+
+ private:
+ /** Result. */
+ ComputeJobResult<void> res;
+
+ /** Task result promise. */
+ common::Promise<void> promise;
+ };
}
}
}
[21/21] ignite git commit: 12306
Posted by sb...@apache.org.
12306
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/6dabc6a9
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/6dabc6a9
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/6dabc6a9
Branch: refs/heads/ignite-gg-12306-1
Commit: 6dabc6a9d832b82b68a5595b9167a6a33317053c
Parents: 4bfaa01
Author: sboikov <sb...@gridgain.com>
Authored: Thu Jul 6 11:04:07 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Thu Jul 6 11:04:07 2017 +0300
----------------------------------------------------------------------
.../ignite/internal/processors/cache/GridCacheProcessor.java | 2 ++
1 file changed, 2 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/6dabc6a9/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
index 716482e..cc774c3 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
@@ -964,6 +964,8 @@ public class GridCacheProcessor extends GridProcessorAdapter {
// No new caches should be added after this point.
exch.onKernalStop(cancel);
+ onKernalStopCaches(cancel);
+
for (CacheGroupContext grp : cacheGrps.values())
grp.onKernalStop();
[09/21] ignite git commit: Merge branch 'ignite-2.1' into
ignite-2.1.2-merge-ea11
Posted by sb...@apache.org.
Merge branch 'ignite-2.1' into ignite-2.1.2-merge-ea11
# Conflicts:
# modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/f4ad01b7
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/f4ad01b7
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/f4ad01b7
Branch: refs/heads/ignite-gg-12306-1
Commit: f4ad01b7a768e0d4603d00509aabdab62525d8c8
Parents: b223076 b67b8c4
Author: Ivan Rakov <iv...@gmail.com>
Authored: Wed Jul 5 12:46:01 2017 +0300
Committer: Ivan Rakov <iv...@gmail.com>
Committed: Wed Jul 5 12:46:01 2017 +0300
----------------------------------------------------------------------
.../PersistentStoreConfiguration.java | 39 +-
.../org/apache/ignite/events/EventType.java | 12 +
.../ignite/events/WalSegmentArchivedEvent.java | 62 +
.../apache/ignite/internal/GridComponent.java | 4 +-
.../ignite/internal/GridPluginComponent.java | 2 +-
.../apache/ignite/internal/IgniteKernal.java | 33 +-
.../internal/jdbc/thin/JdbcThinConnection.java | 7 +-
.../internal/managers/GridManagerAdapter.java | 2 +-
.../internal/managers/discovery/DiscoCache.java | 17 +-
.../discovery/DiscoveryLocalJoinData.java | 104 ++
.../discovery/GridDiscoveryManager.java | 128 +-
.../pagemem/store/IgnitePageStoreManager.java | 3 +-
.../internal/pagemem/wal/record/WALRecord.java | 11 +-
.../processors/GridProcessorAdapter.java | 2 +-
.../cache/CacheAffinitySharedManager.java | 67 +-
.../processors/cache/CacheGroupContext.java | 4 +-
.../processors/cache/CacheGroupData.java | 4 +-
.../cache/ChangeGlobalStateMessage.java | 120 --
.../processors/cache/ClusterCachesInfo.java | 490 +++++--
.../internal/processors/cache/ClusterState.java | 38 -
.../cache/DynamicCacheChangeRequest.java | 52 +-
.../processors/cache/ExchangeActions.java | 37 +-
.../processors/cache/GridCacheEventManager.java | 2 -
.../cache/GridCacheEvictionManager.java | 1 -
.../processors/cache/GridCacheIoManager.java | 13 +-
.../processors/cache/GridCacheMvccManager.java | 9 +-
.../GridCachePartitionExchangeManager.java | 423 +++---
.../processors/cache/GridCacheProcessor.java | 177 ++-
.../cache/GridCacheSharedContext.java | 60 +-
.../cache/GridCacheSharedManager.java | 6 -
.../cache/GridCacheSharedManagerAdapter.java | 16 -
.../processors/cache/PendingDiscoveryEvent.java | 61 +
.../processors/cache/StateChangeRequest.java | 77 ++
.../binary/CacheObjectBinaryProcessorImpl.java | 4 +-
.../distributed/GridCacheTxRecoveryFuture.java | 1 -
.../distributed/dht/GridDhtCacheAdapter.java | 1 -
.../cache/distributed/dht/GridDhtGetFuture.java | 1 -
.../distributed/dht/GridDhtGetSingleFuture.java | 2 -
.../dht/GridDhtPartitionTopologyImpl.java | 13 +-
.../dht/GridDhtTopologyFutureAdapter.java | 2 +-
.../dht/GridPartitionedSingleGetFuture.java | 3 -
.../GridNearAtomicAbstractUpdateFuture.java | 1 -
.../dht/preloader/GridDhtForceKeysFuture.java | 1 -
.../dht/preloader/GridDhtPartitionDemander.java | 2 +
.../GridDhtPartitionsExchangeFuture.java | 228 +++-
.../preloader/GridDhtPartitionsFullMessage.java | 44 +-
.../GridDhtPartitionsSingleMessage.java | 38 +-
.../dht/preloader/GridDhtPreloader.java | 2 +-
.../distributed/near/GridNearGetFuture.java | 2 -
.../near/GridNearTxPrepareRequest.java | 1 -
.../GridCacheDatabaseSharedManager.java | 105 +-
.../persistence/GridCacheOffheapManager.java | 5 +-
.../IgniteCacheDatabaseSharedManager.java | 74 +-
.../persistence/IgniteCacheSnapshotManager.java | 12 +-
.../persistence/file/FilePageStoreManager.java | 14 +-
.../wal/AbstractWalRecordsIterator.java | 289 ++++
.../cache/persistence/wal/FileInput.java | 16 +-
.../cache/persistence/wal/FileWALPointer.java | 4 +-
.../wal/FileWriteAheadLogManager.java | 594 ++++----
.../cache/persistence/wal/RecordSerializer.java | 5 +
.../persistence/wal/SegmentArchiveResult.java | 61 +
.../persistence/wal/SegmentEofException.java | 3 +-
.../wal/reader/IgniteWalIteratorFactory.java | 102 ++
.../wal/reader/StandaloneGridKernalContext.java | 499 +++++++
...ndaloneIgniteCacheDatabaseSharedManager.java | 30 +
.../reader/StandaloneWalRecordsIterator.java | 258 ++++
.../wal/serializer/RecordV1Serializer.java | 45 +-
.../query/GridCacheDistributedQueryManager.java | 4 +-
.../store/GridCacheStoreManagerAdapter.java | 1 -
.../cache/version/GridCacheVersionManager.java | 6 -
.../cacheobject/IgniteCacheObjectProcessor.java | 5 -
.../IgniteCacheObjectProcessorImpl.java | 5 -
.../cluster/ChangeGlobalStateFinishMessage.java | 86 ++
.../cluster/ChangeGlobalStateMessage.java | 140 ++
.../processors/cluster/ClusterProcessor.java | 3 +-
.../cluster/DiscoveryDataClusterState.java | 157 +++
.../cluster/GridClusterStateProcessor.java | 1122 ++++++---------
.../cluster/IgniteChangeGlobalStateSupport.java | 3 +-
.../datastructures/DataStructuresProcessor.java | 6 +-
.../datastructures/GridCacheAtomicLongImpl.java | 2 +-
.../GridCacheAtomicReferenceImpl.java | 2 +-
.../GridCacheAtomicSequenceImpl.java | 2 +-
.../GridCacheAtomicStampedImpl.java | 2 +-
.../GridCacheCountDownLatchImpl.java | 2 +-
.../datastructures/GridCacheLockImpl.java | 4 +-
.../datastructures/GridCacheQueueAdapter.java | 1 -
.../datastructures/GridCacheSemaphoreImpl.java | 2 +-
.../datastructures/GridCacheSetImpl.java | 1 -
.../internal/processors/igfs/IgfsImpl.java | 2 -
.../internal/processors/igfs/IgfsProcessor.java | 2 +-
.../processors/query/GridQueryProcessor.java | 4 +-
.../processors/rest/GridRestProcessor.java | 2 +-
.../cluster/GridChangeStateCommandHandler.java | 2 +-
.../service/GridServiceProcessor.java | 6 +-
.../processors/task/GridTaskProcessor.java | 2 +-
.../ignite/spi/discovery/tcp/ClientImpl.java | 12 +-
.../ignite/spi/discovery/tcp/ServerImpl.java | 10 +-
.../internal/TestRecordingCommunicationSpi.java | 10 +
...GridManagerLocalMessageListenerSelfTest.java | 4 +-
...unicationBalanceMultipleConnectionsTest.java | 5 +
.../cache/GridCacheAbstractMetricsSelfTest.java | 24 -
.../cache/IgniteActiveClusterTest.java | 182 ---
.../IgniteClusterActivateDeactivateTest.java | 1284 ++++++++++++++++++
...erActivateDeactivateTestWithPersistence.java | 197 +++
.../IgniteDaemonNodeMarshallerCacheTest.java | 10 -
.../IgniteSemaphoreAbstractSelfTest.java | 17 +-
...IgnitePersistentStoreDataStructuresTest.java | 2 +
.../wal/IgniteWalHistoryReservationsTest.java | 2 +-
.../db/wal/reader/IgniteWalReaderTest.java | 385 ++++++
.../db/wal/reader/MockWalIteratorFactory.java | 114 ++
.../pagemem/NoOpPageStoreManager.java | 12 +-
.../persistence/pagemem/NoOpWALManager.java | 23 +-
.../AbstractNodeJoinTemplate.java | 149 +-
.../IgniteChangeGlobalStateAbstractTest.java | 65 +-
.../IgniteChangeGlobalStateCacheTest.java | 2 +-
...IgniteChangeGlobalStateDataStreamerTest.java | 5 +-
...gniteChangeGlobalStateDataStructureTest.java | 6 +-
.../IgniteChangeGlobalStateFailOverTest.java | 26 +-
.../IgniteChangeGlobalStateTest.java | 158 +--
.../IgniteStandByClusterTest.java | 17 +-
.../join/JoinActiveNodeToActiveCluster.java | 62 +-
...ctiveNodeToActiveClusterWithPersistence.java | 17 +
.../IgniteStandByClientReconnectTest.java | 13 +-
...eStandByClientReconnectToNewClusterTest.java | 13 +-
...cpCommunicationSpiMultithreadedSelfTest.java | 2 +-
.../testframework/junits/GridAbstractTest.java | 4 +-
.../junits/common/GridCommonAbstractTest.java | 3 +
.../ignite/testsuites/IgnitePdsTestSuite2.java | 9 +-
.../testsuites/IgniteStandByClusterSuite.java | 5 +-
.../processors/hadoop/HadoopProcessor.java | 4 +-
...ileSystemShmemExternalDualAsyncSelfTest.java | 5 +
.../cache/IgniteCacheAbstractQuerySelfTest.java | 3 +-
.../spark/JavaEmbeddedIgniteRDDSelfTest.java | 5 +
133 files changed, 6410 insertions(+), 2577 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/f4ad01b7/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
index f4524ef,624dec0..716482e
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
@@@ -2122,12 -2107,9 +2107,12 @@@ public class GridCacheProcessor extend
if (exchActions == null)
return;
- if (exchActions.systemCachesStarting() && exchActions.newClusterState() == null) {
- if (exchActions.systemCachesStarting() && exchActions.stateChangeRequest() == null)
++ if (exchActions.systemCachesStarting() && exchActions.stateChangeRequest() == null) {
ctx.dataStructures().restoreStructuresState(ctx);
+ ctx.service().updateUtilityCache();
+ }
+
if (err == null) {
// Force checkpoint if there is any cache stop request
if (exchActions.cacheStopRequests().size() > 0) {
http://git-wip-us.apache.org/repos/asf/ignite/blob/f4ad01b7/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/f4ad01b7/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/f4ad01b7/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/f4ad01b7/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java
----------------------------------------------------------------------
[11/21] ignite git commit: ignite-2.1 Do not use 'compress' flag for
GridDhtPartitionsFullMessage send in discovery message.
Posted by sb...@apache.org.
ignite-2.1 Do not use 'compress' flag for GridDhtPartitionsFullMessage send in discovery message.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/0357c51c
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/0357c51c
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/0357c51c
Branch: refs/heads/ignite-gg-12306-1
Commit: 0357c51c68540fc14de83ea36f0cfdc7ec987b80
Parents: 15da654
Author: sboikov <sb...@gridgain.com>
Authored: Wed Jul 5 16:59:23 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Wed Jul 5 16:59:23 2017 +0300
----------------------------------------------------------------------
.../processors/cache/GridCachePartitionExchangeManager.java | 7 +++++--
.../dht/preloader/GridDhtPartitionsExchangeFuture.java | 8 +++++---
2 files changed, 10 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/0357c51c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
index 22345d2..ac06295 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
@@ -955,7 +955,7 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
* @param nodes Nodes.
*/
private void sendAllPartitions(Collection<ClusterNode> nodes) {
- GridDhtPartitionsFullMessage m = createPartitionsFullMessage(null, null, null, null);
+ GridDhtPartitionsFullMessage m = createPartitionsFullMessage(true, null, null, null, null);
if (log.isDebugEnabled())
log.debug("Sending all partitions [nodeIds=" + U.nodeIds(nodes) + ", msg=" + m + ']');
@@ -978,11 +978,14 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
}
/**
+ * @param compress {@code True} if possible to compress message (properly work only if prepareMarshall/
+ * finishUnmarshall methods are called).
* @param exchId Non-null exchange ID if message is created for exchange.
* @param lastVer Last version.
* @return Message.
*/
public GridDhtPartitionsFullMessage createPartitionsFullMessage(
+ boolean compress,
@Nullable final GridDhtPartitionExchangeId exchId,
@Nullable GridCacheVersion lastVer,
@Nullable IgniteDhtPartitionHistorySuppliersMap partHistSuppliers,
@@ -995,7 +998,7 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
partsToReload
);
- m.compress(true);
+ m.compress(compress);
final Map<Object, T2<Integer, GridDhtPartitionFullMap>> dupData = new HashMap<>();
http://git-wip-us.apache.org/repos/asf/ignite/blob/0357c51c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
index cea758a..2151101 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
@@ -1259,12 +1259,14 @@ public class GridDhtPartitionsExchangeFuture extends GridDhtTopologyFutureAdapte
}
/**
+ * @param compress Message compress flag.
* @return Message.
*/
- private GridDhtPartitionsFullMessage createPartitionsMessage() {
+ private GridDhtPartitionsFullMessage createPartitionsMessage(boolean compress) {
GridCacheVersion last = lastVer.get();
GridDhtPartitionsFullMessage m = cctx.exchange().createPartitionsFullMessage(
+ compress,
exchangeId(),
last != null ? last : cctx.versions().last(),
partHistSuppliers,
@@ -1281,7 +1283,7 @@ public class GridDhtPartitionsExchangeFuture extends GridDhtTopologyFutureAdapte
* @throws IgniteCheckedException If failed.
*/
private void sendAllPartitions(Collection<ClusterNode> nodes) throws IgniteCheckedException {
- GridDhtPartitionsFullMessage m = createPartitionsMessage();
+ GridDhtPartitionsFullMessage m = createPartitionsMessage(true);
assert !nodes.contains(cctx.localNode());
@@ -1613,7 +1615,7 @@ public class GridDhtPartitionsExchangeFuture extends GridDhtTopologyFutureAdapte
Map<Integer, Map<Integer, List<UUID>>> assignmentChange = fut.get();
- GridDhtPartitionsFullMessage m = createPartitionsMessage();
+ GridDhtPartitionsFullMessage m = createPartitionsMessage(false);
CacheAffinityChangeMessage msg = new CacheAffinityChangeMessage(exchId, m, assignmentChange);
[15/21] ignite git commit: Added onActivate/onDeactivate callbacks
for plugins
Posted by sb...@apache.org.
Added onActivate/onDeactivate callbacks for plugins
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/905e34d4
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/905e34d4
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/905e34d4
Branch: refs/heads/ignite-gg-12306-1
Commit: 905e34d4eee40f9c31288eb9563812f6e9ab888d
Parents: 29d532e
Author: Dmitriy Govorukhin <dm...@gmail.com>
Authored: Wed Jul 5 19:16:01 2017 +0300
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Wed Jul 5 19:16:01 2017 +0300
----------------------------------------------------------------------
.../cache/GridCacheSharedContext.java | 5 +
.../org.apache.ignite.plugin.PluginProvider | 3 +-
.../IgniteStandByClusterTest.java | 164 +++++++++++++++++++
3 files changed, 171 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/905e34d4/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java
index 9adca8d..40b263f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java
@@ -66,6 +66,7 @@ import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.lang.IgniteFuture;
import org.apache.ignite.lang.IgniteInClosure;
import org.apache.ignite.marshaller.Marshaller;
+import org.apache.ignite.plugin.PluginProvider;
import org.jetbrains.annotations.Nullable;
import org.jsr166.ConcurrentHashMap8;
@@ -223,6 +224,10 @@ public class GridCacheSharedContext<K, V> {
stateAwareMgrs.add(dbMgr);
stateAwareMgrs.add(snpMgr);
+
+ for (PluginProvider prv : kernalCtx.plugins().allProviders())
+ if (prv instanceof IgniteChangeGlobalStateSupport)
+ stateAwareMgrs.add(((IgniteChangeGlobalStateSupport)prv));
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/905e34d4/modules/core/src/test/java/META-INF/services/org.apache.ignite.plugin.PluginProvider
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/META-INF/services/org.apache.ignite.plugin.PluginProvider b/modules/core/src/test/java/META-INF/services/org.apache.ignite.plugin.PluginProvider
index f030386..5b6ed7d 100644
--- a/modules/core/src/test/java/META-INF/services/org.apache.ignite.plugin.PluginProvider
+++ b/modules/core/src/test/java/META-INF/services/org.apache.ignite.plugin.PluginProvider
@@ -1,2 +1,3 @@
org.apache.ignite.platform.plugin.PlatformTestPluginProvider
-org.apache.ignite.spi.discovery.tcp.TestReconnectPluginProvider
\ No newline at end of file
+org.apache.ignite.spi.discovery.tcp.TestReconnectPluginProvider
+org.apache.ignite.internal.processors.cache.persistence.standbycluster.IgniteStandByClusterTest$StanByClusterTestProvider
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/905e34d4/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/standbycluster/IgniteStandByClusterTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/standbycluster/IgniteStandByClusterTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/standbycluster/IgniteStandByClusterTest.java
index 2678e51..30fff08 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/standbycluster/IgniteStandByClusterTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/standbycluster/IgniteStandByClusterTest.java
@@ -17,24 +17,39 @@
package org.apache.ignite.internal.processors.cache.persistence.standbycluster;
+import java.io.Serializable;
import java.util.Arrays;
import java.util.Collection;
import java.util.Map;
+import java.util.UUID;
+import java.util.concurrent.atomic.AtomicInteger;
+import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCache;
+import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.cluster.ClusterNode;
import org.apache.ignite.configuration.CacheConfiguration;
import org.apache.ignite.configuration.IgniteConfiguration;
import org.apache.ignite.configuration.PersistentStoreConfiguration;
+import org.apache.ignite.internal.GridKernalContext;
import org.apache.ignite.internal.IgniteEx;
import org.apache.ignite.internal.processors.cache.DynamicCacheDescriptor;
import org.apache.ignite.internal.processors.cache.GridCacheAdapter;
+import org.apache.ignite.internal.processors.cluster.IgniteChangeGlobalStateSupport;
import org.apache.ignite.internal.util.typedef.internal.CU;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.lang.IgnitePredicate;
+import org.apache.ignite.plugin.CachePluginContext;
+import org.apache.ignite.plugin.CachePluginProvider;
+import org.apache.ignite.plugin.ExtensionRegistry;
+import org.apache.ignite.plugin.IgnitePlugin;
+import org.apache.ignite.plugin.PluginContext;
+import org.apache.ignite.plugin.PluginProvider;
+import org.apache.ignite.plugin.PluginValidationException;
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.testframework.junits.common.GridCommonAbstractTest;
+import org.jetbrains.annotations.Nullable;
import org.junit.Assert;
/**
@@ -270,6 +285,58 @@ public class IgniteStandByClusterTest extends GridCommonAbstractTest {
}
/**
+ * @throws Exception if fail.
+ */
+ public void testActivateDeActivateCallbackForPluginProviders() throws Exception {
+ IgniteEx ig1 = startGrid(getConfiguration("node1"));
+ IgniteEx ig2 = startGrid(getConfiguration("node2"));
+ IgniteEx ig3 = startGrid(getConfiguration("node3"));
+
+ assertTrue(!ig1.active());
+ assertTrue(!ig2.active());
+ assertTrue(!ig3.active());
+
+ ig1.active(true);
+
+ checkPlugin(ig1,1,0);
+ checkPlugin(ig2,1,0);
+ checkPlugin(ig3,1,0);
+
+ ig2.active(false);
+
+ ig3.active(true);
+
+ checkPlugin(ig1,2,1);
+ checkPlugin(ig2,2,1);
+ checkPlugin(ig3,2,1);
+
+ ig1.active(false);
+
+ ig2.active(true);
+
+ checkPlugin(ig1,3,2);
+ checkPlugin(ig2,3,2);
+ checkPlugin(ig3,3,2);
+
+ }
+
+ /**
+ * @param ig ignite.
+ * @param act Expected activation counter.
+ * @param deAct Expected deActivation counter.
+ */
+ private void checkPlugin(Ignite ig, int act, int deAct) {
+ IgnitePlugin pl = ig.plugin(StanByClusterTestProvider.NAME);
+
+ assertNotNull(pl);
+
+ StanByClusterTestProvider plugin = (StanByClusterTestProvider)pl;
+
+ assertEquals(act, plugin.actCnt.get());
+ assertEquals(deAct, plugin.deActCnt.get());
+ }
+
+ /**
*
*/
private static class NodeFilterIgnoreByName implements IgnitePredicate<ClusterNode> {
@@ -292,6 +359,103 @@ public class IgniteStandByClusterTest extends GridCommonAbstractTest {
/**
*
*/
+ public static class StanByClusterTestProvider implements PluginProvider, IgnitePlugin, IgniteChangeGlobalStateSupport {
+ /** */
+ static final String NAME = "StanByClusterTestProvider";
+
+ /** */
+ final AtomicInteger actCnt = new AtomicInteger();
+
+ /** */
+ final AtomicInteger deActCnt = new AtomicInteger();
+
+ /** {@inheritDoc} */
+ @Override public String name() {
+ return NAME;
+ }
+
+ /** {@inheritDoc} */
+ @Override public String version() {
+ return "1.0";
+ }
+
+ /** {@inheritDoc} */
+ @Override public String copyright() {
+ return null;
+ }
+
+ /** {@inheritDoc} */
+ @Override public void initExtensions(
+ PluginContext ctx,
+ ExtensionRegistry registry
+ ) throws IgniteCheckedException {
+
+ }
+
+ /** {@inheritDoc} */
+ @Override public CachePluginProvider createCacheProvider(CachePluginContext ctx) {
+ return null;
+ }
+
+ /** {@inheritDoc} */
+ @Override public void start(PluginContext ctx) throws IgniteCheckedException {
+
+ }
+
+ /** {@inheritDoc} */
+ @Override public void stop(boolean cancel) throws IgniteCheckedException {
+
+ }
+
+ /** {@inheritDoc} */
+ @Override public void onIgniteStart() throws IgniteCheckedException {
+
+ }
+
+ /** {@inheritDoc} */
+ @Override public void onIgniteStop(boolean cancel) {
+
+ }
+
+ /** {@inheritDoc} */
+ @Nullable @Override public Serializable provideDiscoveryData(UUID nodeId) {
+ return null;
+ }
+
+ /** {@inheritDoc} */
+ @Override public void receiveDiscoveryData(UUID nodeId, Serializable data) {
+
+ }
+
+ /** {@inheritDoc} */
+ @Override public void validateNewNode(ClusterNode node) throws PluginValidationException {
+
+ }
+
+ /** {@inheritDoc} */
+ @Nullable @Override public Object createComponent(PluginContext ctx, Class cls) {
+ return null;
+ }
+
+ /** {@inheritDoc} */
+ @Override public IgnitePlugin plugin() {
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override public void onActivate(GridKernalContext kctx) throws IgniteCheckedException {
+ actCnt.incrementAndGet();
+ }
+
+ /** {@inheritDoc} */
+ @Override public void onDeActivate(GridKernalContext kctx) {
+ deActCnt.incrementAndGet();
+ }
+ }
+
+ /**
+ *
+ */
@Override protected void beforeTest() throws Exception {
super.beforeTest();
[02/21] ignite git commit: GG-12407: Backport [GG-12364] to 8.1.2
Posted by sb...@apache.org.
GG-12407: Backport [GG-12364] to 8.1.2
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/68c0281d
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/68c0281d
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/68c0281d
Branch: refs/heads/ignite-gg-12306-1
Commit: 68c0281dc0f1784f5de2c8ca68c7c2a89f93c397
Parents: 3240900
Author: Ivan Rakov <iv...@gmail.com>
Authored: Fri Jun 30 18:35:50 2017 +0300
Committer: Ivan Rakov <iv...@gmail.com>
Committed: Fri Jun 30 18:35:50 2017 +0300
----------------------------------------------------------------------
.../persistence/GridCacheOffheapManager.java | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/68c0281d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java
index 84b1efe..a890fa1 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java
@@ -186,22 +186,22 @@ public class GridCacheOffheapManager extends IgniteCacheOffheapManagerImpl imple
IgniteWriteAheadLogManager wal = this.ctx.wal();
if (size > 0 || updCntr > 0) {
- int state = -1;
+ GridDhtPartitionState state = null;
if (!grp.isLocal()) {
if (beforeDestroy)
- state = GridDhtPartitionState.EVICTED.ordinal();
+ state = GridDhtPartitionState.EVICTED;
else {
// localPartition will not acquire writeLock here because create=false.
GridDhtLocalPartition part = grp.topology().localPartition(store.partId(),
AffinityTopologyVersion.NONE, false);
if (part != null && part.state() != GridDhtPartitionState.EVICTED)
- state = part.state().ordinal();
+ state = part.state();
}
// Do not save meta for evicted partitions on next checkpoints.
- if (state == -1)
+ if (state == null)
return false;
}
@@ -229,8 +229,8 @@ public class GridCacheOffheapManager extends IgniteCacheOffheapManagerImpl imple
changed |= io.setGlobalRemoveId(pageAddr, rmvId);
changed |= io.setSize(pageAddr, size);
- if (state != -1)
- changed |= io.setPartitionState(pageAddr, (byte)state);
+ if (state != null)
+ changed |= io.setPartitionState(pageAddr, (byte)state.ordinal());
else
assert grp.isLocal() : grp.cacheOrGroupName();
@@ -327,8 +327,9 @@ public class GridCacheOffheapManager extends IgniteCacheOffheapManagerImpl imple
wal.log(new MetaPageUpdateNextSnapshotId(grpId, metaPageId,
nextSnapshotTag + 1));
- addPartition(ctx.partitionStatMap(), metaPageAddr, io, grpId, PageIdAllocator.INDEX_PARTITION,
- this.ctx.kernalContext().cache().context().pageStore().pages(grpId, PageIdAllocator.INDEX_PARTITION));
+ if (state == GridDhtPartitionState.OWNING)
+ addPartition(ctx.partitionStatMap(), metaPageAddr, io, grpId, PageIdAllocator.INDEX_PARTITION,
+ this.ctx.kernalContext().cache().context().pageStore().pages(grpId, PageIdAllocator.INDEX_PARTITION));
}
finally {
pageMem.writeUnlock(grpId, metaPageId, metaPage, null, true);
@@ -361,7 +362,7 @@ public class GridCacheOffheapManager extends IgniteCacheOffheapManagerImpl imple
rmvId,
size,
cntrsPageId,
- (byte)state,
+ (byte)state.ordinal(),
pageCnt
));
}
[13/21] ignite git commit: ignite-2.1
Posted by sb...@apache.org.
ignite-2.1
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/ad42f620
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/ad42f620
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/ad42f620
Branch: refs/heads/ignite-gg-12306-1
Commit: ad42f6205b3956dca0ee54e85ce385e6591ec7a9
Parents: 7504b38
Author: sboikov <sb...@gridgain.com>
Authored: Wed Jul 5 17:41:30 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Wed Jul 5 17:41:30 2017 +0300
----------------------------------------------------------------------
.../yardstick/IgniteBenchmarkArguments.java | 46 ++++
.../cache/IgniteStreamerBenchmark.java | 234 +++++++++++++++++++
2 files changed, 280 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/ad42f620/modules/yardstick/src/main/java/org/apache/ignite/yardstick/IgniteBenchmarkArguments.java
----------------------------------------------------------------------
diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/IgniteBenchmarkArguments.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/IgniteBenchmarkArguments.java
index d3b860c..5ec6c54 100644
--- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/IgniteBenchmarkArguments.java
+++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/IgniteBenchmarkArguments.java
@@ -18,6 +18,7 @@
package org.apache.ignite.yardstick;
import com.beust.jcommander.Parameter;
+import org.apache.ignite.IgniteDataStreamer;
import org.apache.ignite.cache.CacheWriteSynchronizationMode;
import org.apache.ignite.configuration.MemoryConfiguration;
import org.apache.ignite.configuration.PersistentStoreConfiguration;
@@ -28,6 +29,7 @@ import org.apache.ignite.transactions.TransactionIsolation;
import java.util.ArrayList;
import java.util.List;
+import org.apache.ignite.yardstick.cache.IgniteStreamerBenchmark;
import org.jetbrains.annotations.Nullable;
/**
@@ -222,6 +224,22 @@ public class IgniteBenchmarkArguments {
@Parameter(names = {"-pds", "--persistentStore"}, description = "Persistent store flag")
private boolean persistentStoreEnabled;
+ /** */
+ @Parameter(names = {"-stcp", "--streamerCachesPrefix"}, description = "Cache name prefix for streamer benchmark")
+ private String streamerCachesPrefix = "streamer";
+
+ /** */
+ @Parameter(names = {"-stci", "--streamerCachesIndex"}, description = "First cache index for streamer benchmark")
+ private int streamerCacheIndex;
+
+ /** */
+ @Parameter(names = {"-stcc", "--streamerConcCaches"}, description = "Number of concurrently loaded caches for streamer benchmark")
+ private int streamerConcurrentCaches = 1;
+
+ /** */
+ @Parameter(names = {"-stbs", "--streamerBufSize"}, description = "Data streamer buffer size")
+ private int streamerBufSize = IgniteDataStreamer.DFLT_PER_NODE_BUFFER_SIZE;
+
/**
* @return {@code True} if need set {@link PersistentStoreConfiguration}.
*/
@@ -552,6 +570,34 @@ public class IgniteBenchmarkArguments {
"-txc=" + txConcurrency + "-rd=" + restartDelay + "-rs=" + restartSleep;
}
+ /**
+ * @return Cache name prefix for caches to be used in {@link IgniteStreamerBenchmark}.
+ */
+ public String streamerCachesPrefix() {
+ return streamerCachesPrefix;
+ }
+
+ /**
+ * @return First cache index for {@link IgniteStreamerBenchmark}.
+ */
+ public int streamerCacheIndex() {
+ return streamerCacheIndex;
+ }
+
+ /**
+ * @return Number of concurrently loaded caches for {@link IgniteStreamerBenchmark}.
+ */
+ public int streamerConcurrentCaches() {
+ return streamerConcurrentCaches;
+ }
+
+ /**
+ * @return Streamer buffer size {@link IgniteStreamerBenchmark} (see {@link IgniteDataStreamer#perNodeBufferSize()}.
+ */
+ public int streamerBufferSize() {
+ return streamerBufSize;
+ }
+
/** {@inheritDoc} */
@Override public String toString() {
return GridToStringBuilder.toString(IgniteBenchmarkArguments.class, this);
http://git-wip-us.apache.org/repos/asf/ignite/blob/ad42f620/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteStreamerBenchmark.java
----------------------------------------------------------------------
diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteStreamerBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteStreamerBenchmark.java
new file mode 100644
index 0000000..9e253e1
--- /dev/null
+++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteStreamerBenchmark.java
@@ -0,0 +1,234 @@
+/*
+ * 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.yardstick.cache;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+import java.util.concurrent.atomic.AtomicBoolean;
+import org.apache.ignite.IgniteDataStreamer;
+import org.apache.ignite.yardstick.IgniteAbstractBenchmark;
+import org.apache.ignite.yardstick.cache.model.SampleValue;
+import org.yardstickframework.BenchmarkConfiguration;
+import org.yardstickframework.BenchmarkUtils;
+
+/**
+ *
+ */
+public class IgniteStreamerBenchmark extends IgniteAbstractBenchmark {
+ /** */
+ private List<String> cacheNames;
+
+ /** */
+ private ExecutorService executor;
+
+ /** */
+ private int entries;
+
+ /** {@inheritDoc} */
+ @Override public void setUp(BenchmarkConfiguration cfg) throws Exception {
+ super.setUp(cfg);
+
+ entries = args.range();
+
+ if (entries <= 0)
+ throw new IllegalArgumentException("Invalid number of entries: " + entries);
+
+ if (cfg.threads() != 1)
+ throw new IllegalArgumentException("IgniteStreamerBenchmark should be run with single thread. " +
+ "Internally it starts multiple threads.");
+
+ String cacheNamePrefix = args.streamerCachesPrefix();
+
+ if (cacheNamePrefix == null || cacheNamePrefix.isEmpty())
+ throw new IllegalArgumentException("Streamer caches prefix not set.");
+
+ List<String> caches = new ArrayList<>();
+
+ for (String cacheName : ignite().cacheNames()) {
+ if (cacheName.startsWith(cacheNamePrefix))
+ caches.add(cacheName);
+ }
+
+ if (caches.isEmpty())
+ throw new IllegalArgumentException("Failed to find for IgniteStreamerBenchmark caches " +
+ "starting with '" + cacheNamePrefix + "'");
+
+ BenchmarkUtils.println("Found " + caches.size() + " caches for IgniteStreamerBenchmark: " + caches);
+
+ if (args.streamerCacheIndex() >= caches.size()) {
+ throw new IllegalArgumentException("Invalid streamer cache index: " + args.streamerCacheIndex() +
+ ", there are only " + caches.size() + " caches.");
+ }
+
+ if (args.streamerCacheIndex() + args.streamerConcurrentCaches() > caches.size()) {
+ throw new IllegalArgumentException("There are no enough caches [cacheIndex=" + args.streamerCacheIndex() +
+ ", concurrentCaches=" + args.streamerConcurrentCaches() +
+ ", totalCaches=" + caches.size() + ']');
+ }
+
+ Collections.sort(caches);
+
+ cacheNames = new ArrayList<>(caches.subList(args.streamerCacheIndex(),
+ args.streamerCacheIndex() + args.streamerConcurrentCaches()));
+
+ executor = Executors.newFixedThreadPool(args.streamerConcurrentCaches());
+
+ BenchmarkUtils.println("IgniteStreamerBenchmark start [cacheIndex=" + args.streamerCacheIndex() +
+ ", concurrentCaches=" + args.streamerConcurrentCaches() +
+ ", entries=" + entries +
+ ", bufferSize=" + args.streamerBufferSize() +
+ ", cachesToUse=" + cacheNames + ']');
+
+ if (cfg.warmup() > 0) {
+ BenchmarkUtils.println("IgniteStreamerBenchmark start warmup [warmupTimeMillis=" + cfg.warmup() + ']');
+
+ final long warmupEnd = System.currentTimeMillis() + cfg.warmup();
+
+ final AtomicBoolean stop = new AtomicBoolean();
+
+ try {
+ List<Future<Void>> futs = new ArrayList<>();
+
+ for (final String cacheName : cacheNames) {
+ futs.add(executor.submit(new Callable<Void>() {
+ @Override public Void call() throws Exception {
+ Thread.currentThread().setName("streamer-" + cacheName);
+
+ BenchmarkUtils.println("IgniteStreamerBenchmark start warmup for cache " +
+ "[name=" + cacheName + ']');
+
+ final int KEYS = Math.min(100_000, entries);
+
+ int key = 1;
+
+ try (IgniteDataStreamer<Object, Object> streamer = ignite().dataStreamer(cacheName)) {
+ streamer.perNodeBufferSize(args.streamerBufferSize());
+
+ while (System.currentTimeMillis() < warmupEnd && !stop.get()) {
+ for (int i = 0; i < 10; i++) {
+ streamer.addData(-key++, new SampleValue(key));
+
+ if (key >= KEYS)
+ key = 1;
+ }
+
+ streamer.flush();
+ }
+ }
+
+ BenchmarkUtils.println("IgniteStreamerBenchmark finished warmup for cache " +
+ "[name=" + cacheName + ']');
+
+ return null;
+ }
+ }));
+ }
+
+ for (Future<Void> fut : futs)
+ fut.get();
+ }
+ finally {
+ stop.set(true);
+ }
+ }
+ }
+
+ /** {@inheritDoc} */
+ @Override public boolean test(Map<Object, Object> map) throws Exception {
+ BenchmarkUtils.println("IgniteStreamerBenchmark start test.");
+
+ long start = System.currentTimeMillis();
+
+ final AtomicBoolean stop = new AtomicBoolean();
+
+ try {
+ List<Future<Void>> futs = new ArrayList<>();
+
+ for (final String cacheName : cacheNames) {
+ futs.add(executor.submit(new Callable<Void>() {
+ @Override public Void call() throws Exception {
+ Thread.currentThread().setName("streamer-" + cacheName);
+
+ long start = System.currentTimeMillis();
+
+ BenchmarkUtils.println("IgniteStreamerBenchmark start load cache [name=" + cacheName + ']');
+
+ try (IgniteDataStreamer<Object, Object> streamer = ignite().dataStreamer(cacheName)) {
+ for (int i = 0; i < entries; i++) {
+ streamer.addData(i, new SampleValue(i));
+
+ if (i > 0 && i % 1000 == 0) {
+ if (stop.get())
+ break;
+
+ if (i % 100_000 == 0) {
+ BenchmarkUtils.println("IgniteStreamerBenchmark cache load progress [name=" + cacheName +
+ ", entries=" + i +
+ ", timeMillis=" + (System.currentTimeMillis() - start) + ']');
+ }
+ }
+ }
+ }
+
+ long time = System.currentTimeMillis() - start;
+
+ BenchmarkUtils.println("IgniteStreamerBenchmark finished load cache [name=" + cacheName +
+ ", entries=" + entries +
+ ", bufferSize=" + args.streamerBufferSize() +
+ ", totalTimeMillis=" + time + ']');
+
+ return null;
+ }
+ }));
+ }
+
+ for (Future<Void> fut : futs)
+ fut.get();
+ }
+ finally {
+ stop.set(true);
+ }
+
+ long time = System.currentTimeMillis() - start;
+
+ BenchmarkUtils.println("IgniteStreamerBenchmark finished [totalTimeMillis=" + time +
+ ", entries=" + entries +
+ ", bufferSize=" + args.streamerBufferSize() + ']');
+
+ for (String cacheName : cacheNames) {
+ BenchmarkUtils.println("Cache size [cacheName=" + cacheName +
+ ", size=" + ignite().cache(cacheName).size() + ']');
+ }
+
+ return false;
+ }
+
+ /** {@inheritDoc} */
+ @Override public void tearDown() throws Exception {
+ if (executor != null)
+ executor.shutdown();
+
+ super.tearDown();
+ }
+}
[10/21] ignite git commit: IGNITE-5187: Improved
DynamicIndexAbstractConcurrentSelfTest reliability. This closes #2219.
Posted by sb...@apache.org.
IGNITE-5187: Improved DynamicIndexAbstractConcurrentSelfTest reliability. This closes #2219.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/15da654a
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/15da654a
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/15da654a
Branch: refs/heads/ignite-gg-12306-1
Commit: 15da654a3e5c2bbf14947f0d3dd08270a9ba6766
Parents: 0f9a895
Author: Alexander Paschenko <al...@gmail.com>
Authored: Wed Jul 5 15:15:35 2017 +0300
Committer: devozerov <vo...@gridgain.com>
Committed: Wed Jul 5 15:15:35 2017 +0300
----------------------------------------------------------------------
.../DynamicIndexAbstractConcurrentSelfTest.java | 81 +++++++++++---------
1 file changed, 45 insertions(+), 36 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/15da654a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/index/DynamicIndexAbstractConcurrentSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/index/DynamicIndexAbstractConcurrentSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/index/DynamicIndexAbstractConcurrentSelfTest.java
index 3fb8a30..913d724 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/index/DynamicIndexAbstractConcurrentSelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/index/DynamicIndexAbstractConcurrentSelfTest.java
@@ -17,6 +17,17 @@
package org.apache.ignite.internal.processors.cache.index;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.ThreadLocalRandom;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicInteger;
+import javax.cache.Cache;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCache;
import org.apache.ignite.IgniteCheckedException;
@@ -37,21 +48,9 @@ import org.apache.ignite.internal.processors.query.QueryIndexDescriptorImpl;
import org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing;
import org.apache.ignite.internal.processors.query.schema.SchemaIndexCacheVisitor;
import org.apache.ignite.internal.processors.query.schema.SchemaOperationException;
-import org.apache.ignite.internal.util.typedef.T2;
+import org.apache.ignite.internal.util.typedef.T3;
import org.jetbrains.annotations.NotNull;
-import javax.cache.Cache;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import java.util.concurrent.Callable;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.ThreadLocalRandom;
-import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.concurrent.atomic.AtomicInteger;
-
import static org.apache.ignite.internal.IgniteClientReconnectAbstractTest.TestTcpDiscoverySpi;
/**
@@ -66,7 +65,7 @@ public abstract class DynamicIndexAbstractConcurrentSelfTest extends DynamicInde
private static final int LARGE_CACHE_SIZE = 100_000;
/** Latches to block certain index operations. */
- private static final ConcurrentHashMap<UUID, T2<CountDownLatch, AtomicBoolean>> BLOCKS = new ConcurrentHashMap<>();
+ private static final ConcurrentHashMap<UUID, T3<CountDownLatch, AtomicBoolean, CountDownLatch>> BLOCKS = new ConcurrentHashMap<>();
/** Cache mode. */
private final CacheMode cacheMode;
@@ -80,7 +79,7 @@ public abstract class DynamicIndexAbstractConcurrentSelfTest extends DynamicInde
* @param cacheMode Cache mode.
* @param atomicityMode Atomicity mode.
*/
- protected DynamicIndexAbstractConcurrentSelfTest(CacheMode cacheMode, CacheAtomicityMode atomicityMode) {
+ DynamicIndexAbstractConcurrentSelfTest(CacheMode cacheMode, CacheAtomicityMode atomicityMode) {
this.cacheMode = cacheMode;
this.atomicityMode = atomicityMode;
}
@@ -93,10 +92,11 @@ public abstract class DynamicIndexAbstractConcurrentSelfTest extends DynamicInde
}
/** {@inheritDoc} */
+ @SuppressWarnings("ConstantConditions")
@Override protected void afterTest() throws Exception {
GridQueryProcessor.idxCls = null;
- for (T2<CountDownLatch, AtomicBoolean> block : BLOCKS.values())
+ for (T3<CountDownLatch, AtomicBoolean, CountDownLatch> block : BLOCKS.values())
block.get1().countDown();
BLOCKS.clear();
@@ -146,14 +146,14 @@ public abstract class DynamicIndexAbstractConcurrentSelfTest extends DynamicInde
put(srv1, 0, KEY_AFTER);
// Test migration between normal servers.
- blockIndexing(srv1Id);
+ CountDownLatch idxLatch = blockIndexing(srv1Id);
QueryIndex idx1 = index(IDX_NAME_1, field(FIELD_NAME_1));
IgniteInternalFuture<?> idxFut1 = queryProcessor(cli).dynamicIndexCreate(CACHE_NAME, CACHE_NAME, TBL_NAME,
idx1, false);
- Thread.sleep(100);
+ idxLatch.countDown();
//srv1.close();
Ignition.stop(srv1.name(), true);
@@ -167,14 +167,14 @@ public abstract class DynamicIndexAbstractConcurrentSelfTest extends DynamicInde
assertSqlSimpleData(SQL_SIMPLE_FIELD_1, KEY_AFTER - SQL_ARG_1);
// Test migration from normal server to non-affinity server.
- blockIndexing(srv2Id);
+ idxLatch = blockIndexing(srv2Id);
QueryIndex idx2 = index(IDX_NAME_2, field(aliasUnescaped(FIELD_NAME_2)));
IgniteInternalFuture<?> idxFut2 =
queryProcessor(cli).dynamicIndexCreate(CACHE_NAME, CACHE_NAME, TBL_NAME, idx2, false);
- Thread.sleep(100);
+ idxLatch.countDown();
//srv2.close();
Ignition.stop(srv2.name(), true);
@@ -202,7 +202,7 @@ public abstract class DynamicIndexAbstractConcurrentSelfTest extends DynamicInde
createSqlCache(srv1);
- blockIndexing(srv1);
+ CountDownLatch idxLatch = blockIndexing(srv1);
QueryIndex idx1 = index(IDX_NAME_1, field(FIELD_NAME_1));
QueryIndex idx2 = index(IDX_NAME_2, field(aliasUnescaped(FIELD_NAME_2)));
@@ -229,7 +229,7 @@ public abstract class DynamicIndexAbstractConcurrentSelfTest extends DynamicInde
assertIndex(CACHE_NAME, TBL_NAME, IDX_NAME_1, field(FIELD_NAME_1));
assertIndex(CACHE_NAME, TBL_NAME, IDX_NAME_2, field(aliasUnescaped(FIELD_NAME_2)));
- Thread.sleep(100);
+ idxLatch.countDown();
put(srv1, 0, KEY_AFTER);
@@ -250,7 +250,7 @@ public abstract class DynamicIndexAbstractConcurrentSelfTest extends DynamicInde
createSqlCache(srv1);
- blockIndexing(srv1);
+ CountDownLatch idxLatch = blockIndexing(srv1);
QueryIndex idx = index(IDX_NAME_1, field(FIELD_NAME_1));
@@ -267,7 +267,7 @@ public abstract class DynamicIndexAbstractConcurrentSelfTest extends DynamicInde
idxFut.get();
- Thread.sleep(100L);
+ idxLatch.countDown();
assertIndex(CACHE_NAME, TBL_NAME, IDX_NAME_1, field(FIELD_NAME_1));
@@ -391,15 +391,16 @@ public abstract class DynamicIndexAbstractConcurrentSelfTest extends DynamicInde
put(srv1, 0, LARGE_CACHE_SIZE);
// Start index operation in blocked state.
- blockIndexing(srv1);
- blockIndexing(srv2);
+ CountDownLatch idxLatch1 = blockIndexing(srv1);
+ CountDownLatch idxLatch2 = blockIndexing(srv2);
QueryIndex idx = index(IDX_NAME_1, field(FIELD_NAME_1));
final IgniteInternalFuture<?> idxFut =
queryProcessor(srv1).dynamicIndexCreate(CACHE_NAME, CACHE_NAME, TBL_NAME, idx, false);
- Thread.sleep(100);
+ idxLatch1.countDown();
+ idxLatch2.countDown();
// Start two more nodes and unblock index operation in the middle.
Ignition.start(serverConfiguration(3));
@@ -435,19 +436,19 @@ public abstract class DynamicIndexAbstractConcurrentSelfTest extends DynamicInde
Ignite cli = Ignition.start(clientConfiguration(4));
// Start cache and populate it with data.
- IgniteCache cache = createSqlCache(cli);
+ createSqlCache(cli);
put(cli, KEY_AFTER);
// Start index operation and block it on coordinator.
- blockIndexing(srv1);
+ CountDownLatch idxLatch = blockIndexing(srv1);
QueryIndex idx = index(IDX_NAME_1, field(FIELD_NAME_1));
final IgniteInternalFuture<?> idxFut =
queryProcessor(srv1).dynamicIndexCreate(CACHE_NAME, CACHE_NAME, TBL_NAME, idx, false);
- Thread.sleep(100);
+ idxLatch.countDown();
// Destroy cache (drop table).
destroySqlCache(cli);
@@ -967,10 +968,10 @@ public abstract class DynamicIndexAbstractConcurrentSelfTest extends DynamicInde
* @param node Node.
*/
@SuppressWarnings("SuspiciousMethodCalls")
- private static void blockIndexing(Ignite node) {
+ private static CountDownLatch blockIndexing(Ignite node) {
UUID nodeId = ((IgniteEx)node).localNode().id();
- blockIndexing(nodeId);
+ return blockIndexing(nodeId);
}
/**
@@ -979,10 +980,14 @@ public abstract class DynamicIndexAbstractConcurrentSelfTest extends DynamicInde
* @param nodeId Node.
*/
@SuppressWarnings("SuspiciousMethodCalls")
- private static void blockIndexing(UUID nodeId) {
+ private static CountDownLatch blockIndexing(UUID nodeId) {
assertFalse(BLOCKS.contains(nodeId));
- BLOCKS.put(nodeId, new T2<>(new CountDownLatch(1), new AtomicBoolean()));
+ CountDownLatch idxLatch = new CountDownLatch(1);
+
+ BLOCKS.put(nodeId, new T3<>(new CountDownLatch(1), new AtomicBoolean(), idxLatch));
+
+ return idxLatch;
}
/**
@@ -1001,8 +1006,9 @@ public abstract class DynamicIndexAbstractConcurrentSelfTest extends DynamicInde
*
* @param nodeId Node ID.
*/
+ @SuppressWarnings("ConstantConditions")
private static void unblockIndexing(UUID nodeId) {
- T2<CountDownLatch, AtomicBoolean> blocker = BLOCKS.remove(nodeId);
+ T3<CountDownLatch, AtomicBoolean, CountDownLatch> blocker = BLOCKS.remove(nodeId);
assertNotNull(blocker);
@@ -1014,12 +1020,15 @@ public abstract class DynamicIndexAbstractConcurrentSelfTest extends DynamicInde
*
* @param nodeId Node ID.
*/
+ @SuppressWarnings("ConstantConditions")
private static void awaitIndexing(UUID nodeId) {
- T2<CountDownLatch, AtomicBoolean> blocker = BLOCKS.get(nodeId);
+ T3<CountDownLatch, AtomicBoolean, CountDownLatch> blocker = BLOCKS.get(nodeId);
if (blocker != null) {
assertTrue(blocker.get2().compareAndSet(false, true));
+ blocker.get3().countDown();
+
while (true) {
try {
blocker.get1().await();