From e6cdcd9cddb9af2de30df8399d84e2f226ac0e48 Mon Sep 17 00:00:00 2001 From: macrergate Date: Wed, 10 Oct 2018 15:44:31 +0300 Subject: [PATCH] IGNITE-9430 Introduce IGNITE_REBALANCE_THROTTLE_OVERRIDE system property --- .../org/apache/ignite/IgniteSystemProperties.java | 7 ++++++- .../dht/preloader/GridDhtPartitionSupplier.java | 13 ++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java b/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java index 892689c0c1a86..f490656efd0b6 100644 --- a/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java +++ b/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java @@ -31,7 +31,6 @@ import org.apache.ignite.internal.marshaller.optimized.OptimizedMarshaller; import org.apache.ignite.internal.processors.rest.GridRestCommand; import org.apache.ignite.internal.util.GridLogThrottle; -import org.apache.ignite.internal.util.worker.GridWorker; import org.apache.ignite.stream.StreamTransformer; import org.jetbrains.annotations.Nullable; @@ -998,6 +997,12 @@ public final class IgniteSystemProperties { */ public static final String IGNITE_REUSE_MEMORY_ON_DEACTIVATE = "IGNITE_REUSE_MEMORY_ON_DEACTIVATE"; + /** + * System property to override {@link CacheConfiguration#rebalanceThrottle} configuration property for all caches. + * {@code 0} by default, which means that override is disabled. + */ + public static final String IGNITE_REBALANCE_THROTTLE_OVERRIDE = "IGNITE_REBALANCE_THROTTLE_OVERRIDE"; + /** * Enforces singleton. */ diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionSupplier.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionSupplier.java index 835910e36387c..92547667ca39e 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionSupplier.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionSupplier.java @@ -27,6 +27,7 @@ import java.util.stream.Collectors; import org.apache.ignite.IgniteCheckedException; import org.apache.ignite.IgniteLogger; +import org.apache.ignite.IgniteSystemProperties; import org.apache.ignite.cluster.ClusterNode; import org.apache.ignite.configuration.CacheConfiguration; import org.apache.ignite.internal.cluster.ClusterTopologyCheckedException; @@ -45,6 +46,7 @@ import org.apache.ignite.internal.processors.cache.persistence.CacheDataRow; import org.apache.ignite.internal.util.tostring.GridToStringExclude; import org.apache.ignite.internal.util.typedef.T3; +import org.apache.ignite.internal.util.typedef.internal.LT; import org.apache.ignite.internal.util.typedef.internal.S; import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.lang.IgnitePredicate; @@ -71,6 +73,10 @@ class GridDhtPartitionSupplier { /** Supply context map. T3: nodeId, topicId, topVer. */ private final Map, SupplyContext> scMap = new HashMap<>(); + /** Override for rebalance throttle. */ + private long rebalanceThrottleOverride = + IgniteSystemProperties.getLong(IgniteSystemProperties.IGNITE_REBALANCE_THROTTLE_OVERRIDE, 0); + /** * @param grp Cache group. */ @@ -82,6 +88,9 @@ class GridDhtPartitionSupplier { log = grp.shared().logger(getClass()); top = grp.topology(); + + if (rebalanceThrottleOverride > 0) + LT.info(log, "Using rebalance throttle override: " + rebalanceThrottleOverride); } /** @@ -511,7 +520,9 @@ private boolean reply( grp.shared().io().sendOrderedMessage(demander, demandMsg.topic(), supplyMsg, grp.ioPolicy(), demandMsg.timeout()); // Throttle preloading. - if (grp.config().getRebalanceThrottle() > 0) + if (rebalanceThrottleOverride > 0) + U.sleep(rebalanceThrottleOverride); + else if (grp.config().getRebalanceThrottle() > 0) U.sleep(grp.config().getRebalanceThrottle()); return true;