Class MainIngestionMonitorService

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable

    public class MainIngestionMonitorService
    extends AbstractVeniceService
    This class is the listener service in main process which handles various kinds of reports sent from isolated ingestion service. MainIngestionMonitorService itself is a Netty based server implementation, and the main report handling logics happens in MainIngestionReportHandler. Besides reports handling, it also maintains two executor services to send heartbeat check and collect metrics to/from child process. Also, it maintains status for all the ongoing/completed topic partition ingestion tasks, which helps IsolatedIngestionBackend to check which process a topic partition storage is located, as well as status recovery when child process crashed and restarted.
    • Method Detail

      • addIngestionNotifier

        public void addIngestionNotifier​(VeniceNotifier ingestionListener)
      • getIngestionNotifier

        public java.util.List<VeniceNotifier> getIngestionNotifier()
      • addPushStatusNotifier

        public void addPushStatusNotifier​(VeniceNotifier pushStatusNotifier)
      • getPushStatusNotifierList

        public java.util.List<VeniceNotifier> getPushStatusNotifierList()
      • setMetricsRepository

        public void setMetricsRepository​(io.tehuti.metrics.MetricsRepository metricsRepository)
      • getTopicPartitionIngestionStatus

        public MainPartitionIngestionStatus getTopicPartitionIngestionStatus​(java.lang.String topicName,
                                                                             int partitionId)
      • setVersionPartitionToLocalIngestion

        public void setVersionPartitionToLocalIngestion​(java.lang.String topicName,
                                                        int partitionId)
      • setVersionPartitionToIsolatedIngestion

        public void setVersionPartitionToIsolatedIngestion​(java.lang.String topicName,
                                                           int partitionId)
      • cleanupTopicPartitionState

        public void cleanupTopicPartitionState​(java.lang.String topicName,
                                               int partitionId)
      • cleanupTopicState

        public void cleanupTopicState​(java.lang.String topicName)
      • getTopicPartitionCount

        public long getTopicPartitionCount​(java.lang.String topicName)
      • getTopicIngestionStatusMap

        public java.util.Map<java.lang.String,​MainTopicIngestionStatus> getTopicIngestionStatusMap()