diff --git a/src/main/java/it/cavallium/dbengine/database/LLType.java b/src/main/java/it/cavallium/dbengine/database/LLType.java index 079b708..a7442ba 100644 --- a/src/main/java/it/cavallium/dbengine/database/LLType.java +++ b/src/main/java/it/cavallium/dbengine/database/LLType.java @@ -1,7 +1,7 @@ package it.cavallium.dbengine.database; /** - * https://lucene.apache.org/core/8_0_0/core/org/apache/lucene/document/Field.html + * Field.html */ public enum LLType { StringField, diff --git a/src/main/java/it/cavallium/dbengine/database/disk/AbstractRocksDBColumn.java b/src/main/java/it/cavallium/dbengine/database/disk/AbstractRocksDBColumn.java index 976027e..800dfbd 100644 --- a/src/main/java/it/cavallium/dbengine/database/disk/AbstractRocksDBColumn.java +++ b/src/main/java/it/cavallium/dbengine/database/disk/AbstractRocksDBColumn.java @@ -357,7 +357,7 @@ public sealed abstract class AbstractRocksDBColumn implements } @Override - public boolean mayExists(@NotNull ReadOptions readOptions, Buf key) throws RocksDBException { + public boolean mayExists(@NotNull ReadOptions readOptions, Buf key) { var closeReadLock = closeLock.readLock(); try { ensureOpen(); @@ -504,7 +504,7 @@ public sealed abstract class AbstractRocksDBColumn implements @NotNull WriteOptions writeOptions, Buf key, BinarySerializationFunction updater, - UpdateAtomicResultMode returnMode) throws RocksDBException { + UpdateAtomicResultMode returnMode) { var closeReadLock = closeLock.readLock(); try { ensureOpen(); @@ -543,7 +543,7 @@ public sealed abstract class AbstractRocksDBColumn implements @NotNull WriteOptions writeOptions, Buf key, BinarySerializationFunction updater, - UpdateAtomicResultMode returnMode) throws RocksDBException; + UpdateAtomicResultMode returnMode); @Override @NotNull diff --git a/src/main/java/it/cavallium/dbengine/database/disk/CachedIndexSearcherManager.java b/src/main/java/it/cavallium/dbengine/database/disk/CachedIndexSearcherManager.java index 5be2fba..30cb399 100644 --- a/src/main/java/it/cavallium/dbengine/database/disk/CachedIndexSearcherManager.java +++ b/src/main/java/it/cavallium/dbengine/database/disk/CachedIndexSearcherManager.java @@ -40,10 +40,8 @@ public class CachedIndexSearcherManager extends SimpleResource implements IndexS @Nullable private final SnapshotsManager snapshotsManager; - private final ScheduledExecutorService luceneHeavyTasksScheduler; private final Similarity similarity; private final SearcherManager searcherManager; - private final Duration queryRefreshDebounceTime; private final AtomicLong activeSearchers = new AtomicLong(0); private final AtomicLong activeRefreshes = new AtomicLong(0); @@ -59,9 +57,7 @@ public class CachedIndexSearcherManager extends SimpleResource implements IndexS boolean writeAllDeletes, Duration queryRefreshDebounceTime) { this.snapshotsManager = snapshotsManager; - this.luceneHeavyTasksScheduler = luceneHeavyTasksScheduler; this.similarity = similarity; - this.queryRefreshDebounceTime = queryRefreshDebounceTime; try { this.searcherManager = new SearcherManager(indexWriter, applyAllDeletes, writeAllDeletes, SEARCHER_FACTORY); diff --git a/src/main/java/it/cavallium/dbengine/database/disk/LLIndexSearcher.java b/src/main/java/it/cavallium/dbengine/database/disk/LLIndexSearcher.java index a07c8bf..722aa13 100644 --- a/src/main/java/it/cavallium/dbengine/database/disk/LLIndexSearcher.java +++ b/src/main/java/it/cavallium/dbengine/database/disk/LLIndexSearcher.java @@ -25,8 +25,4 @@ public abstract class LLIndexSearcher extends SimpleResource implements Discardi } protected abstract IndexSearcher getIndexSearcherInternal(); - - public AtomicBoolean getClosed() { - return super.getClosed(); - } } diff --git a/src/main/java/it/cavallium/dbengine/database/disk/LLIndexSearcherImpl.java b/src/main/java/it/cavallium/dbengine/database/disk/LLIndexSearcherImpl.java index cd67831..9610598 100644 --- a/src/main/java/it/cavallium/dbengine/database/disk/LLIndexSearcherImpl.java +++ b/src/main/java/it/cavallium/dbengine/database/disk/LLIndexSearcherImpl.java @@ -24,8 +24,4 @@ public abstract class LLIndexSearcherImpl extends LLIndexSearcher { public IndexSearcher getIndexSearcherInternal() { return indexSearcher; } - - public AtomicBoolean getClosed() { - return super.getClosed(); - } } diff --git a/src/main/java/it/cavallium/dbengine/database/disk/LLLocalKeyValueDatabase.java b/src/main/java/it/cavallium/dbengine/database/disk/LLLocalKeyValueDatabase.java index 63f1627..557b2bb 100644 --- a/src/main/java/it/cavallium/dbengine/database/disk/LLLocalKeyValueDatabase.java +++ b/src/main/java/it/cavallium/dbengine/database/disk/LLLocalKeyValueDatabase.java @@ -749,8 +749,7 @@ public class LLLocalKeyValueDatabase extends Backuppable implements LLKeyValueDa return closeLock; } - private void flushAndCloseDb(RocksDB db, Cache standardCache, Cache compressedCache, List handles) - throws RocksDBException { + private void flushAndCloseDb(RocksDB db, Cache standardCache, Cache compressedCache, List handles) { var closeWriteLock = closeLock.writeLock(); try { if (closed) { @@ -1536,7 +1535,7 @@ public class LLLocalKeyValueDatabase extends Backuppable implements LLKeyValueDa }); handles.clear(); deleteUnusedOldLogFiles(); - } catch (RocksDBException e) { + } catch (Exception e) { throw new DBException("Failed to close", e); } } diff --git a/src/main/java/it/cavallium/dbengine/database/disk/LLLocalMigrationReactiveRocksIterator.java b/src/main/java/it/cavallium/dbengine/database/disk/LLLocalMigrationReactiveRocksIterator.java index 941ea60..efa6190 100644 --- a/src/main/java/it/cavallium/dbengine/database/disk/LLLocalMigrationReactiveRocksIterator.java +++ b/src/main/java/it/cavallium/dbengine/database/disk/LLLocalMigrationReactiveRocksIterator.java @@ -21,8 +21,8 @@ import org.rocksdb.RocksDBException; public final class LLLocalMigrationReactiveRocksIterator { private final RocksDBColumn db; - private LLRange range; - private Supplier readOptions; + private final LLRange range; + private final Supplier readOptions; public LLLocalMigrationReactiveRocksIterator(RocksDBColumn db, LLRange range, @@ -41,17 +41,13 @@ public final class LLLocalMigrationReactiveRocksIterator { throw new DBException("Failed to open iterator", e); } return streamWhileNonNull(() -> { - try { - if (rocksIterator.isValid()) { - var key = rocksIterator.keyBuf().copy(); - var value = rocksIterator.valueBuf().copy(); - rocksIterator.next(false); - return LLEntry.of(key, value); - } else { - return null; - } - } catch (RocksDBException ex) { - throw new CompletionException(new DBException("Failed to iterate", ex)); + if (rocksIterator.isValid()) { + var key = rocksIterator.keyBuf().copy(); + var value = rocksIterator.valueBuf().copy(); + rocksIterator.next(false); + return LLEntry.of(key, value); + } else { + return null; } }).onClose(() -> { rocksIterator.close(); diff --git a/src/main/java/it/cavallium/dbengine/database/disk/LLLocalSingleton.java b/src/main/java/it/cavallium/dbengine/database/disk/LLLocalSingleton.java index 229da8e..2e592fb 100644 --- a/src/main/java/it/cavallium/dbengine/database/disk/LLLocalSingleton.java +++ b/src/main/java/it/cavallium/dbengine/database/disk/LLLocalSingleton.java @@ -102,8 +102,6 @@ public class LLLocalSingleton implements LLSingleton { UpdateAtomicResult result; try (var readOptions = new ReadOptions(); var writeOptions = new WriteOptions()) { result = db.updateAtomic(readOptions, writeOptions, name, updater, returnMode); - } catch (RocksDBException e) { - throw new DBException("Failed to read or write", e); } return switch (updateReturnMode) { case NOTHING -> null; @@ -120,8 +118,6 @@ public class LLLocalSingleton implements LLSingleton { UpdateAtomicResult result; try (var readOptions = new ReadOptions(); var writeOptions = new WriteOptions()) { result = db.updateAtomic(readOptions, writeOptions, name, updater, DELTA); - } catch (RocksDBException e) { - throw new DBException("Failed to read or write", e); } return ((UpdateAtomicResultDelta) result).delta(); } diff --git a/src/main/java/it/cavallium/dbengine/database/disk/RocksDBColumn.java b/src/main/java/it/cavallium/dbengine/database/disk/RocksDBColumn.java index 745c59c..164d1eb 100644 --- a/src/main/java/it/cavallium/dbengine/database/disk/RocksDBColumn.java +++ b/src/main/java/it/cavallium/dbengine/database/disk/RocksDBColumn.java @@ -42,7 +42,7 @@ public sealed interface RocksDBColumn permits AbstractRocksDBColumn { boolean exists(@NotNull ReadOptions readOptions, Buf key) throws RocksDBException; - boolean mayExists(@NotNull ReadOptions readOptions, Buf key) throws RocksDBException; + boolean mayExists(@NotNull ReadOptions readOptions, Buf key); void put(@NotNull WriteOptions writeOptions, Buf key, Buf value) throws RocksDBException; @@ -56,7 +56,7 @@ public sealed interface RocksDBColumn permits AbstractRocksDBColumn { @NotNull WriteOptions writeOptions, Buf key, BinarySerializationFunction updater, - UpdateAtomicResultMode returnMode) throws RocksDBException; + UpdateAtomicResultMode returnMode); void delete(WriteOptions writeOptions, Buf key) throws RocksDBException; @@ -84,5 +84,5 @@ public sealed interface RocksDBColumn permits AbstractRocksDBColumn { boolean supportsTransactions(); - void forceCompaction(int volumeId) throws RocksDBException; + void forceCompaction(int volumeId); } diff --git a/src/main/java/it/cavallium/dbengine/database/disk/rocksdb/RocksIteratorObj.java b/src/main/java/it/cavallium/dbengine/database/disk/rocksdb/RocksIteratorObj.java index ec8a214..6a377ea 100644 --- a/src/main/java/it/cavallium/dbengine/database/disk/rocksdb/RocksIteratorObj.java +++ b/src/main/java/it/cavallium/dbengine/database/disk/rocksdb/RocksIteratorObj.java @@ -201,7 +201,7 @@ public class RocksIteratorObj extends SimpleResource { next(true); } - public void next(boolean traceStats) throws RocksDBException { + public void next(boolean traceStats) { ensureOpen(); if (traceStats) { startedIterNext.increment(); @@ -217,7 +217,7 @@ public class RocksIteratorObj extends SimpleResource { prev(true); } - public void prev(boolean traceStats) throws RocksDBException { + public void prev(boolean traceStats) { ensureOpen(); if (traceStats) { startedIterNext.increment(); diff --git a/src/main/java/it/cavallium/dbengine/lucene/AlwaysDirectIOFSDirectory.java b/src/main/java/it/cavallium/dbengine/lucene/AlwaysDirectIOFSDirectory.java deleted file mode 100644 index e6bb6ee..0000000 --- a/src/main/java/it/cavallium/dbengine/lucene/AlwaysDirectIOFSDirectory.java +++ /dev/null @@ -1,24 +0,0 @@ -package it.cavallium.dbengine.lucene; - -import java.io.IOException; -import java.nio.file.Path; -import java.util.OptionalLong; -import org.apache.lucene.misc.store.DirectIODirectory; -import org.apache.lucene.store.FSDirectory; -import org.apache.lucene.store.IOContext; - -public class AlwaysDirectIOFSDirectory extends DirectIODirectory { - - public AlwaysDirectIOFSDirectory(Path path, int mergeBufferSize, long minBytesDirect) throws IOException { - super(FSDirectory.open(path), mergeBufferSize, minBytesDirect); - } - - public AlwaysDirectIOFSDirectory(Path path) throws IOException { - super(FSDirectory.open(path)); - } - - @Override - protected boolean useDirectIO(String name, IOContext context, OptionalLong fileLength) { - return true; - } -} diff --git a/src/main/java/it/cavallium/dbengine/lucene/mlt/BigCompositeReader.java b/src/main/java/it/cavallium/dbengine/lucene/mlt/BigCompositeReader.java index bd8ac70..bafecaa 100644 --- a/src/main/java/it/cavallium/dbengine/lucene/mlt/BigCompositeReader.java +++ b/src/main/java/it/cavallium/dbengine/lucene/mlt/BigCompositeReader.java @@ -69,7 +69,7 @@ public class BigCompositeReader { public static Collection getIndexedFields(BigCompositeReader readers) { return readers.subReadersList .stream() - .map(t -> t.getContext()) + .map(IndexReader::getContext) .flatMap(l -> l.leaves().stream()) .flatMap((l) -> StreamSupport .stream(l.reader().getFieldInfos().spliterator(), false) diff --git a/src/main/java/it/cavallium/dbengine/lucene/mlt/MultiMoreLikeThis.java b/src/main/java/it/cavallium/dbengine/lucene/mlt/MultiMoreLikeThis.java index 848f82e..3f658a4 100644 --- a/src/main/java/it/cavallium/dbengine/lucene/mlt/MultiMoreLikeThis.java +++ b/src/main/java/it/cavallium/dbengine/lucene/mlt/MultiMoreLikeThis.java @@ -86,11 +86,11 @@ import org.apache.lucene.util.PriorityQueue; *
  * IndexReader ir = ...
  * IndexSearcher is = ...
- *
+ * 

* MoreLikeThis mlt = new MoreLikeThis(ir); * Reader target = ... // orig source of doc you want to find similarities to * Query query = mlt.like( target); - * + *

* Hits hits = is.search(query); * // now the usual iteration thru 'hits' - the only thing to watch for is to make sure * //you ignore the doc if it matches your 'target' document, as it should be similar to itself diff --git a/src/main/java/it/cavallium/dbengine/lucene/searcher/AdaptiveLocalSearcher.java b/src/main/java/it/cavallium/dbengine/lucene/searcher/AdaptiveLocalSearcher.java index 86478f7..916cce0 100644 --- a/src/main/java/it/cavallium/dbengine/lucene/searcher/AdaptiveLocalSearcher.java +++ b/src/main/java/it/cavallium/dbengine/lucene/searcher/AdaptiveLocalSearcher.java @@ -42,7 +42,7 @@ public class AdaptiveLocalSearcher implements LocalSearcher { } @Override - public String getName() { + public String toString() { return "adaptivelocal"; } diff --git a/src/main/java/it/cavallium/dbengine/lucene/searcher/AdaptiveMultiSearcher.java b/src/main/java/it/cavallium/dbengine/lucene/searcher/AdaptiveMultiSearcher.java index 30c691f..da41025 100644 --- a/src/main/java/it/cavallium/dbengine/lucene/searcher/AdaptiveMultiSearcher.java +++ b/src/main/java/it/cavallium/dbengine/lucene/searcher/AdaptiveMultiSearcher.java @@ -78,7 +78,7 @@ public class AdaptiveMultiSearcher implements MultiSearcher { } @Override - public String getName() { + public String toString() { return "adaptive local"; } } diff --git a/src/main/java/it/cavallium/dbengine/lucene/searcher/CountMultiSearcher.java b/src/main/java/it/cavallium/dbengine/lucene/searcher/CountMultiSearcher.java index b8b4184..47a1e40 100644 --- a/src/main/java/it/cavallium/dbengine/lucene/searcher/CountMultiSearcher.java +++ b/src/main/java/it/cavallium/dbengine/lucene/searcher/CountMultiSearcher.java @@ -76,7 +76,7 @@ public class CountMultiSearcher implements MultiSearcher { } @Override - public String getName() { + public String toString() { return "count"; } } diff --git a/src/main/java/it/cavallium/dbengine/lucene/searcher/LocalSearcher.java b/src/main/java/it/cavallium/dbengine/lucene/searcher/LocalSearcher.java index 9f2ae00..0af0d6b 100644 --- a/src/main/java/it/cavallium/dbengine/lucene/searcher/LocalSearcher.java +++ b/src/main/java/it/cavallium/dbengine/lucene/searcher/LocalSearcher.java @@ -25,5 +25,6 @@ public interface LocalSearcher { * Get the name of this searcher type * @return searcher type name */ - String getName(); + @Override + String toString(); } diff --git a/src/main/java/it/cavallium/dbengine/lucene/searcher/PagedLocalSearcher.java b/src/main/java/it/cavallium/dbengine/lucene/searcher/PagedLocalSearcher.java index c5ad863..510d8f5 100644 --- a/src/main/java/it/cavallium/dbengine/lucene/searcher/PagedLocalSearcher.java +++ b/src/main/java/it/cavallium/dbengine/lucene/searcher/PagedLocalSearcher.java @@ -56,7 +56,7 @@ public class PagedLocalSearcher implements LocalSearcher { } @Override - public String getName() { + public String toString() { return "paged local"; } diff --git a/src/main/java/it/cavallium/dbengine/lucene/searcher/ScoredPagedMultiSearcher.java b/src/main/java/it/cavallium/dbengine/lucene/searcher/ScoredPagedMultiSearcher.java index 12c3485..76f99ad 100644 --- a/src/main/java/it/cavallium/dbengine/lucene/searcher/ScoredPagedMultiSearcher.java +++ b/src/main/java/it/cavallium/dbengine/lucene/searcher/ScoredPagedMultiSearcher.java @@ -214,7 +214,7 @@ public class ScoredPagedMultiSearcher implements MultiSearcher { } @Override - public String getName() { + public String toString() { return "scored paged multi"; } diff --git a/src/main/java/it/cavallium/dbengine/lucene/searcher/StandardSearcher.java b/src/main/java/it/cavallium/dbengine/lucene/searcher/StandardSearcher.java index 50770cc..638d787 100644 --- a/src/main/java/it/cavallium/dbengine/lucene/searcher/StandardSearcher.java +++ b/src/main/java/it/cavallium/dbengine/lucene/searcher/StandardSearcher.java @@ -131,7 +131,7 @@ public class StandardSearcher implements MultiSearcher { } @Override - public String getName() { + public String toString() { return "standard"; } } diff --git a/src/main/java/it/cavallium/dbengine/lucene/searcher/UnsortedStreamingMultiSearcher.java b/src/main/java/it/cavallium/dbengine/lucene/searcher/UnsortedStreamingMultiSearcher.java index dc170b7..37d75eb 100644 --- a/src/main/java/it/cavallium/dbengine/lucene/searcher/UnsortedStreamingMultiSearcher.java +++ b/src/main/java/it/cavallium/dbengine/lucene/searcher/UnsortedStreamingMultiSearcher.java @@ -67,7 +67,7 @@ public class UnsortedStreamingMultiSearcher implements MultiSearcher { } @Override - public String getName() { + public String toString() { return "unsorted streaming multi"; } } diff --git a/src/test/java/it/cavallium/dbengine/tests/SwappableLuceneSearcher.java b/src/test/java/it/cavallium/dbengine/tests/SwappableLuceneSearcher.java index e4d5deb..7530a25 100644 --- a/src/test/java/it/cavallium/dbengine/tests/SwappableLuceneSearcher.java +++ b/src/test/java/it/cavallium/dbengine/tests/SwappableLuceneSearcher.java @@ -1,7 +1,6 @@ package it.cavallium.dbengine.tests; import static java.util.Objects.requireNonNull; -import static java.util.Objects.requireNonNullElseGet; import it.cavallium.dbengine.database.LLKeyScore; import it.cavallium.dbengine.database.disk.LLIndexSearcher; @@ -42,17 +41,17 @@ public class SwappableLuceneSearcher implements LocalSearcher, MultiSearcher, Cl } @Override - public String getName() { + public String toString() { var single = this.single.get(); var multi = this.multi.get(); if (single == multi) { if (single == null) { return "swappable"; } else { - return single.getName(); + return single.toString(); } } else { - return "swappable[single=" + single.getName() + ",multi=" + multi.getName() + "]"; + return "swappable[single=" + single.toString() + ",multi=" + multi.toString() + "]"; } } diff --git a/src/test/java/it/cavallium/dbengine/tests/TestLuceneIndex.java b/src/test/java/it/cavallium/dbengine/tests/TestLuceneIndex.java index 35678c2..c9bbd0f 100644 --- a/src/test/java/it/cavallium/dbengine/tests/TestLuceneIndex.java +++ b/src/test/java/it/cavallium/dbengine/tests/TestLuceneIndex.java @@ -157,7 +157,7 @@ public class TestLuceneIndex { if (customSearcher instanceof MultiSearcher multiSearcher) { tempDb.swappableLuceneSearcher().setMulti(multiSearcher); } else { - throw new IllegalArgumentException("Expected a LuceneMultiSearcher, got a LuceneLocalSearcher: " + customSearcher.getName()); + throw new IllegalArgumentException("Expected a LuceneMultiSearcher, got a LuceneLocalSearcher: " + customSearcher.toString()); } } } else { diff --git a/src/test/java/it/cavallium/dbengine/tests/TestLuceneSearches.java b/src/test/java/it/cavallium/dbengine/tests/TestLuceneSearches.java index cb9f7d2..d84d111 100644 --- a/src/test/java/it/cavallium/dbengine/tests/TestLuceneSearches.java +++ b/src/test/java/it/cavallium/dbengine/tests/TestLuceneSearches.java @@ -170,7 +170,7 @@ public class TestLuceneSearches { throws Throwable { var searchers = getSearchers(expectedQueryType); for (LocalSearcher searcher : searchers) { - log.info("Using searcher \"{}\"", searcher.getName()); + log.info("Using searcher \"{}\"", searcher.toString()); consumer.accept(searcher); } } @@ -196,7 +196,7 @@ public class TestLuceneSearches { if (customSearcher instanceof MultiSearcher multiSearcher) { tempDb.swappableLuceneSearcher().setMulti(multiSearcher); } else { - throw new IllegalArgumentException("Expected a LuceneMultiSearcher, got a LuceneLocalSearcher: " + customSearcher.getName()); + throw new IllegalArgumentException("Expected a LuceneMultiSearcher, got a LuceneLocalSearcher: " + customSearcher.toString()); } } } else { diff --git a/src/test/java/it/cavallium/dbengine/tests/UnsortedUnscoredSimpleMultiSearcher.java b/src/test/java/it/cavallium/dbengine/tests/UnsortedUnscoredSimpleMultiSearcher.java index 95242cc..3270013 100644 --- a/src/test/java/it/cavallium/dbengine/tests/UnsortedUnscoredSimpleMultiSearcher.java +++ b/src/test/java/it/cavallium/dbengine/tests/UnsortedUnscoredSimpleMultiSearcher.java @@ -85,7 +85,7 @@ public class UnsortedUnscoredSimpleMultiSearcher implements MultiSearcher { } @Override - public String getName() { + public String toString() { return "unsorted unscored simple multi"; } }