diff options
-rw-r--r-- | configdefinitions/src/vespa/CMakeLists.txt | 3 | ||||
-rw-r--r-- | configdefinitions/src/vespa/bert-base-embedder.def (renamed from configdefinitions/src/vespa/embedding.bert-base-embedder.def) | 0 | ||||
-rw-r--r-- | configdefinitions/src/vespa/hugging-face-tokenizer.def (renamed from configdefinitions/src/vespa/language.huggingface.hugging-face-tokenizer.def) | 0 | ||||
-rw-r--r-- | container-search/src/main/java/com/yahoo/search/logging/AbstractSpoolingLogger.java | 3 | ||||
-rw-r--r-- | container-search/src/main/java/com/yahoo/search/logging/LoggerEntry.java | 8 | ||||
-rw-r--r-- | container-search/src/main/java/com/yahoo/search/logging/Spooler.java | 11 | ||||
-rw-r--r-- | container-search/src/test/java/com/yahoo/search/logging/SpoolerTest.java | 29 |
7 files changed, 48 insertions, 6 deletions
diff --git a/configdefinitions/src/vespa/CMakeLists.txt b/configdefinitions/src/vespa/CMakeLists.txt index 95e9a31cb73..fd37244b825 100644 --- a/configdefinitions/src/vespa/CMakeLists.txt +++ b/configdefinitions/src/vespa/CMakeLists.txt @@ -83,3 +83,6 @@ install_config_definition(onnx-models.def vespa.config.search.core.onnx-models.d vespa_generate_config(configdefinitions proton.def) install_config_definition(proton.def vespa.config.search.core.proton.def) vespa_generate_config(configdefinitions hwinfo.def) +install_config_definition(hugging-face-embedder.def embedding.huggingface.hugging-face-embedder.def) +install_config_definition(hugging-face-tokenizer.def language.huggingface.config.hugging-face-tokenizer.def) +install_config_definition(bert-base-embedder.def embedding.bert-base-embedder.def) diff --git a/configdefinitions/src/vespa/embedding.bert-base-embedder.def b/configdefinitions/src/vespa/bert-base-embedder.def index 2d8e840377b..2d8e840377b 100644 --- a/configdefinitions/src/vespa/embedding.bert-base-embedder.def +++ b/configdefinitions/src/vespa/bert-base-embedder.def diff --git a/configdefinitions/src/vespa/language.huggingface.hugging-face-tokenizer.def b/configdefinitions/src/vespa/hugging-face-tokenizer.def index 18b3631e494..18b3631e494 100644 --- a/configdefinitions/src/vespa/language.huggingface.hugging-face-tokenizer.def +++ b/configdefinitions/src/vespa/hugging-face-tokenizer.def diff --git a/container-search/src/main/java/com/yahoo/search/logging/AbstractSpoolingLogger.java b/container-search/src/main/java/com/yahoo/search/logging/AbstractSpoolingLogger.java index a047d4c0fe1..601da11ab33 100644 --- a/container-search/src/main/java/com/yahoo/search/logging/AbstractSpoolingLogger.java +++ b/container-search/src/main/java/com/yahoo/search/logging/AbstractSpoolingLogger.java @@ -2,6 +2,7 @@ package com.yahoo.search.logging; import com.yahoo.concurrent.DaemonThreadFactory; + import java.io.IOException; import java.time.Clock; import java.util.concurrent.RejectedExecutionException; @@ -44,7 +45,7 @@ public abstract class AbstractSpoolingLogger extends AbstractThreadedLogger impl @Override public boolean send(LoggerEntry entry) { - log.log(Level.INFO, "Sending"); + log.log(Level.FINE, "Sending entry " + entry + " to spooler"); try { executor.execute(() -> spooler.write(entry)); } catch (RejectedExecutionException e) { diff --git a/container-search/src/main/java/com/yahoo/search/logging/LoggerEntry.java b/container-search/src/main/java/com/yahoo/search/logging/LoggerEntry.java index ffac8b89860..7dd31d8e1a2 100644 --- a/container-search/src/main/java/com/yahoo/search/logging/LoggerEntry.java +++ b/container-search/src/main/java/com/yahoo/search/logging/LoggerEntry.java @@ -58,17 +58,19 @@ public class LoggerEntry { } public String toString() { - return serialize(); + return serialize(false); } - public String serialize() { + public String serialize() { return serialize(true); } + + public String serialize(boolean encodeBlob) { try { Slime slime = new Slime(); Cursor root = slime.setObject(); root.setLong("timestamp", timestamp == null ? 0 : timestamp); root.setString("query", queryString()); - root.setString("blob", Base64.getEncoder().encodeToString(blob.array())); + root.setString("blob", encodeBlob? Base64.getEncoder().encodeToString(blob.array()) : Utf8.toString(blob.array())); root.setString("track", track()); return Utf8.toString(SlimeUtils.toJsonBytes(slime)); // TODO diff --git a/container-search/src/main/java/com/yahoo/search/logging/Spooler.java b/container-search/src/main/java/com/yahoo/search/logging/Spooler.java index 08cfec75fc2..e6d5bfc59ff 100644 --- a/container-search/src/main/java/com/yahoo/search/logging/Spooler.java +++ b/container-search/src/main/java/com/yahoo/search/logging/Spooler.java @@ -125,8 +125,15 @@ public class Spooler { } catch (Exception e) { handleFailure(f); } finally { - if (success && keepSuccessFiles) { - moveProcessedFile(f, successesPath); + if (success) { + if (keepSuccessFiles) + moveProcessedFile(f, successesPath); + else + try { + Files.delete(f.toPath()); + } catch (IOException e) { + log.log(Level.WARNING, "Unable to delete file " + f, e); + } } } } diff --git a/container-search/src/test/java/com/yahoo/search/logging/SpoolerTest.java b/container-search/src/test/java/com/yahoo/search/logging/SpoolerTest.java index dc8f82e4d5a..b07e576241b 100644 --- a/container-search/src/test/java/com/yahoo/search/logging/SpoolerTest.java +++ b/container-search/src/test/java/com/yahoo/search/logging/SpoolerTest.java @@ -57,6 +57,35 @@ public class SpoolerTest { } @Test + public void testSpoolingLoggerCleanup() throws IOException { + Path spoolDir = tempDir.resolve("spool"); + + Spooler spooler = createSpooler(spoolDir, 1, false, 5); + + TestLogger logger = new TestLogger(spooler); + assertTrue(sendEntry(logger, "Yo entry")); + + Path readyPath = spooler.readyPath(); + Path readyFile1 = readyPath.resolve(spooler.fileNameBase.get() + "-0"); + waitUntilFileExists(readyFile1); + + // Check content after being moved to ready path + assertContent(readyFile1, "Yo entry"); + + // Process files (read, transport files) + logger.manualRun(); + assertEquals(1, logger.entriesSent()); + + // No files in processing or ready or successes + assertProcessedFiles(spooler, 0); + assertReadyFiles(spooler, 0); + assertSuccessFiles(spooler, 0); + assertFailureFiles(spooler, 0); + + assertTrue(spooler.failures().isEmpty(), spooler.failures().toString()); + } + + @Test public void testSpoolingManyEntriesPerFile() throws IOException { Path spoolDir = tempDir.resolve("spool"); |