public abstract class AbstractLatencyScoreStrategyImpl extends java.lang.Object implements LatencyScoreStrategy
LatencyScoreStrategy.Instance, LatencyScoreStrategy.Listener| Modifier and Type | Field and Description |
|---|---|
static int |
DEFAULT_BLOCKED_THREAD_THRESHOLD |
static double |
DEFAULT_KEEP_RATIO |
static int |
DEFAULT_RESET_INTERVAL |
static double |
DEFAULT_SCORE_THRESHOLD |
static int |
DEFAULT_UPDATE_INTERVAL |
| Constructor and Description |
|---|
AbstractLatencyScoreStrategyImpl(java.lang.String name) |
AbstractLatencyScoreStrategyImpl(java.lang.String name,
int updateInterval,
int resetInterval) |
AbstractLatencyScoreStrategyImpl(java.lang.String name,
int updateInterval,
int resetInterval,
int blockedThreshold,
double keepRatio,
double scoreThreshold) |
AbstractLatencyScoreStrategyImpl(java.lang.String name,
int updateInterval,
int resetInterval,
int blockedThreshold,
double keepRatio,
double scoreThreshold,
java.util.concurrent.ScheduledExecutorService executor) |
| Modifier and Type | Method and Description |
|---|---|
LatencyScoreStrategy.Instance |
createInstance()
Create a new instance to associate with an endpoint
|
int |
getBlockedThreshold() |
double |
getKeepRatio() |
int |
getResetInterval() |
double |
getScoreThreshold() |
int |
getUpdateInterval() |
protected abstract LatencyScoreStrategy.Instance |
newInstance()
Template method for creating a new latency tracking instance for a host
|
void |
removeInstance(LatencyScoreStrategy.Instance instance)
Remove the instance for an endpoint that is no longer being tracked
|
void |
reset()
Reset all instance scores
|
void |
shutdown()
Shutdown the threads created by calling start()
|
<CL> java.util.List<HostConnectionPool<CL>> |
sortAndfilterPartition(java.util.List<HostConnectionPool<CL>> srcPools,
java.util.concurrent.atomic.AtomicBoolean prioritized)
Sorts and filters a list of hosts by looking at their up state and score.
|
void |
start(LatencyScoreStrategy.Listener listener)
Start updating stats for instances created using createInstance.
|
void |
update()
Update all instance scores
|
public static final int DEFAULT_UPDATE_INTERVAL
public static final int DEFAULT_RESET_INTERVAL
public static final int DEFAULT_BLOCKED_THREAD_THRESHOLD
public static final double DEFAULT_KEEP_RATIO
public static final double DEFAULT_SCORE_THRESHOLD
public AbstractLatencyScoreStrategyImpl(java.lang.String name,
int updateInterval,
int resetInterval,
int blockedThreshold,
double keepRatio,
double scoreThreshold,
java.util.concurrent.ScheduledExecutorService executor)
public AbstractLatencyScoreStrategyImpl(java.lang.String name,
int updateInterval,
int resetInterval,
int blockedThreshold,
double keepRatio,
double scoreThreshold)
name - updateInterval - In millisecondsresetInterval - In millisecondspublic AbstractLatencyScoreStrategyImpl(java.lang.String name,
int updateInterval,
int resetInterval)
public AbstractLatencyScoreStrategyImpl(java.lang.String name)
public final LatencyScoreStrategy.Instance createInstance()
LatencyScoreStrategycreateInstance in interface LatencyScoreStrategyprotected abstract LatencyScoreStrategy.Instance newInstance()
public void start(LatencyScoreStrategy.Listener listener)
LatencyScoreStrategystart in interface LatencyScoreStrategypublic void shutdown()
LatencyScoreStrategyshutdown in interface LatencyScoreStrategypublic void removeInstance(LatencyScoreStrategy.Instance instance)
LatencyScoreStrategyremoveInstance in interface LatencyScoreStrategypublic <CL> java.util.List<HostConnectionPool<CL>> sortAndfilterPartition(java.util.List<HostConnectionPool<CL>> srcPools, java.util.concurrent.atomic.AtomicBoolean prioritized)
LatencyScoreStrategysortAndfilterPartition in interface LatencyScoreStrategyprioritized - - Will be set to true if the filtered data is prioritized or
not. If prioritized then the first element should be selected
from by the load balancing strategy. Otherwise round robin
could be used.public void update()
LatencyScoreStrategyupdate in interface LatencyScoreStrategypublic void reset()
LatencyScoreStrategyreset in interface LatencyScoreStrategypublic int getUpdateInterval()
getUpdateInterval in interface LatencyScoreStrategypublic int getResetInterval()
getResetInterval in interface LatencyScoreStrategypublic double getScoreThreshold()
getScoreThreshold in interface LatencyScoreStrategypublic int getBlockedThreshold()
getBlockedThreshold in interface LatencyScoreStrategypublic double getKeepRatio()
getKeepRatio in interface LatencyScoreStrategy