diff options
author | Harald Musum <musum@yahooinc.com> | 2021-11-15 15:03:36 +0100 |
---|---|---|
committer | Harald Musum <musum@yahooinc.com> | 2021-11-15 15:03:36 +0100 |
commit | 460b115fd8cad64536715597ef4fa8af5bd4fe14 (patch) | |
tree | 11501dcacbb76b6190ca4b48787d9b83dcc79029 /filedistribution | |
parent | 7cc4b6f7b9c796b235048d0ffb1729ba622a5928 (diff) |
Refactor, no funtional changes
Diffstat (limited to 'filedistribution')
-rw-r--r-- | filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceDownloader.java | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceDownloader.java b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceDownloader.java index 8a968fbdca2..1bb6b7586f5 100644 --- a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceDownloader.java +++ b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceDownloader.java @@ -85,34 +85,42 @@ public class FileReferenceDownloader { } private boolean startDownloadRpc(FileReferenceDownload fileReferenceDownload, int retryCount) { + Request request = createRequest(fileReferenceDownload); Connection connection = connectionPool.getCurrent(); - Request request = new Request("filedistribution.serveFile"); - String fileReference = fileReferenceDownload.fileReference().value(); - request.parameters().add(new StringValue(fileReference)); - request.parameters().add(new Int32Value(fileReferenceDownload.downloadFromOtherSourceIfNotFound() ? 0 : 1)); - double timeoutSecs = (double) rpcTimeout.getSeconds(); - timeoutSecs += retryCount * 10.0; - connection.invokeSync(request, timeoutSecs); + connection.invokeSync(request, rpcTimeout(retryCount).getSeconds()); + Level logLevel = (retryCount > 3 ? Level.INFO : Level.FINE); + FileReference fileReference = fileReferenceDownload.fileReference(); if (validateResponse(request)) { log.log(Level.FINE, () -> "Request callback, OK. Req: " + request + "\nSpec: " + connection + ", retry count " + retryCount); if (request.returnValues().get(0).asInt32() == 0) { - log.log(Level.FINE, () -> "Found file reference '" + fileReference + "' available at " + connection.getAddress()); + log.log(Level.FINE, () -> "Found '" + fileReference + "' available at " + connection.getAddress()); return true; } else { - log.log(logLevel, "File reference '" + fileReference + "' not found at " + connection.getAddress()); + log.log(logLevel, "'" + fileReference + "' not found at " + connection.getAddress()); connectionPool.switchConnection(connection); return false; } } else { - log.log(logLevel, "Downloading file " + fileReference + " from " + connection.getAddress() + " failed: " + - request + ", error: " + request.errorMessage() + ", will use another config server for next request" + - " (retry " + retryCount + ", rpc timeout " + timeoutSecs + " seconds)"); + log.log(logLevel, "Downloading " + fileReference + " from " + connection.getAddress() + " failed: " + + request + ", error: " + request.errorMessage() + ", will switch config server for next request" + + " (retry " + retryCount + ", rpc timeout " + rpcTimeout(retryCount)); connectionPool.switchConnection(connection); return false; } } + private Request createRequest(FileReferenceDownload fileReferenceDownload) { + Request request = new Request("filedistribution.serveFile"); + request.parameters().add(new StringValue(fileReferenceDownload.fileReference().value())); + request.parameters().add(new Int32Value(fileReferenceDownload.downloadFromOtherSourceIfNotFound() ? 0 : 1)); + return request; + } + + private Duration rpcTimeout(int retryCount) { + return Duration.ofSeconds(rpcTimeout.getSeconds()).plus(Duration.ofSeconds(retryCount * 10L)); + } + private boolean validateResponse(Request request) { if (request.isError()) { return false; |