You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by ja...@apache.org on 2023/02/10 22:08:51 UTC

[pinot] branch master updated: Add PinotHelixResourceManager to MetadataEventNotifier (#10247)

This is an automated email from the ASF dual-hosted git repository.

jackie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git


The following commit(s) were added to refs/heads/master by this push:
     new 53e80fc696 Add PinotHelixResourceManager to MetadataEventNotifier (#10247)
53e80fc696 is described below

commit 53e80fc69688600c0eb0fccff90b6c2865999183
Author: Prachi Khobragade <pk...@linkedin.com>
AuthorDate: Fri Feb 10 14:08:45 2023 -0800

    Add PinotHelixResourceManager to MetadataEventNotifier (#10247)
---
 .../java/org/apache/pinot/controller/BaseControllerStarter.java  | 5 +++--
 .../api/events/DefaultMetadataEventNotifierFactory.java          | 9 ++++++---
 .../controller/api/events/MetadataEventNotifierFactory.java      | 9 +++++----
 .../helix/core/realtime/PinotLLCRealtimeSegmentManager.java      | 3 ++-
 4 files changed, 16 insertions(+), 10 deletions(-)

diff --git a/pinot-controller/src/main/java/org/apache/pinot/controller/BaseControllerStarter.java b/pinot-controller/src/main/java/org/apache/pinot/controller/BaseControllerStarter.java
index bc2284032c..6be44b068c 100644
--- a/pinot-controller/src/main/java/org/apache/pinot/controller/BaseControllerStarter.java
+++ b/pinot-controller/src/main/java/org/apache/pinot/controller/BaseControllerStarter.java
@@ -459,7 +459,7 @@ public abstract class BaseControllerStarter implements ServiceStartable {
     }
 
     final MetadataEventNotifierFactory metadataEventNotifierFactory =
-        MetadataEventNotifierFactory.loadFactory(_config.subset(METADATA_EVENT_NOTIFIER_PREFIX));
+        MetadataEventNotifierFactory.loadFactory(_config.subset(METADATA_EVENT_NOTIFIER_PREFIX), _helixResourceManager);
 
     LOGGER.info("Controller download url base: {}", _config.generateVipUrl());
     LOGGER.info("Injecting configuration and resource managers to the API context");
@@ -495,7 +495,8 @@ public abstract class BaseControllerStarter implements ServiceStartable {
     LOGGER.info("Starting controller admin application on: {}", ListenerConfigUtil.toString(_listenerConfigs));
     _adminApp.start(_listenerConfigs);
 
-    _controllerMetrics.addCallbackGauge("dataDir.exists", () -> new File(_config.getDataDir()).exists() ? 1L : 0L);
+    _controllerMetrics.addCallbackGauge("dataDir.exists",
+        () -> new File(_config.getDataDir()).exists() ? 1L : 0L);
     _controllerMetrics.addCallbackGauge("dataDir.fileOpLatencyMs", () -> {
       File dataDir = new File(_config.getDataDir());
       if (dataDir.exists()) {
diff --git a/pinot-controller/src/main/java/org/apache/pinot/controller/api/events/DefaultMetadataEventNotifierFactory.java b/pinot-controller/src/main/java/org/apache/pinot/controller/api/events/DefaultMetadataEventNotifierFactory.java
index aa148f47ce..b303c8cd23 100644
--- a/pinot-controller/src/main/java/org/apache/pinot/controller/api/events/DefaultMetadataEventNotifierFactory.java
+++ b/pinot-controller/src/main/java/org/apache/pinot/controller/api/events/DefaultMetadataEventNotifierFactory.java
@@ -18,15 +18,18 @@
  */
 package org.apache.pinot.controller.api.events;
 
+import org.apache.pinot.controller.helix.core.PinotHelixResourceManager;
 import org.apache.pinot.spi.env.PinotConfiguration;
 
 
 public class DefaultMetadataEventNotifierFactory extends MetadataEventNotifierFactory {
 
-  public MetadataEventNotifier create() {
-    return new DefaultMetadataEventNotifier();
+  @Override
+  public void init(PinotConfiguration configuration, PinotHelixResourceManager pinotHelixResourceManager) {
   }
 
-  public void init(PinotConfiguration configuration) {
+  @Override
+  public MetadataEventNotifier create() {
+    return new DefaultMetadataEventNotifier();
   }
 }
diff --git a/pinot-controller/src/main/java/org/apache/pinot/controller/api/events/MetadataEventNotifierFactory.java b/pinot-controller/src/main/java/org/apache/pinot/controller/api/events/MetadataEventNotifierFactory.java
index 20ffc2a02b..68626f9d2d 100644
--- a/pinot-controller/src/main/java/org/apache/pinot/controller/api/events/MetadataEventNotifierFactory.java
+++ b/pinot-controller/src/main/java/org/apache/pinot/controller/api/events/MetadataEventNotifierFactory.java
@@ -18,6 +18,7 @@
  */
 package org.apache.pinot.controller.api.events;
 
+import org.apache.pinot.controller.helix.core.PinotHelixResourceManager;
 import org.apache.pinot.spi.env.PinotConfiguration;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -27,21 +28,21 @@ public abstract class MetadataEventNotifierFactory {
   public static final Logger LOGGER = LoggerFactory.getLogger(MetadataEventNotifierFactory.class);
   public static final String METADATA_EVENT_CLASS_CONFIG = "factory.class";
 
-  public abstract void init(PinotConfiguration configuration);
+  public abstract void init(PinotConfiguration configuration, PinotHelixResourceManager pinotHelixResourceManager);
 
   public abstract MetadataEventNotifier create();
 
-  public static MetadataEventNotifierFactory loadFactory(PinotConfiguration configuration) {
+  public static MetadataEventNotifierFactory loadFactory(PinotConfiguration configuration, PinotHelixResourceManager
+      helixResourceManager) {
     MetadataEventNotifierFactory metadataEventNotifierFactory;
 
     String metadataEventNotifierClassName =
         configuration.getProperty(METADATA_EVENT_CLASS_CONFIG, DefaultMetadataEventNotifierFactory.class.getName());
-
     try {
       LOGGER.info("Instantiating metadata event notifier factory class {}", metadataEventNotifierClassName);
       metadataEventNotifierFactory =
           (MetadataEventNotifierFactory) Class.forName(metadataEventNotifierClassName).newInstance();
-      metadataEventNotifierFactory.init(configuration);
+      metadataEventNotifierFactory.init(configuration, helixResourceManager);
       return metadataEventNotifierFactory;
     } catch (Exception e) {
       throw new RuntimeException(e);
diff --git a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/realtime/PinotLLCRealtimeSegmentManager.java b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/realtime/PinotLLCRealtimeSegmentManager.java
index 861d903d3d..e17dc8d46d 100644
--- a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/realtime/PinotLLCRealtimeSegmentManager.java
+++ b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/realtime/PinotLLCRealtimeSegmentManager.java
@@ -181,7 +181,8 @@ public class PinotLLCRealtimeSegmentManager {
     _controllerConf = controllerConf;
     _controllerMetrics = controllerMetrics;
     _metadataEventNotifierFactory =
-        MetadataEventNotifierFactory.loadFactory(controllerConf.subset(METADATA_EVENT_NOTIFIER_PREFIX));
+        MetadataEventNotifierFactory.loadFactory(controllerConf.subset(METADATA_EVENT_NOTIFIER_PREFIX),
+            helixResourceManager);
     _numIdealStateUpdateLocks = controllerConf.getRealtimeSegmentMetadataCommitNumLocks();
     _idealStateUpdateLocks = new Lock[_numIdealStateUpdateLocks];
     for (int i = 0; i < _numIdealStateUpdateLocks; i++) {


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org