From b18cd0bc366cb066ca099757123ed80da3f90aa8 Mon Sep 17 00:00:00 2001 From: Viktor Lofgren Date: Thu, 2 Feb 2023 10:35:14 +0100 Subject: [PATCH] Improvements to array library and conversion --- .../java/nu/marginalia/util/RandomWriteFunnel.java | 1 - .../util/array/delegate/ShiftedIntArray.java | 10 ++++++++++ .../util/array/delegate/ShiftedLongArray.java | 10 ++++++++++ .../index/postings/reverse/ReverseIndexConverter.java | 5 +++-- 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/marginalia_nu/src/main/java/nu/marginalia/util/RandomWriteFunnel.java b/marginalia_nu/src/main/java/nu/marginalia/util/RandomWriteFunnel.java index a52f9e63..4e21c76e 100644 --- a/marginalia_nu/src/main/java/nu/marginalia/util/RandomWriteFunnel.java +++ b/marginalia_nu/src/main/java/nu/marginalia/util/RandomWriteFunnel.java @@ -108,7 +108,6 @@ public class RandomWriteFunnel implements AutoCloseable { private void eval(ByteBuffer dest) throws IOException { flushBuffer(); - channel.force(false); channel.position(0); buffer.clear(); diff --git a/marginalia_nu/src/main/java/nu/marginalia/util/array/delegate/ShiftedIntArray.java b/marginalia_nu/src/main/java/nu/marginalia/util/array/delegate/ShiftedIntArray.java index 6694f7b2..a920c99a 100644 --- a/marginalia_nu/src/main/java/nu/marginalia/util/array/delegate/ShiftedIntArray.java +++ b/marginalia_nu/src/main/java/nu/marginalia/util/array/delegate/ShiftedIntArray.java @@ -62,6 +62,16 @@ public class ShiftedIntArray implements IntArray { delegate.get(shift+start, shift+end, buffer); } + @Override + public int getAndIncrement(long pos) { + return delegate.getAndIncrement(shift + pos); + } + + @Override + public void fill(long start, long end, int val) { + delegate.fill(start + shift, end + shift, val); + } + @Override public long size() { return size; diff --git a/marginalia_nu/src/main/java/nu/marginalia/util/array/delegate/ShiftedLongArray.java b/marginalia_nu/src/main/java/nu/marginalia/util/array/delegate/ShiftedLongArray.java index b80a8da8..53a4f89b 100644 --- a/marginalia_nu/src/main/java/nu/marginalia/util/array/delegate/ShiftedLongArray.java +++ b/marginalia_nu/src/main/java/nu/marginalia/util/array/delegate/ShiftedLongArray.java @@ -63,6 +63,16 @@ public class ShiftedLongArray implements LongArray { delegate.get(shift+start, shift+end, buffer); } + @Override + public long getAndIncrement(long pos) { + return delegate.getAndIncrement(shift + pos); + } + + @Override + public void fill(long start, long end, long val) { + delegate.fill(start + shift, end + shift, val); + } + @Override public long size() { return size; diff --git a/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/index/postings/reverse/ReverseIndexConverter.java b/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/index/postings/reverse/ReverseIndexConverter.java index f53a1a90..a25dc250 100644 --- a/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/index/postings/reverse/ReverseIndexConverter.java +++ b/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/index/postings/reverse/ReverseIndexConverter.java @@ -34,7 +34,7 @@ public class ReverseIndexConverter { private final SearchIndexJournalReaderSingleFile journalReader; private final Path outputFileWords; private final Path outputFileDocs; - + private final SortingContext sortingContext; public ReverseIndexConverter(Path tmpFileDir, SearchIndexJournalReaderSingleFile journalReader, @@ -44,6 +44,7 @@ public class ReverseIndexConverter { this.journalReader = journalReader; this.outputFileWords = outputFileWords; this.outputFileDocs = outputFileDocs; + this.sortingContext = new SortingContext(tmpFileDir, 64_000); } public void convert() throws IOException { @@ -56,7 +57,7 @@ public class ReverseIndexConverter { final SearchIndexJournalStatistics statistics = journalReader.getStatistics(); final Path intermediateUrlsFile = Files.createTempFile(tmpFileDir, "urls-sorted", ".dat"); - SortingContext sortingContext = new SortingContext(tmpFileDir, 64_000); + try { final long wordsFileSize = statistics.highestWord() + 1;