This is an automated email from the ASF dual-hosted git repository. jxue pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/helix.git
View the commit online: https://github.com/apache/helix/commit/634484d96f1854ef733f6615919df87c601d024c commit 634484d96f1854ef733f6615919df87c601d024c Author: Huizhi Lu <[email protected]> AuthorDate: Wed Sep 18 16:50:39 2019 -0700 Fix RoutingDataCache always requiring full refresh for current state. --- .../main/java/org/apache/helix/common/caches/BasicClusterDataCache.java | 1 + .../src/main/java/org/apache/helix/spectator/RoutingDataCache.java | 1 + 2 files changed, 2 insertions(+) diff --git a/helix-core/src/main/java/org/apache/helix/common/caches/BasicClusterDataCache.java b/helix-core/src/main/java/org/apache/helix/common/caches/BasicClusterDataCache.java index d4ffedd..5389493 100644 --- a/helix-core/src/main/java/org/apache/helix/common/caches/BasicClusterDataCache.java +++ b/helix-core/src/main/java/org/apache/helix/common/caches/BasicClusterDataCache.java @@ -114,6 +114,7 @@ public class BasicClusterDataCache implements ControlContextProvider { if (_propertyDataChangedMap.get(HelixConstants.ChangeType.LIVE_INSTANCE)) { long start = System.currentTimeMillis(); _propertyDataChangedMap.put(HelixConstants.ChangeType.LIVE_INSTANCE, Boolean.valueOf(false)); + _propertyDataChangedMap.put(HelixConstants.ChangeType.CURRENT_STATE, true); _liveInstancePropertyCache.refresh(accessor); LOG.info("Reload LiveInstances: " + _liveInstancePropertyCache.getPropertyMap().keySet() + ". Takes " + (System.currentTimeMillis() - start) + " ms"); diff --git a/helix-core/src/main/java/org/apache/helix/spectator/RoutingDataCache.java b/helix-core/src/main/java/org/apache/helix/spectator/RoutingDataCache.java index 49a4057..fad3c92 100644 --- a/helix-core/src/main/java/org/apache/helix/spectator/RoutingDataCache.java +++ b/helix-core/src/main/java/org/apache/helix/spectator/RoutingDataCache.java @@ -79,6 +79,7 @@ class RoutingDataCache extends BasicClusterDataCache { if (_sourceDataType.equals(PropertyType.CURRENTSTATES) && _propertyDataChangedMap .get(HelixConstants.ChangeType.CURRENT_STATE)) { long start = System.currentTimeMillis(); + _propertyDataChangedMap.put(HelixConstants.ChangeType.CURRENT_STATE, false); Map<String, LiveInstance> liveInstanceMap = getLiveInstances(); _currentStateCache.refresh(accessor, liveInstanceMap); LOG.info("Reload CurrentStates. Takes " + (System.currentTimeMillis() - start) + " ms");
