You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by kh...@apache.org on 2020/09/15 19:47:35 UTC
[incubator-pinot] 03/04: Add change for Helix Configs
This is an automated email from the ASF dual-hosted git repository.
kharekartik pushed a commit to branch controller_api_patch
in repository https://gitbox.apache.org/repos/asf/incubator-pinot.git
commit e30ffb9ecb2be33ad5e1d6161deb838884b08fe1
Author: Kartik Khare <kh...@Kartiks-MacBook-Pro.local>
AuthorDate: Wed Sep 16 01:08:33 2020 +0530
Add change for Helix Configs
---
.../ClusterExternalViewChangeListener.java | 21 -----------------
.../ClusterInstanceConfigChangeListener.java | 10 +++++++-
.../ClusterLiveInstanceChangeListener.java | 27 ++++++++++++++++------
3 files changed, 29 insertions(+), 29 deletions(-)
diff --git a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/listener/ClusterExternalViewChangeListener.java b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/listener/ClusterExternalViewChangeListener.java
deleted file mode 100644
index 6400f47..0000000
--- a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/listener/ClusterExternalViewChangeListener.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.apache.pinot.controller.helix.core.listener;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.apache.helix.NotificationContext;
-import org.apache.helix.api.listeners.ExternalViewChangeListener;
-import org.apache.helix.model.ExternalView;
-
-
-public class ClusterExternalViewChangeListener implements ExternalViewChangeListener {
- private List<ExternalView> _externalViewList = new ArrayList<>();
-
- @Override
- public void onExternalViewChange(List<ExternalView> externalViewList, NotificationContext changeContext) {
- _externalViewList = externalViewList;
- }
-
- public List<ExternalView> getExternalViewList() {
- return _externalViewList;
- }
-}
diff --git a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/listener/ClusterInstanceConfigChangeListener.java b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/listener/ClusterInstanceConfigChangeListener.java
index 940230c..88bdd40 100644
--- a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/listener/ClusterInstanceConfigChangeListener.java
+++ b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/listener/ClusterInstanceConfigChangeListener.java
@@ -1,16 +1,21 @@
package org.apache.pinot.controller.helix.core.listener;
+import org.apache.helix.HelixManager;
import org.apache.helix.NotificationContext;
import org.apache.helix.api.listeners.InstanceConfigChangeListener;
import org.apache.helix.model.InstanceConfig;
import java.util.ArrayList;
import java.util.List;
+import org.apache.pinot.common.utils.helix.HelixHelper;
+
public class ClusterInstanceConfigChangeListener implements InstanceConfigChangeListener {
+ private HelixManager _helixManager;
private List<InstanceConfig> _instanceConfigs = new ArrayList<>();
- public ClusterInstanceConfigChangeListener() {
+ public ClusterInstanceConfigChangeListener(HelixManager helixManager) {
+ _helixManager = helixManager;
}
@Override
@@ -19,6 +24,9 @@ public class ClusterInstanceConfigChangeListener implements InstanceConfigChange
}
public List<InstanceConfig> getInstanceConfigs() {
+ if(_instanceConfigs.isEmpty()){
+ _instanceConfigs = HelixHelper.getInstanceConfigs(_helixManager);
+ }
return _instanceConfigs;
}
}
diff --git a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/listener/ClusterLiveInstanceChangeListener.java b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/listener/ClusterLiveInstanceChangeListener.java
index 777b41a..e3623c7 100644
--- a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/listener/ClusterLiveInstanceChangeListener.java
+++ b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/listener/ClusterLiveInstanceChangeListener.java
@@ -1,21 +1,34 @@
package org.apache.pinot.controller.helix.core.listener;
import java.util.ArrayList;
+import org.apache.helix.HelixDataAccessor;
import org.apache.helix.NotificationContext;
import org.apache.helix.api.listeners.LiveInstanceChangeListener;
import org.apache.helix.model.LiveInstance;
import java.util.List;
+import org.apache.helix.PropertyKey.Builder;
+
public class ClusterLiveInstanceChangeListener implements LiveInstanceChangeListener {
- private List<LiveInstance> _liveInstances = new ArrayList<>();
+ private HelixDataAccessor _helixDataAccessor;
+ private Builder _keyBuilder;
+ private List<LiveInstance> _liveInstances = new ArrayList<>();
- @Override
- public void onLiveInstanceChange(List<LiveInstance> liveInstances, NotificationContext changeContext) {
- _liveInstances = liveInstances;
- }
+ public ClusterLiveInstanceChangeListener(HelixDataAccessor helixDataAccessor, Builder keyBuilder) {
+ _helixDataAccessor = helixDataAccessor;
+ _keyBuilder = keyBuilder;
+ }
+
+ @Override
+ public void onLiveInstanceChange(List<LiveInstance> liveInstances, NotificationContext changeContext) {
+ _liveInstances = liveInstances;
+ }
- public List<LiveInstance> getLiveInstances() {
- return _liveInstances;
+ public List<LiveInstance> getLiveInstances() {
+ if (_liveInstances.isEmpty()) {
+ _liveInstances = _helixDataAccessor.getProperty(_keyBuilder.liveInstances());
}
+ return _liveInstances;
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org