Class PushStatusCollector

java.lang.Object
com.linkedin.venice.pushmonitor.PushStatusCollector

public class PushStatusCollector extends Object
This class serves as a collector of offline push status for both Venice Server and Da Vinci clients. It will try to aggregate push status from Server and Da Vinci and produce the final aggregated result. If push status store is not enabled for the store, it will report directly upon receiving terminal server status, otherwise it will record the server status and keep polling Da Vinci status to determine the aggregate status and will only report if the aggregate status is terminal status.
  • Constructor Details

    • PushStatusCollector

      public PushStatusCollector(ReadWriteStoreRepository storeRepository, PushStatusStoreReader pushStatusStoreReader, Consumer<String> pushCompletedHandler, BiConsumer<String,ExecutionStatusWithDetails> pushErrorHandler, boolean daVinciPushStatusScanEnabled, int daVinciPushStatusScanIntervalInSeconds, int daVinciPushStatusScanThreadNumber, int daVinciPushStatusNoReportRetryMaxAttempts, int daVinciPushStatusScanMaxOfflineInstanceCount, double daVinciPushStatusScanMaxOfflineInstanceRatio, boolean useDaVinciSpecificExecutionStatusForError)
  • Method Details

    • start

      public void start()
    • subscribeTopic

      public void subscribeTopic(String topicName, int partitionCount)
    • unsubscribeTopic

      public void unsubscribeTopic(String topicName)
    • handleServerPushStatusUpdate

      public void handleServerPushStatusUpdate(String topicName, ExecutionStatus executionStatus, String detailsString)
    • clear

      public void clear()