Merge remote-tracking branch 'remotes/origin/master' into ignite-5075 # Conflicts: # modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemander.java # modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java # modules/core/src/main/java/org/apache/ignite/internal/processors/query/QueryUtils.java
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/d429c3e4 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/d429c3e4 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/d429c3e4 Branch: refs/heads/ignite-5075 Commit: d429c3e4720886ef32ab5802486d441f5a42f75d Parents: a36d186 738451c Author: sboikov <[email protected]> Authored: Wed May 31 15:39:10 2017 +0300 Committer: sboikov <[email protected]> Committed: Wed May 31 15:39:10 2017 +0300 ---------------------------------------------------------------------- .../apache/ignite/IgniteSystemProperties.java | 12 +- .../ignite/cache/query/SqlFieldsQuery.java | 24 ++ .../configuration/CacheConfiguration.java | 6 + .../configuration/IgniteConfiguration.java | 28 ++ .../ignite/internal/IgniteNodeAttributes.java | 6 + .../ignite/internal/jdbc2/JdbcConnection.java | 71 +++- .../ignite/internal/jdbc2/JdbcQueryTask.java | 11 +- .../ignite/internal/jdbc2/JdbcResultSet.java | 5 +- .../ignite/internal/jdbc2/JdbcStatement.java | 12 +- .../jdbc2/JdbcStreamedPreparedStatement.java | 3 +- .../discovery/GridDiscoveryManager.java | 39 ++ .../dht/preloader/GridDhtPartitionDemander.java | 101 ++--- .../platform/cluster/PlatformClusterGroup.java | 45 +- .../utils/PlatformConfigurationUtils.java | 6 +- .../processors/query/GridQueryIndexing.java | 94 ++--- .../processors/query/GridQueryProcessor.java | 175 +++++--- .../internal/processors/query/QueryUtils.java | 3 + .../top/GridTopologyCommandHandler.java | 4 +- .../processors/security/SecurityUtils.java | 92 ++++ .../security/SecurityBasicPermissionSet.java | 41 +- .../ignite/spi/discovery/tcp/ServerImpl.java | 99 ++++- .../GridDiscoveryManagerAttributesSelfTest.java | 70 +++- .../discovery/tcp/TestReconnectProcessor.java | 47 ++- .../query/h2/DmlStatementsProcessor.java | 45 +- .../processors/query/h2/H2RowDescriptor.java | 35 +- .../internal/processors/query/h2/H2Schema.java | 65 +-- .../processors/query/h2/H2TableDescriptor.java | 25 +- .../processors/query/h2/H2TableEngine.java | 2 +- .../internal/processors/query/h2/H2Utils.java | 2 +- .../processors/query/h2/IgniteH2Indexing.java | 417 ++++++++----------- .../query/h2/opt/GridH2RowDescriptor.java | 5 - .../processors/query/h2/opt/GridH2Table.java | 25 +- .../query/IgniteSqlSchemaIndexingTest.java | 2 +- .../h2/GridIndexingSpiAbstractSelfTest.java | 122 ++---- .../Cache/MemoryMetricsTest.cs | 20 + .../PeerAssemblyLoadingAllApisTest.cs | 6 +- .../IgniteConfigurationSerializerTest.cs | 8 +- .../IgniteConfigurationTest.cs | 6 +- .../Configuration/MemoryPolicyConfiguration.cs | 45 +- .../dotnet/Apache.Ignite.Core/IIgnite.cs | 9 + .../IgniteConfigurationSection.xsd | 10 + .../Impl/Cluster/ClusterGroupImpl.cs | 12 + .../dotnet/Apache.Ignite.Core/Impl/Ignite.cs | 8 + .../dotnet/Apache.Ignite/Config/Configurator.cs | 9 +- .../frontend/webpack/webpack.common.js | 7 +- 45 files changed, 1189 insertions(+), 690 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/d429c3e4/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/d429c3e4/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/d429c3e4/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemander.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemander.java index 9882a32,cdbae1a..78da020 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemander.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemander.java @@@ -439,7 -418,9 +416,7 @@@ public class GridDhtPartitionDemander ", fromNode=" + node.id() + ", partitionsCount=" + parts.size() + ", topology=" + fut.topologyVersion() + ", updateSeq=" + fut.updateSeq + "]"); - List<Set<Integer>> sParts = new ArrayList<>(lsnrCnt); - int lsnrCnt = cctx.gridConfig().getRebalanceThreadPoolSize(); - + final List<Set<Integer>> sParts = new ArrayList<>(lsnrCnt); for (int cnt = 0; cnt < lsnrCnt; cnt++) sParts.add(new HashSet<Integer>()); @@@ -458,22 -439,46 +435,46 @@@ initD.topic(rebalanceTopics.get(cnt)); initD.updateSequence(fut.updateSeq); - initD.timeout(cctx.config().getRebalanceTimeout()); + initD.timeout(cfg.getRebalanceTimeout()); - synchronized (fut) { - if (fut.isDone()) - return;// Future can be already cancelled at this moment and all failovers happened. + final int finalCnt = cnt; - // New requests will not be covered by failovers. - cctx.kernalContext().closure().runLocalSafe(new Runnable() { - @Override public void run() { - try { ++ cctx.kernalContext().closure().runLocalSafe(new Runnable() { ++@Override public void run() { ++ try { + if (!fut.isDone()) { - cctx.io().sendOrderedMessage(node, - rebalanceTopics.get(finalCnt), initD, cctx.ioPolicy(), initD.timeout()); + ctx.io().sendOrderedMessage(node, - rebalanceTopics.get(cnt), initD, grp.ioPolicy(), initD.timeout()); - } ++ rebalanceTopics.get(finalCnt), initD, grp.ioPolicy(), initD.timeout()); + - // Cleanup required in case partitions demanded in parallel with cancellation. ++// Cleanup required in case partitions demanded in parallel with cancellation. + synchronized (fut) { + if (fut.isDone()) + fut.cleanupRemoteContexts(node.id()); + } + if (log.isDebugEnabled()) + log.debug("Requested rebalancing [from node=" + node.id() + ", listener index=" + + finalCnt + ", partitions count=" + sParts.get(finalCnt).size() + + " (" + partitionsList(sParts.get(finalCnt)) + ")]"); + } + } + catch (IgniteCheckedException e) { + ClusterTopologyCheckedException cause = e.getCause(ClusterTopologyCheckedException.class); - if (log.isDebugEnabled()) - log.debug("Requested rebalancing [from node=" + node.id() + ", listener index=" + - cnt + ", partitions count=" + sParts.get(cnt).size() + - " (" + partitionsList(sParts.get(cnt)) + ")]"); + if (cause != null) + log.warning("Failed to send initial demand request to node. " + e.getMessage()); + else + log.error("Failed to send initial demand request to node.", e); + + fut.cancel(); + } + catch (Throwable th) { + log.error("Runtime error caught during initial demand request sending.", th); + + fut.cancel(); + } + } + }, /*system pool*/true); } } } http://git-wip-us.apache.org/repos/asf/ignite/blob/d429c3e4/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java index a3633dc,fef7d4c..37cce73 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java @@@ -1533,8 -1536,7 +1536,8 @@@ public class GridQueryProcessor extend fut.onDone(e); } catch (Throwable e) { - log.error("Failed to rebuild indexes for type: " + typeName, e); + U.error(log, "Failed to rebuild indexes for type [cache=" + cacheName + - ", name=" + desc.name() + ']', e); ++ ", name=" + typeName + ']', e); fut.onDone(e); http://git-wip-us.apache.org/repos/asf/ignite/blob/d429c3e4/modules/core/src/main/java/org/apache/ignite/internal/processors/query/QueryUtils.java ----------------------------------------------------------------------
