Package org.apache.druid.rpc.indexing
Interface OverlordClient
-
- All Known Implementing Classes:
OverlordClientImpl
public interface OverlordClientHigh-level Overlord client. All methods return futures, enabling asynchronous logic. If you want a synchronous response, useFutureUtils.getorFutureUtils.getUnchecked. Futures resolve to exceptions in the manner described byServiceClient.asyncRequest(org.apache.druid.rpc.RequestBuilder, org.apache.druid.java.util.http.client.response.HttpResponseHandler<IntermediateType, FinalType>). Typically acquired via Guice, where it is registered usingServiceClientModule.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description com.google.common.util.concurrent.ListenableFuture<Void>cancelTask(String taskId)Cancel a task.com.google.common.util.concurrent.ListenableFuture<URI>findCurrentLeader()Contact the Overlord that we believe to be the leader, and return the result of its/druid/indexer/v1/leaderAPI.com.google.common.util.concurrent.ListenableFuture<Map<String,List<org.joda.time.Interval>>>findLockedIntervals(List<LockFilterPolicy> lockFilterPolicies)Returns a list of intervals locked by higher priority conflicting lock typescom.google.common.util.concurrent.ListenableFuture<IndexingTotalWorkerCapacityInfo>getTotalWorkerCapacity()Returns total worker capacity details.com.google.common.util.concurrent.ListenableFuture<List<IndexingWorkerInfo>>getWorkers()Returns information about workers.com.google.common.util.concurrent.ListenableFuture<Integer>killPendingSegments(String dataSource, org.joda.time.Interval interval)Deletes pending segment records from the metadata store for a particular datasource.default com.google.common.util.concurrent.ListenableFuture<String>runKillTask(String idPrefix, String dataSource, org.joda.time.Interval interval, Integer maxSegmentsToKill, org.joda.time.DateTime maxUsedStatusLastUpdatedTime)Run a "kill" task for a particular datasource and interval.com.google.common.util.concurrent.ListenableFuture<Void>runTask(String taskId, Object taskObject)Run a task with the provided ID and payload.com.google.common.util.concurrent.ListenableFuture<org.apache.druid.java.util.common.parsers.CloseableIterator<SupervisorStatus>>supervisorStatuses()Returns all current supervisor statuses.com.google.common.util.concurrent.ListenableFuture<TaskPayloadResponse>taskPayload(String taskId)Returns the payload for a task as an instance ofClientTaskQuery.com.google.common.util.concurrent.ListenableFuture<Map<String,Object>>taskReportAsMap(String taskId)Returns the report object for a task as a map.com.google.common.util.concurrent.ListenableFuture<TaskStatusResponse>taskStatus(String taskId)ReturnsTaskStatusResponsefor a particular task ID.com.google.common.util.concurrent.ListenableFuture<org.apache.druid.java.util.common.parsers.CloseableIterator<org.apache.druid.indexer.TaskStatusPlus>>taskStatuses(String state, String dataSource, Integer maxCompletedTasks)ReturnTaskStatusPlusfor all tasks matching a set of optional search parameters.com.google.common.util.concurrent.ListenableFuture<Map<String,org.apache.druid.indexer.TaskStatus>>taskStatuses(Set<String> taskIds)ReturnTaskStatusfor a set of task IDs.OverlordClientwithRetryPolicy(ServiceRetryPolicy retryPolicy)Returns a copy of this client with a different retry policy.
-
-
-
Method Detail
-
findCurrentLeader
com.google.common.util.concurrent.ListenableFuture<URI> findCurrentLeader()
Contact the Overlord that we believe to be the leader, and return the result of its/druid/indexer/v1/leaderAPI. This may be a different Overlord server than the one we contacted, if a leader change happened since the last time we updated our sense of who the leader is.
-
runTask
com.google.common.util.concurrent.ListenableFuture<Void> runTask(String taskId, Object taskObject)
Run a task with the provided ID and payload. The payload must be convertible by anObjectMapperinto a Task object. This method does not take Task objects directly, because Task is in the indexing-service package.- Parameters:
taskId- task IDtaskObject- task payload
-
runKillTask
default com.google.common.util.concurrent.ListenableFuture<String> runKillTask(String idPrefix, String dataSource, org.joda.time.Interval interval, @Nullable Integer maxSegmentsToKill, @Nullable org.joda.time.DateTime maxUsedStatusLastUpdatedTime)
Run a "kill" task for a particular datasource and interval. Shortcut torunTask(String, Object). The kill task deletes all unused segment records from deep storage and the metadata store. The task runs asynchronously after the API call returns. The resolved future is the ID of the task, which can be used to monitor its progress through thetaskStatus(String)API.- Parameters:
idPrefix- Descriptive prefix to include at the start of task IDsdataSource- Datasource to killinterval- Umbrella interval to be considered by the kill task. Note that unused segments falling in this widened umbrella interval may have differentused_status_last_updatedtime, so the kill task should also filter bymaxUsedStatusLastUpdatedTimemaxSegmentsToKill- The maximum number of segments to killmaxUsedStatusLastUpdatedTime- The maximumused_status_last_updatedtime. Any unused segment inintervalwithused_status_last_updatedno later than this time will be included in the kill task. Segments withoutused_status_last_updatedtime (due to an upgrade from legacy Druid) will havemaxUsedStatusLastUpdatedTimeignored- Returns:
- future with task ID
-
cancelTask
com.google.common.util.concurrent.ListenableFuture<Void> cancelTask(String taskId)
Cancel a task.- Parameters:
taskId- task ID
-
taskStatuses
com.google.common.util.concurrent.ListenableFuture<org.apache.druid.java.util.common.parsers.CloseableIterator<org.apache.druid.indexer.TaskStatusPlus>> taskStatuses(@Nullable String state, @Nullable String dataSource, @Nullable Integer maxCompletedTasks)
ReturnTaskStatusPlusfor all tasks matching a set of optional search parameters. Complete tasks are returned in descending order by creation timestamp. Active tasks are returned in no particular order.- Parameters:
state- task state: may be "pending", "waiting", "running", or "complete"dataSource- datasourcemaxCompletedTasks- maximum number of completed tasks to return. If zero, no complete tasks are returned. If null, all complete tasks withindruid.indexer.storage.recentlyFinishedThresholdare returned. This parameter does not affect the number of active tasks returned.- Returns:
- list of tasks that match the search parameters
-
taskStatuses
com.google.common.util.concurrent.ListenableFuture<Map<String,org.apache.druid.indexer.TaskStatus>> taskStatuses(Set<String> taskIds)
ReturnTaskStatusfor a set of task IDs.- Parameters:
taskIds- task IDs- Returns:
- map of task ID to status for known tasks. Unknown tasks are not included in the returned map.
-
taskStatus
com.google.common.util.concurrent.ListenableFuture<TaskStatusResponse> taskStatus(String taskId)
ReturnsTaskStatusResponsefor a particular task ID. This includes somewhat more information than theTaskStatusreturned bytaskStatuses(Set).
-
taskReportAsMap
com.google.common.util.concurrent.ListenableFuture<Map<String,Object>> taskReportAsMap(String taskId)
Returns the report object for a task as a map. Certain task types offer live reports; for these task types, this method may return a task report while the task is running. Certain task types only write reports upon successful completion. Certain other task types do not write reports at all. Returns aHttpResponseExceptionwith codeResponse.Status.NOT_FOUNDif there is no report available for some reason.
-
taskPayload
com.google.common.util.concurrent.ListenableFuture<TaskPayloadResponse> taskPayload(String taskId)
Returns the payload for a task as an instance ofClientTaskQuery. This method only works for tasks that have aClientTaskQuerymodel or are subclasses ofClientTaskQuery.
-
supervisorStatuses
com.google.common.util.concurrent.ListenableFuture<org.apache.druid.java.util.common.parsers.CloseableIterator<SupervisorStatus>> supervisorStatuses()
Returns all current supervisor statuses.
-
findLockedIntervals
com.google.common.util.concurrent.ListenableFuture<Map<String,List<org.joda.time.Interval>>> findLockedIntervals(List<LockFilterPolicy> lockFilterPolicies)
Returns a list of intervals locked by higher priority conflicting lock types- Parameters:
lockFilterPolicies- List of all filters for different datasources- Returns:
- Map from datasource name to list of intervals locked by tasks that have a conflicting lock type with
priority greater than or equal to the
minTaskPriorityfor that datasource.
-
killPendingSegments
com.google.common.util.concurrent.ListenableFuture<Integer> killPendingSegments(String dataSource, org.joda.time.Interval interval)
Deletes pending segment records from the metadata store for a particular datasource. Records withcreated_datewithin the providedintervalare deleted; other records are left alone. Deletion is done synchronously with the API call. When the future resolves, the deletion is complete.- Parameters:
dataSource- datasource nameinterval- created time interval- Returns:
- number of pending segments deleted
-
getWorkers
com.google.common.util.concurrent.ListenableFuture<List<IndexingWorkerInfo>> getWorkers()
Returns information about workers.
-
getTotalWorkerCapacity
com.google.common.util.concurrent.ListenableFuture<IndexingTotalWorkerCapacityInfo> getTotalWorkerCapacity()
Returns total worker capacity details.
-
withRetryPolicy
OverlordClient withRetryPolicy(ServiceRetryPolicy retryPolicy)
Returns a copy of this client with a different retry policy.
-
-