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

Reply via email to