summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config-proxy/src/main/java/com/yahoo/vespa/config/proxy/RpcConfigSourceClient.java2
-rw-r--r--messagebus/src/main/java/com/yahoo/messagebus/MessageBus.java2
-rwxr-xr-xmessagebus/src/main/java/com/yahoo/messagebus/Messenger.java2
-rw-r--r--vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java15
-rw-r--r--vespajlib/src/main/java/com/yahoo/concurrent/SystemTimer.java6
5 files changed, 14 insertions, 13 deletions
diff --git a/config-proxy/src/main/java/com/yahoo/vespa/config/proxy/RpcConfigSourceClient.java b/config-proxy/src/main/java/com/yahoo/vespa/config/proxy/RpcConfigSourceClient.java
index 9fa0a515abc..5ca387b6122 100644
--- a/config-proxy/src/main/java/com/yahoo/vespa/config/proxy/RpcConfigSourceClient.java
+++ b/config-proxy/src/main/java/com/yahoo/vespa/config/proxy/RpcConfigSourceClient.java
@@ -68,7 +68,7 @@ class RpcConfigSourceClient implements ConfigSourceClient, Runnable {
this.memoryCache = new MemoryCache();
this.delayedResponses = new DelayedResponses();
checkConfigSources();
- nextConfigFuture = nextConfigScheduler.scheduleAtFixedRate(this, 0, 10*1000/SystemTimer.detectHz(), MILLISECONDS);
+ nextConfigFuture = nextConfigScheduler.scheduleAtFixedRate(this, 0, SystemTimer.adjustTimeoutByDetectedHz(10), MILLISECONDS);
this.requesters = new JrtConfigRequesters();
DelayedResponseHandler command = new DelayedResponseHandler(delayedResponses, memoryCache, responseHandler);
this.delayedResponsesFuture = delayedResponsesScheduler.scheduleAtFixedRate(command, 5, 1, SECONDS);
diff --git a/messagebus/src/main/java/com/yahoo/messagebus/MessageBus.java b/messagebus/src/main/java/com/yahoo/messagebus/MessageBus.java
index d7f488346ff..c47fe88dc71 100644
--- a/messagebus/src/main/java/com/yahoo/messagebus/MessageBus.java
+++ b/messagebus/src/main/java/com/yahoo/messagebus/MessageBus.java
@@ -88,7 +88,7 @@ public class MessageBus implements ConfigHandler, NetworkOwner, MessageHandler,
}
private void sendBlockedMessages() {
- int timeout = 10*1000/SystemTimer.detectHz();
+ int timeout = SystemTimer.adjustTimeoutByDetectedHz(10);
while (! destroyed.get()) {
for (SendBlockedMessages sender : blockedSenders.keySet()) {
if (!sender.trySend()) {
diff --git a/messagebus/src/main/java/com/yahoo/messagebus/Messenger.java b/messagebus/src/main/java/com/yahoo/messagebus/Messenger.java
index 478cb7554ee..4f36cb3b328 100755
--- a/messagebus/src/main/java/com/yahoo/messagebus/Messenger.java
+++ b/messagebus/src/main/java/com/yahoo/messagebus/Messenger.java
@@ -149,7 +149,7 @@ public class Messenger implements Runnable {
@Override
public void run() {
- int timeoutMS = 100*1000/SystemTimer.detectHz();
+ int timeoutMS = SystemTimer.adjustTimeoutByDetectedHz(100);
while (true) {
Task task = null;
synchronized (this) {
diff --git a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java
index 4d7c2f1cc14..220c61a3442 100644
--- a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java
+++ b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java
@@ -6,6 +6,7 @@ import com.fasterxml.jackson.core.JsonGenerator;
import com.google.inject.Inject;
import com.yahoo.cloud.config.ClusterListConfig;
import com.yahoo.concurrent.DaemonThreadFactory;
+import com.yahoo.concurrent.SystemTimer;
import com.yahoo.container.core.HandlerMetricContextUtil;
import com.yahoo.container.core.documentapi.VespaDocumentAccess;
import com.yahoo.container.jdisc.ContentChannelOutputStream;
@@ -20,7 +21,6 @@ import com.yahoo.document.FixedBucketSpaces;
import com.yahoo.document.TestAndSetCondition;
import com.yahoo.document.config.DocumentmanagerConfig;
import com.yahoo.document.fieldset.AllFields;
-import com.yahoo.document.fieldset.DocumentOnly;
import com.yahoo.document.fieldset.DocIdOnly;
import com.yahoo.document.idstring.IdIdString;
import com.yahoo.document.json.DocumentOperationType;
@@ -212,14 +212,11 @@ public class DocumentV1ApiHandler extends AbstractRequestHandler {
this.asyncSession = access.createAsyncSession(new AsyncParameters());
this.clusters = parseClusters(clusterListConfig, bucketSpacesConfig);
this.operations = new ConcurrentLinkedDeque<>();
- this.dispatcher.scheduleWithFixedDelay(this::dispatchEnqueued,
- executorConfig.resendDelayMillis(),
- executorConfig.resendDelayMillis(),
- MILLISECONDS);
- this.visitDispatcher.scheduleWithFixedDelay(this::dispatchVisitEnqueued,
- executorConfig.resendDelayMillis(),
- executorConfig.resendDelayMillis(),
- MILLISECONDS);
+ int resendDelayMS = SystemTimer.adjustTimeoutByDetectedHz(executorConfig.resendDelayMillis());
+
+ //TODO Here it would be better do have dedicated threads with different wait depending on blocked or empty.
+ this.dispatcher.scheduleWithFixedDelay(this::dispatchEnqueued, resendDelayMS, resendDelayMS, MILLISECONDS);
+ this.visitDispatcher.scheduleWithFixedDelay(this::dispatchVisitEnqueued, resendDelayMS, resendDelayMS, MILLISECONDS);
}
// ------------------------------------------------ Requests -------------------------------------------------
diff --git a/vespajlib/src/main/java/com/yahoo/concurrent/SystemTimer.java b/vespajlib/src/main/java/com/yahoo/concurrent/SystemTimer.java
index ecaae5e6387..38e93db30b6 100644
--- a/vespajlib/src/main/java/com/yahoo/concurrent/SystemTimer.java
+++ b/vespajlib/src/main/java/com/yahoo/concurrent/SystemTimer.java
@@ -32,8 +32,12 @@ public enum SystemTimer implements Timer {
return hz;
}
+ public static int adjustTimeoutByDetectedHz(int timeoutMS) {
+ return (timeoutMS * 1000)/ detectHz();
+ }
+
SystemTimer() {
- int napTime = 1000 / detectHz();
+ int napTime = adjustTimeoutByDetectedHz(1);
millis = TimeUnit.NANOSECONDS.toMillis(System.nanoTime());
Thread thread = new Thread() {