Class Maintainer

java.lang.Object
com.yahoo.concurrent.maintenance.Maintainer
All Implemented Interfaces:
Runnable

public abstract class Maintainer extends Object implements Runnable
The base class for maintainers. A maintainer is some job which runs at a fixed rate to perform maintenance tasks.
Author:
bratseth, mpolden, jonmv
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected final Logger
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    Maintainer(String name, Duration interval, Clock clock, JobControl jobControl, JobMetrics jobMetrics, List<String> clusterHostnames, boolean ignoreCollision)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected final double
    asSuccessFactor(int attempts, int failures)
    Convenience methods to convert attempts and failures into a success factor
    void
    Waits for shutdown to complete, calling shutdown() if this hasn't been done already.
    protected Duration
    Returns the interval at which this job is set to run
    final void
    lockAndMaintain(boolean force)
    Run this while holding the job lock
    protected abstract double
    Called once each time this maintenance job should run.
    final String
    Returns the simple name of this job
    void
    run()
     
    void
    Starts shutdown of this, typically by shutting down executors.
    final boolean
    Returns whether this is being shut down
    final String
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • log

      protected final Logger log
  • Constructor Details

  • Method Details

    • run

      public void run()
      Specified by:
      run in interface Runnable
    • shutdown

      public void shutdown()
      Starts shutdown of this, typically by shutting down executors. awaitShutdown() waits for shutdown to complete.
    • awaitShutdown

      public void awaitShutdown()
      Waits for shutdown to complete, calling shutdown() if this hasn't been done already.
    • shuttingDown

      public final boolean shuttingDown()
      Returns whether this is being shut down
    • toString

      public final String toString()
      Overrides:
      toString in class Object
    • maintain

      protected abstract double maintain()
      Called once each time this maintenance job should run.
      Returns:
      the degree to which the run was successful - a number between 0 (no success), to 1 (complete success). Note that this indicates whether something is wrong, so e.g if the call did nothing because it should do nothing, 1.0 should be returned.
    • asSuccessFactor

      protected final double asSuccessFactor(int attempts, int failures)
      Convenience methods to convert attempts and failures into a success factor
    • interval

      protected Duration interval()
      Returns the interval at which this job is set to run
    • lockAndMaintain

      public final void lockAndMaintain(boolean force)
      Run this while holding the job lock
    • name

      public final String name()
      Returns the simple name of this job