Class ChangeRequestHistory<T>
- java.lang.Object
-
- org.apache.druid.server.coordination.ChangeRequestHistory<T>
-
public class ChangeRequestHistory<T> extends Object
This class keeps a bounded list of segment updates made on the server such as adding/dropping segments. Clients calladdChangeRequest(T)oraddChangeRequests(java.util.List<T>)to add updates (e. g. of segments). Clients callgetRequestsSince(org.apache.druid.server.coordination.ChangeRequestHistory.Counter)to get updates since given counter.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classChangeRequestHistory.Counter
-
Constructor Summary
Constructors Constructor Description ChangeRequestHistory()ChangeRequestHistory(int maxSize)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddChangeRequest(T request)Add single segment change update.voidaddChangeRequests(List<T> requests)Add batch of segment changes update.ChangeRequestHistory.CountergetLastCounter()com.google.common.util.concurrent.ListenableFuture<ChangeRequestsSnapshot<T>>getRequestsSince(ChangeRequestHistory.Counter counter)Returns a Future that, on completion, returns list of segment updates and associated counter.voidstop()
-
-
-
Method Detail
-
stop
public void stop()
-
addChangeRequests
public void addChangeRequests(List<T> requests)
Add batch of segment changes update.
-
addChangeRequest
public void addChangeRequest(T request)
Add single segment change update.
-
getRequestsSince
public com.google.common.util.concurrent.ListenableFuture<ChangeRequestsSnapshot<T>> getRequestsSince(ChangeRequestHistory.Counter counter)
Returns a Future that, on completion, returns list of segment updates and associated counter. If there are no update since given counter then Future completion waits till an updates is provided. If counter is older than max number of changes maintained thenChangeRequestsSnapshotis returned withChangeRequestsSnapshot.resetCounterset to True. If there were no updates to provide immediately then a future is created and returned to caller. This future is added to the "waitingFutures" list and all the futures in the list get resolved as soon as a segment update is provided.
-
getLastCounter
public ChangeRequestHistory.Counter getLastCounter()
-
-