Package org.apache.bookkeeper.client
Class DefaultSpeculativeRequestExecutionPolicy
java.lang.Object
org.apache.bookkeeper.client.DefaultSpeculativeRequestExecutionPolicy
- All Implemented Interfaces:
SpeculativeRequestExecutionPolicy
public class DefaultSpeculativeRequestExecutionPolicy
extends Object
implements SpeculativeRequestExecutionPolicy
A default implementation of
SpeculativeRequestExecutionPolicy.
The policy issues speculative requests in a backoff way. The time between two speculative requests
are between firstSpeculativeRequestTimeout and maxSpeculativeRequestTimeout.
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) final float(package private) final int(package private) final int -
Constructor Summary
ConstructorsConstructorDescriptionDefaultSpeculativeRequestExecutionPolicy(int firstSpeculativeRequestTimeout, int maxSpeculativeRequestTimeout, float backoffMultiplier) -
Method Summary
Modifier and TypeMethodDescriptioninitiateSpeculativeRequest(ScheduledExecutorService scheduler, SpeculativeRequestExecutor requestExecutor) Initialize the speculative request execution policy.
-
Field Details
-
firstSpeculativeRequestTimeout
final int firstSpeculativeRequestTimeout -
maxSpeculativeRequestTimeout
final int maxSpeculativeRequestTimeout -
backoffMultiplier
final float backoffMultiplier
-
-
Constructor Details
-
DefaultSpeculativeRequestExecutionPolicy
public DefaultSpeculativeRequestExecutionPolicy(int firstSpeculativeRequestTimeout, int maxSpeculativeRequestTimeout, float backoffMultiplier)
-
-
Method Details
-
initiateSpeculativeRequest
public ScheduledFuture<?> initiateSpeculativeRequest(ScheduledExecutorService scheduler, SpeculativeRequestExecutor requestExecutor) Initialize the speculative request execution policy.- Specified by:
initiateSpeculativeRequestin interfaceSpeculativeRequestExecutionPolicy- Parameters:
scheduler- The scheduler service to issue the speculative requestrequestExecutor- The executor is used to issue the actual speculative requests- Returns:
- ScheduledFuture, in case caller needs to cancel it.
-