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();
 

Reply via email to