public static double getDoubleValue(final String parameterName, final String value, double defaultValue) { if (isNullOrEmpty(value)) { return defaultValue; } return getDoubleValue(parameterName, value); }
private void handleConnectionRetry(Node node, ClientConnectionStrategyConfig strategyConfig) { Node enabledNode = node.getAttributes().getNamedItem("enabled"); boolean enabled = enabledNode != null && getBooleanValue(getTextContent(enabledNode).trim()); if (!enabled) { LOGGER.warning("Exponential Connection Strategy is not enabled."); } ConnectionRetryConfig connectionRetryConfig = new ConnectionRetryConfig(); connectionRetryConfig.setEnabled(enabled); String initialBackoffMillis = "initial-backoff-millis"; String maxBackoffMillis = "max-backoff-millis"; String multiplier = "multiplier"; String jitter = "jitter"; for (Node child : childElements(node)) { String nodeName = cleanNodeName(child); String value = getTextContent(child).trim(); if (initialBackoffMillis.equals(nodeName)) { connectionRetryConfig.setInitialBackoffMillis(getIntegerValue(initialBackoffMillis, value)); } else if (maxBackoffMillis.equals(nodeName)) { connectionRetryConfig.setMaxBackoffMillis(getIntegerValue(maxBackoffMillis, value)); } else if (multiplier.equals(nodeName)) { connectionRetryConfig.setMultiplier(getIntegerValue(multiplier, value)); } else if ("fail-on-max-backoff".equals(nodeName)) { connectionRetryConfig.setFailOnMaxBackoff(getBooleanValue(value)); } else if (jitter.equals(nodeName)) { connectionRetryConfig.setJitter(getDoubleValue(jitter, value)); } } strategyConfig.setConnectionRetryConfig(connectionRetryConfig); }
private QuorumConfigBuilder handleProbabilisticQuorum(String name, Node node, int quorumSize) { QuorumConfigBuilder quorumConfigBuilder; long acceptableHeartPause = getLongValue("acceptable-heartbeat-pause-millis", getAttribute(node, "acceptable-heartbeat-pause-millis"), ProbabilisticQuorumConfigBuilder.DEFAULT_HEARTBEAT_PAUSE_MILLIS); double threshold = getDoubleValue("suspicion-threshold", getAttribute(node, "suspicion-threshold"), ProbabilisticQuorumConfigBuilder.DEFAULT_PHI_THRESHOLD); int maxSampleSize = getIntegerValue("max-sample-size", getAttribute(node, "max-sample-size"), ProbabilisticQuorumConfigBuilder.DEFAULT_SAMPLE_SIZE); long minStdDeviation = getLongValue("min-std-deviation-millis", getAttribute(node, "min-std-deviation-millis"), ProbabilisticQuorumConfigBuilder.DEFAULT_MIN_STD_DEVIATION); long heartbeatIntervalMillis = getLongValue("heartbeat-interval-millis", getAttribute(node, "heartbeat-interval-millis"), ProbabilisticQuorumConfigBuilder.DEFAULT_HEARTBEAT_INTERVAL_MILLIS); quorumConfigBuilder = QuorumConfig.newProbabilisticQuorumConfigBuilder(name, quorumSize) .withAcceptableHeartbeatPauseMillis(acceptableHeartPause) .withSuspicionThreshold(threshold) .withHeartbeatIntervalMillis(heartbeatIntervalMillis) .withMinStdDeviationMillis(minStdDeviation) .withMaxSampleSize(maxSampleSize); return quorumConfigBuilder; }
private QuorumConfigBuilder handleProbabilisticQuorum(String name, Node node, int quorumSize) { QuorumConfigBuilder quorumConfigBuilder; long acceptableHeartPause = getLongValue("acceptable-heartbeat-pause-millis", getAttribute(node, "acceptable-heartbeat-pause-millis"), ProbabilisticQuorumConfigBuilder.DEFAULT_HEARTBEAT_PAUSE_MILLIS); double threshold = getDoubleValue("suspicion-threshold", getAttribute(node, "suspicion-threshold"), ProbabilisticQuorumConfigBuilder.DEFAULT_PHI_THRESHOLD); int maxSampleSize = getIntegerValue("max-sample-size", getAttribute(node, "max-sample-size"), ProbabilisticQuorumConfigBuilder.DEFAULT_SAMPLE_SIZE); long minStdDeviation = getLongValue("min-std-deviation-millis", getAttribute(node, "min-std-deviation-millis"), ProbabilisticQuorumConfigBuilder.DEFAULT_MIN_STD_DEVIATION); long heartbeatIntervalMillis = getLongValue("heartbeat-interval-millis", getAttribute(node, "heartbeat-interval-millis"), ProbabilisticQuorumConfigBuilder.DEFAULT_HEARTBEAT_INTERVAL_MILLIS); quorumConfigBuilder = QuorumConfig.newProbabilisticQuorumConfigBuilder(name, quorumSize) .withAcceptableHeartbeatPauseMillis(acceptableHeartPause) .withSuspicionThreshold(threshold) .withHeartbeatIntervalMillis(heartbeatIntervalMillis) .withMinStdDeviationMillis(minStdDeviation) .withMaxSampleSize(maxSampleSize); return quorumConfigBuilder; }