From 53f0108f55cd151a902c6b8e01d04aaed44c8440 Mon Sep 17 00:00:00 2001 From: ibessonov Date: Mon, 15 Jul 2019 15:51:59 +0300 Subject: [PATCH 1/3] IGNITE-11966 Added explicit list of required events into "AdaptiveLoadBalancingSpi". --- .../adaptive/AdaptiveLoadBalancingSpi.java | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/adaptive/AdaptiveLoadBalancingSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/adaptive/AdaptiveLoadBalancingSpi.java index 414f0f6d36af0..1ea869485dab1 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/adaptive/AdaptiveLoadBalancingSpi.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/adaptive/AdaptiveLoadBalancingSpi.java @@ -25,6 +25,7 @@ import java.util.SortedMap; import java.util.TreeMap; import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.ReadWriteLock; @@ -43,6 +44,7 @@ import org.apache.ignite.internal.util.typedef.F; import org.apache.ignite.internal.util.typedef.internal.A; import org.apache.ignite.internal.util.typedef.internal.S; +import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.lang.IgniteBiTuple; import org.apache.ignite.lang.IgniteUuid; import org.apache.ignite.resources.LoggerResource; @@ -54,7 +56,6 @@ import org.apache.ignite.spi.IgniteSpiMultipleInstancesSupport; import org.apache.ignite.spi.loadbalancing.LoadBalancingSpi; import org.jetbrains.annotations.Nullable; -import java.util.concurrent.ConcurrentHashMap; import static org.apache.ignite.events.EventType.EVT_JOB_MAPPED; import static org.apache.ignite.events.EventType.EVT_NODE_FAILED; @@ -342,6 +343,25 @@ public AdaptiveLoadBalancingSpi setLoadProbe(AdaptiveLoadProbe probe) { /** {@inheritDoc} */ @Override protected void onContextInitialized0(IgniteSpiContext spiCtx) throws IgniteSpiException { + if (!getSpiContext().isEventRecordable( + EVT_NODE_METRICS_UPDATED, + EVT_NODE_FAILED, + EVT_NODE_JOINED, + EVT_NODE_LEFT, + EVT_TASK_FINISHED, + EVT_TASK_FAILED, + EVT_JOB_MAPPED + )) { + throw new IgniteSpiException("Required event types are disabled: " + + U.gridEventName(EVT_NODE_METRICS_UPDATED) + ", " + + U.gridEventName(EVT_NODE_FAILED) + ", " + + U.gridEventName(EVT_NODE_JOINED) + ", " + + U.gridEventName(EVT_NODE_LEFT) + ", " + + U.gridEventName(EVT_TASK_FINISHED) + ", " + + U.gridEventName(EVT_TASK_FAILED) + ", " + + U.gridEventName(EVT_JOB_MAPPED)); + } + getSpiContext().addLocalEventListener(evtLsnr = new GridLocalEventListener() { @Override public void onEvent(Event evt) { switch (evt.type()) { From 75986fe3fd3b2abdee8de0e9c08dea733394ea2d Mon Sep 17 00:00:00 2001 From: ibessonov Date: Tue, 16 Jul 2019 13:22:30 +0300 Subject: [PATCH 2/3] IGNITE-11966 More event types marked as internal. --- .../eventstorage/GridEventStorageManager.java | 14 +++++++++++- .../adaptive/AdaptiveLoadBalancingSpi.java | 22 +------------------ 2 files changed, 14 insertions(+), 22 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/eventstorage/GridEventStorageManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/eventstorage/GridEventStorageManager.java index a9baed0777a2f..0e956f147c252 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/eventstorage/GridEventStorageManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/eventstorage/GridEventStorageManager.java @@ -72,9 +72,12 @@ import static org.apache.ignite.events.EventType.EVTS_ALL; import static org.apache.ignite.events.EventType.EVTS_DISCOVERY_ALL; +import static org.apache.ignite.events.EventType.EVT_JOB_MAPPED; import static org.apache.ignite.events.EventType.EVT_NODE_FAILED; import static org.apache.ignite.events.EventType.EVT_NODE_LEFT; import static org.apache.ignite.events.EventType.EVT_NODE_METRICS_UPDATED; +import static org.apache.ignite.events.EventType.EVT_TASK_FAILED; +import static org.apache.ignite.events.EventType.EVT_TASK_FINISHED; import static org.apache.ignite.internal.GridTopic.TOPIC_EVENT; import static org.apache.ignite.internal.events.DiscoveryCustomEvent.EVT_DISCOVERY_CUSTOM_EVT; import static org.apache.ignite.internal.managers.communication.GridIoPolicy.PUBLIC_POOL; @@ -505,7 +508,16 @@ private boolean isHiddenEvent(int type) { * @return {@code true} if this is an internal event. */ private boolean isInternalEvent(int type) { - return type == EVT_DISCOVERY_CUSTOM_EVT || F.contains(EVTS_DISCOVERY_ALL, type); + switch (type) { + case EVT_DISCOVERY_CUSTOM_EVT: + case EVT_TASK_FINISHED: + case EVT_TASK_FAILED: + case EVT_JOB_MAPPED: + return true; + + default: + return F.contains(EVTS_DISCOVERY_ALL, type); + } } /** diff --git a/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/adaptive/AdaptiveLoadBalancingSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/adaptive/AdaptiveLoadBalancingSpi.java index 1ea869485dab1..414f0f6d36af0 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/adaptive/AdaptiveLoadBalancingSpi.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/loadbalancing/adaptive/AdaptiveLoadBalancingSpi.java @@ -25,7 +25,6 @@ import java.util.SortedMap; import java.util.TreeMap; import java.util.UUID; -import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.ReadWriteLock; @@ -44,7 +43,6 @@ import org.apache.ignite.internal.util.typedef.F; import org.apache.ignite.internal.util.typedef.internal.A; import org.apache.ignite.internal.util.typedef.internal.S; -import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.lang.IgniteBiTuple; import org.apache.ignite.lang.IgniteUuid; import org.apache.ignite.resources.LoggerResource; @@ -56,6 +54,7 @@ import org.apache.ignite.spi.IgniteSpiMultipleInstancesSupport; import org.apache.ignite.spi.loadbalancing.LoadBalancingSpi; import org.jetbrains.annotations.Nullable; +import java.util.concurrent.ConcurrentHashMap; import static org.apache.ignite.events.EventType.EVT_JOB_MAPPED; import static org.apache.ignite.events.EventType.EVT_NODE_FAILED; @@ -343,25 +342,6 @@ public AdaptiveLoadBalancingSpi setLoadProbe(AdaptiveLoadProbe probe) { /** {@inheritDoc} */ @Override protected void onContextInitialized0(IgniteSpiContext spiCtx) throws IgniteSpiException { - if (!getSpiContext().isEventRecordable( - EVT_NODE_METRICS_UPDATED, - EVT_NODE_FAILED, - EVT_NODE_JOINED, - EVT_NODE_LEFT, - EVT_TASK_FINISHED, - EVT_TASK_FAILED, - EVT_JOB_MAPPED - )) { - throw new IgniteSpiException("Required event types are disabled: " + - U.gridEventName(EVT_NODE_METRICS_UPDATED) + ", " + - U.gridEventName(EVT_NODE_FAILED) + ", " + - U.gridEventName(EVT_NODE_JOINED) + ", " + - U.gridEventName(EVT_NODE_LEFT) + ", " + - U.gridEventName(EVT_TASK_FINISHED) + ", " + - U.gridEventName(EVT_TASK_FAILED) + ", " + - U.gridEventName(EVT_JOB_MAPPED)); - } - getSpiContext().addLocalEventListener(evtLsnr = new GridLocalEventListener() { @Override public void onEvent(Event evt) { switch (evt.type()) { From 2f93a3b34372b3c815e1b18c66150fceadccedc0 Mon Sep 17 00:00:00 2001 From: ibessonov Date: Tue, 16 Jul 2019 17:02:15 +0300 Subject: [PATCH 3/3] IGNITE-11966 Test fixed. --- .../GridEventStorageRuntimeConfigurationSelfTest.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/core/src/test/java/org/apache/ignite/internal/GridEventStorageRuntimeConfigurationSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/GridEventStorageRuntimeConfigurationSelfTest.java index bcd85958d2603..16bd0e5c36709 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/GridEventStorageRuntimeConfigurationSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/GridEventStorageRuntimeConfigurationSelfTest.java @@ -138,7 +138,7 @@ public void testDisableWithIncludes() throws Exception { try { Ignite g = startGrid(); - g.events().enableLocal(EVT_TASK_STARTED, EVT_TASK_FINISHED, EVT_JOB_STARTED); + g.events().enableLocal(EVT_TASK_STARTED, EVT_JOB_STARTED); final AtomicInteger cnt = new AtomicInteger(); @@ -148,17 +148,17 @@ public void testDisableWithIncludes() throws Exception { return true; } - }, EVT_TASK_STARTED, EVT_TASK_FINISHED, EVT_JOB_STARTED); + }, EVT_TASK_STARTED, EVT_JOB_STARTED); g.compute().run(F.noop()); - assertEquals(3, cnt.get()); + assertEquals(2, cnt.get()); - g.events().disableLocal(EVT_TASK_STARTED, EVT_TASK_FINISHED, EVT_JOB_FAILED); + g.events().disableLocal(EVT_TASK_STARTED, EVT_JOB_FAILED); g.compute().run(F.noop()); - assertEquals(4, cnt.get()); + assertEquals(3, cnt.get()); } finally { stopAllGrids();