summaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-08-12 16:25:23 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2022-08-12 16:25:23 +0200
commitf222275505d0f83ed557b9b94fd2d2a5615ca5d8 (patch)
treee0668e81f4b33f048631a726b2664dacd0aface1 /config
parent43830a7f7975080dbc4c25804a2506ab102c7868 (diff)
Add method to use Duration as timeout to make unit explicit, and avoid many magic conversions.
Diffstat (limited to 'config')
-rw-r--r--config/src/main/java/com/yahoo/config/subscription/impl/JRTConfigRequester.java8
-rw-r--r--config/src/main/java/com/yahoo/config/subscription/impl/MockConnection.java6
-rw-r--r--config/src/main/java/com/yahoo/vespa/config/Connection.java6
-rw-r--r--config/src/main/java/com/yahoo/vespa/config/JRTConnection.java5
-rw-r--r--config/src/main/java/com/yahoo/vespa/config/UrlDownloader.java3
-rw-r--r--config/src/main/java/com/yahoo/vespa/config/benchmark/LoadTester.java3
6 files changed, 19 insertions, 12 deletions
diff --git a/config/src/main/java/com/yahoo/config/subscription/impl/JRTConfigRequester.java b/config/src/main/java/com/yahoo/config/subscription/impl/JRTConfigRequester.java
index d77cfc17c92..858dc46f77a 100644
--- a/config/src/main/java/com/yahoo/config/subscription/impl/JRTConfigRequester.java
+++ b/config/src/main/java/com/yahoo/config/subscription/impl/JRTConfigRequester.java
@@ -45,7 +45,7 @@ public class JRTConfigRequester implements RequestWaiter {
private static final Duration delayBetweenWarnings = Duration.ofSeconds(60);
static final float randomFraction = 0.2f;
/* Time to be added to server timeout to create client timeout. This is the time allowed for the server to respond after serverTimeout has elapsed. */
- private static final Double additionalTimeForClientTimeout = 10.0;
+ private static final Duration additionalTimeForClientTimeout = Duration.ofSeconds(10);
private final TimingValues timingValues;
private final ScheduledThreadPoolExecutor scheduler;
@@ -100,7 +100,7 @@ public class JRTConfigRequester implements RequestWaiter {
request.setContext(new RequestContext(sub, req, connection));
if (!req.validateParameters()) throw new ConfigurationRuntimeException("Error in parameters for config request: " + req);
- double jrtClientTimeout = getClientTimeout(req);
+ Duration jrtClientTimeout = getClientTimeout(req);
log.log(FINE, () -> "Requesting config for " + sub + " on connection " + connection
+ " with client timeout " + jrtClientTimeout +
(log.isLoggable(FINEST) ? (",defcontent=" + req.getDefContent().asString()) : ""));
@@ -271,7 +271,7 @@ public class JRTConfigRequester implements RequestWaiter {
return connectionPool;
}
- private Double getClientTimeout(JRTClientConfigRequest request) {
- return (request.getTimeout() / 1000.0) + additionalTimeForClientTimeout;
+ private Duration getClientTimeout(JRTClientConfigRequest request) {
+ return Duration.ofMillis(request.getTimeout()).plus(additionalTimeForClientTimeout);
}
}
diff --git a/config/src/main/java/com/yahoo/config/subscription/impl/MockConnection.java b/config/src/main/java/com/yahoo/config/subscription/impl/MockConnection.java
index 24a080d5824..dc0372cea7f 100644
--- a/config/src/main/java/com/yahoo/config/subscription/impl/MockConnection.java
+++ b/config/src/main/java/com/yahoo/config/subscription/impl/MockConnection.java
@@ -10,6 +10,8 @@ import com.yahoo.vespa.config.PayloadChecksums;
import com.yahoo.vespa.config.protocol.JRTServerConfigRequestV3;
import com.yahoo.vespa.config.protocol.Payload;
+import java.time.Duration;
+
/**
* For unit testing
*
@@ -37,14 +39,14 @@ public class MockConnection implements ConnectionPool, Connection {
}
@Override
- public void invokeAsync(Request request, double jrtTimeout, RequestWaiter requestWaiter) {
+ public void invokeAsync(Request request, Duration jrtTimeout, RequestWaiter requestWaiter) {
numberOfRequests++;
lastRequest = request;
responseHandler.handle(request, requestWaiter);
}
@Override
- public void invokeSync(Request request, double jrtTimeout) {
+ public void invokeSync(Request request, Duration jrtTimeout) {
numberOfRequests++;
lastRequest = request;
}
diff --git a/config/src/main/java/com/yahoo/vespa/config/Connection.java b/config/src/main/java/com/yahoo/vespa/config/Connection.java
index ea6419c62e1..69e8fcf9963 100644
--- a/config/src/main/java/com/yahoo/vespa/config/Connection.java
+++ b/config/src/main/java/com/yahoo/vespa/config/Connection.java
@@ -4,14 +4,16 @@ package com.yahoo.vespa.config;
import com.yahoo.jrt.Request;
import com.yahoo.jrt.RequestWaiter;
+import java.time.Duration;
+
/**
* @author hmusum
*/
public interface Connection {
- void invokeAsync(Request request, double jrtTimeout, RequestWaiter requestWaiter);
+ void invokeAsync(Request request, Duration jrtTimeout, RequestWaiter requestWaiter);
- void invokeSync(Request request, double jrtTimeout);
+ void invokeSync(Request request, Duration jrtTimeout);
String getAddress();
diff --git a/config/src/main/java/com/yahoo/vespa/config/JRTConnection.java b/config/src/main/java/com/yahoo/vespa/config/JRTConnection.java
index 2d7c96febd6..f2a104696c1 100644
--- a/config/src/main/java/com/yahoo/vespa/config/JRTConnection.java
+++ b/config/src/main/java/com/yahoo/vespa/config/JRTConnection.java
@@ -7,6 +7,7 @@ import com.yahoo.jrt.Spec;
import com.yahoo.jrt.Supervisor;
import com.yahoo.jrt.Target;
+import java.time.Duration;
import java.util.Objects;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -30,12 +31,12 @@ public class JRTConnection implements Connection {
}
@Override
- public void invokeAsync(Request request, double jrtTimeout, RequestWaiter requestWaiter) {
+ public void invokeAsync(Request request, Duration jrtTimeout, RequestWaiter requestWaiter) {
getTarget().invokeAsync(request, jrtTimeout, requestWaiter);
}
@Override
- public void invokeSync(Request request, double jrtTimeout) {
+ public void invokeSync(Request request, Duration jrtTimeout) {
getTarget().invokeSync(request, jrtTimeout);
}
diff --git a/config/src/main/java/com/yahoo/vespa/config/UrlDownloader.java b/config/src/main/java/com/yahoo/vespa/config/UrlDownloader.java
index b3a4590fdb2..62308315c95 100644
--- a/config/src/main/java/com/yahoo/vespa/config/UrlDownloader.java
+++ b/config/src/main/java/com/yahoo/vespa/config/UrlDownloader.java
@@ -11,6 +11,7 @@ import com.yahoo.jrt.Transport;
import com.yahoo.vespa.defaults.Defaults;
import java.io.File;
+import java.time.Duration;
import java.util.logging.Logger;
import static java.util.logging.Level.FINE;
@@ -47,7 +48,7 @@ public class UrlDownloader {
target = supervisor.connect(spec);
// ping to check if connection is working
Request request = new Request("frt.rpc.ping");
- target.invokeSync(request, 5.0);
+ target.invokeSync(request, Duration.ofSeconds(5));
if (! request.isError()) {
log.log(FINE, () -> "Successfully connected to '" + spec + "', this = " + System.identityHashCode(this));
return;
diff --git a/config/src/main/java/com/yahoo/vespa/config/benchmark/LoadTester.java b/config/src/main/java/com/yahoo/vespa/config/benchmark/LoadTester.java
index 345118b5fd4..5b0f1351ff5 100644
--- a/config/src/main/java/com/yahoo/vespa/config/benchmark/LoadTester.java
+++ b/config/src/main/java/com/yahoo/vespa/config/benchmark/LoadTester.java
@@ -26,6 +26,7 @@ import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
+import java.time.Duration;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@@ -239,7 +240,7 @@ public class LoadTester {
System.out.println("# Requesting: " + reqKey);
long start = System.nanoTime();
- target.invokeSync(request.getRequest(), 10.0);
+ target.invokeSync(request.getRequest(), Duration.ofSeconds(10));
long durationInMillis = (System.nanoTime() - start) / 1_000_000;
if (request.isError()) {