ignite-3073 Possible thread starvation due to rebalancing (do not wait for marshaller cache rebalance)
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/d4afac22 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/d4afac22 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/d4afac22 Branch: refs/heads/ignite-3163 Commit: d4afac2284db4de5cc20ed654fc9199dc66bb00f Parents: 21e7f5b Author: sboikov <[email protected]> Authored: Thu May 5 08:30:05 2016 +0300 Committer: sboikov <[email protected]> Committed: Thu May 5 08:30:05 2016 +0300 ---------------------------------------------------------------------- .../ignite/internal/MarshallerContextImpl.java | 24 ++++++++------------ .../processors/cache/GridCacheProcessor.java | 11 ++------- 2 files changed, 12 insertions(+), 23 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/d4afac22/modules/core/src/main/java/org/apache/ignite/internal/MarshallerContextImpl.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/MarshallerContextImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/MarshallerContextImpl.java index 2023a58..8f566a9 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/MarshallerContextImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/MarshallerContextImpl.java @@ -79,22 +79,18 @@ public class MarshallerContextImpl extends MarshallerContextAdapter { * @throws IgniteCheckedException In case of error. */ public void onMarshallerCacheStarted(GridKernalContext ctx) throws IgniteCheckedException { - ctx.cache().marshallerCache().context().continuousQueries().executeInternalQuery( - new ContinuousQueryListener(ctx.log(MarshallerContextImpl.class), workDir), - null, - ctx.cache().marshallerCache().context().affinityNode(), - true, - false - ); - } - - /** - * @param ctx Kernal context. - * @throws IgniteCheckedException In case of error. - */ - public void onMarshallerCachePreloaded(GridKernalContext ctx) throws IgniteCheckedException { assert ctx != null; + if (!ctx.isDaemon()) { + ctx.cache().marshallerCache().context().continuousQueries().executeInternalQuery( + new ContinuousQueryListener(ctx.log(MarshallerContextImpl.class), workDir), + null, + ctx.cache().marshallerCache().context().affinityNode(), + true, + false + ); + } + log = ctx.log(MarshallerContextImpl.class); cache = ctx.cache().marshallerCache(); http://git-wip-us.apache.org/repos/asf/ignite/blob/d4afac22/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 f1b0289..2b5a718 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 @@ -785,15 +785,6 @@ public class GridCacheProcessor extends GridProcessorAdapter { cacheStartedLatch.countDown(); } - if (!ctx.config().isDaemon()) - ctx.marshallerContext().onMarshallerCacheStarted(ctx); - - marshallerCache().context().preloader().initialRebalanceFuture().listen(new CIX1<IgniteInternalFuture<?>>() { - @Override public void applyx(IgniteInternalFuture<?> f) throws IgniteCheckedException { - ctx.marshallerContext().onMarshallerCachePreloaded(ctx); - } - }); - // Must call onKernalStart on shared managers after creation of fetched caches. for (GridCacheSharedManager<?, ?> mgr : sharedCtx.managers()) mgr.onKernalStart(false); @@ -801,6 +792,8 @@ public class GridCacheProcessor extends GridProcessorAdapter { for (GridCacheAdapter<?, ?> cache : caches.values()) onKernalStart(cache); + ctx.marshallerContext().onMarshallerCacheStarted(ctx); + if (!ctx.config().isDaemon()) ctx.cacheObjects().onUtilityCacheStarted();
