Class ReplicationSupervisor

java.lang.Object
org.apache.hadoop.ozone.container.replication.ReplicationSupervisor

public final class ReplicationSupervisor extends Object
Single point to schedule the downloading tasks based on priorities.
  • Method Details

    • newBuilder

      public static ReplicationSupervisor.Builder newBuilder()
    • getMetricsMap

      public static Map<String,String> getMetricsMap()
    • addTask

      public void addTask(AbstractReplicationTask task)
      Queue an asynchronous download of the given container.
    • initCounters

      public void initCounters(AbstractReplicationTask task)
    • shutdownAfterFinish

      public void shutdownAfterFinish() throws InterruptedException
      Throws:
      InterruptedException
    • stop

      public void stop()
    • getInFlightReplications

      public int getInFlightReplications(Class<? extends AbstractReplicationTask> taskClass)
      Given the Class of a AbstractReplicationTask, return the count of tasks currently inflight (queued or running) for that type of task.
      Parameters:
      taskClass - The Class of the tasks to get a count for.
      Returns:
      Count of in-flight replications for the type of task.
    • getInFlightReplicationSummary

      public Map<String,Integer> getInFlightReplicationSummary()
    • getTotalInFlightReplications

      public int getTotalInFlightReplications()
      Returns a count of all inflight replication tasks across all task types. Note that `getInFlightReplications(Class taskClass) allows for the .count of replications for a given class to be retrieved.
      Returns:
      Total replication tasks queued or running in the supervisor
    • getMaxQueueSize

      public int getMaxQueueSize()
    • nodeStateUpdated

      public void nodeStateUpdated(org.apache.hadoop.hdds.protocol.proto.HddsProtos.NodeOperationalState newState)
    • getReplicationRequestCount

      public long getReplicationRequestCount()
    • getReplicationRequestCount

      public long getReplicationRequestCount(String metricsName)
    • getQueueSize

      public long getQueueSize()
    • getMaxReplicationStreams

      public long getMaxReplicationStreams()
    • getReplicationSuccessCount

      public long getReplicationSuccessCount()
    • getReplicationSuccessCount

      public long getReplicationSuccessCount(String metricsName)
    • getReplicationFailureCount

      public long getReplicationFailureCount()
    • getReplicationFailureCount

      public long getReplicationFailureCount(String metricsName)
    • getReplicationTimeoutCount

      public long getReplicationTimeoutCount()
    • getReplicationTimeoutCount

      public long getReplicationTimeoutCount(String metricsName)
    • getReplicationSkippedCount

      public long getReplicationSkippedCount()
    • getReplicationSkippedCount

      public long getReplicationSkippedCount(String metricsName)
    • getReplicationQueuedCount

      public long getReplicationQueuedCount()
    • getReplicationQueuedCount

      public long getReplicationQueuedCount(String metricsName)
    • getReplicationRequestAvgTime

      public long getReplicationRequestAvgTime(String metricsName)
    • getReplicationRequestTotalTime

      public long getReplicationRequestTotalTime(String metricsName)