Interface CoordinatorCustomDuty

All Superinterfaces:
CoordinatorDuty
All Known Implementing Classes:
CompactSegments, KillSupervisorsCustomDuty

public interface CoordinatorCustomDuty extends CoordinatorDuty
This ExtensionPoint allows for coordinator duty to be pluggable so that users can register their own duties without modifying Core Druid classes. Users can write their own custom coordinator duty implemnting this interface and setting the JsonTypeName. Next, users will need to register their custom coordinator as subtypes in their Module's DruidModule.getJacksonModules(). Once these steps are done, user will be able to load their custom coordinator duty using the following properties: druid.coordinator.dutyGroups=[] druid.coordinator..duties=[] druid.coordinator..duty..=100 druid.coordinator..duty..=200 druid.coordinator..period="P1D" The duties can be grouped into multiple groups as per the elements in list druid.coordinator.dutyGroups. All duties in the same group will have the same run period configured by druid.coordinator..period. There will be a single thread running the duties sequentially for each group. Note that custom duty does not implement CoordinatorDuty directly as existing Core Druid Coordinator Duties don't have associated JSON type and should not be manually grouped/enabled/disabled by the users. (The only exception is the metadata cleanup duties which we may refactor to use the custom duty system in the future)
  • Method Summary

    Methods inherited from interface org.apache.druid.server.coordinator.duty.CoordinatorDuty

    run