From 66ff12264c05f296cd8bdf86b13b2ab8cea1f936 Mon Sep 17 00:00:00 2001 From: Arpit Bandejiya Date: Sun, 28 Sep 2025 10:21:34 +0530 Subject: [PATCH] Fix java docs Signed-off-by: Arpit Bandejiya --- .../processor/ApiAnnotationProcessor.java | 28 +-- .../execution/search/CatalogSearcher.java | 9 + .../execution/search/DataFormat.java | 6 + .../execution/search/IndexReader.java | 9 + .../execution/search/package-info.java | 12 ++ .../execution/search/spi/DataSourceCodec.java | 2 + .../datafusion/csv/CsvDataSourceCodec.java | 6 + .../csv/engine/exec/CsvDataFormat.java | 11 ++ .../datafusion/csv/engine/exec/CsvEngine.java | 33 ++++ .../csv/engine/exec/package-info.java | 12 ++ .../datafusion/DataFusionPlugin.java | 5 + .../datafusion/DataFusionQueryJNI.java | 18 ++ .../datafusion/DataFusionService.java | 12 ++ .../datafusion/DataSourceRegistry.java | 5 + .../datafusion/DatafusionEngine.java | 9 + .../DatafusionQueryPhaseSearcher.java | 9 +- .../datafusion/RecordBatchStream.java | 1 + .../core/DefaultRecordBatchStream.java | 1 + .../datafusion/core/GlobalRuntimeEnv.java | 1 + .../datafusion/search/DatafusionContext.java | 161 ++++++++++++++++++ .../datafusion/search/DatafusionQuery.java | 19 +++ .../search/DatafusionQueryPhaseExecutor.java | 14 ++ .../datafusion/search/DatafusionReader.java | 33 +++- .../search/DatafusionReaderManager.java | 6 + .../datafusion/search/DatafusionSearcher.java | 8 + .../search/DatafusionSearcherSupplier.java | 5 + .../datafusion/search/SearchExecutor.java | 9 +- .../search/SearchResultIterator.java | 4 +- .../datafusion/search/package-info.java | 12 ++ .../wlm/spi/CatalogSnapshotMetadata.java | 52 +++--- .../CatalogSnapshotAwareRefreshListener.java | 3 + .../index/engine/DataFormatPlugin.java | 3 + .../opensearch/index/engine/EngineLucene.java | 1 + .../index/engine/EngineReaderManager.java | 1 + .../index/engine/EngineSearcher.java | 7 +- .../index/engine/EngineSearcherSupplier.java | 3 + .../index/engine/LuceneReaderManager.java | 1 + .../index/engine/SearcherOperations.java | 1 + .../index/engine/exec/DataFormat.java | 6 + .../index/engine/exec/DocumentInput.java | 5 + .../index/engine/exec/FileMetadata.java | 9 + .../opensearch/index/engine/exec/FlushIn.java | 1 + .../engine/exec/IndexingExecutionEngine.java | 1 + .../index/engine/exec/RefreshInput.java | 1 + .../index/engine/exec/RefreshResult.java | 1 + .../index/engine/exec/WriteResult.java | 12 ++ .../opensearch/index/engine/exec/Writer.java | 5 + .../composite/CompositeDataFormatWriter.java | 4 + .../CompositeIndexingExecutionEngine.java | 1 + .../engine/exec/composite/package-info.java | 12 ++ .../index/engine/exec/coord/Any.java | 1 + .../engine/exec/coord/CatalogSnapshot.java | 3 + .../engine/exec/coord/CompositeEngine.java | 6 + .../engine/exec/coord/DocumentWriterPool.java | 1 + .../coord/IndexingExecutionCoordinator.java | 2 + .../index/engine/exec/coord/WriterPool.java | 1 + .../index/engine/exec/coord/package-info.java | 12 ++ .../index/engine/exec/package-info.java | 12 ++ .../index/engine/exec/text/TextDF.java | 1 + .../index/engine/exec/text/TextEngine.java | 3 + .../index/engine/exec/text/package-info.java | 12 ++ .../opensearch/plugins/DataSourcePlugin.java | 3 + .../plugins/SearchEnginePlugin.java | 5 + 63 files changed, 604 insertions(+), 48 deletions(-) create mode 100644 libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/package-info.java create mode 100644 plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/engine/exec/package-info.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/package-info.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/composite/package-info.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/coord/package-info.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/package-info.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/text/package-info.java diff --git a/libs/common/src/main/java/org/opensearch/common/annotation/processor/ApiAnnotationProcessor.java b/libs/common/src/main/java/org/opensearch/common/annotation/processor/ApiAnnotationProcessor.java index 5f419ce621e24..94ec0db3a9712 100644 --- a/libs/common/src/main/java/org/opensearch/common/annotation/processor/ApiAnnotationProcessor.java +++ b/libs/common/src/main/java/org/opensearch/common/annotation/processor/ApiAnnotationProcessor.java @@ -85,20 +85,20 @@ public boolean process(Set annotations, RoundEnvironment Set.of(PublicApi.class, ExperimentalApi.class, DeprecatedApi.class) ); -// for (var element : elements) { -// validate(element); -// -// if (!checkPackage(element)) { -// continue; -// } -// -// // Skip all not-public elements -// checkPublicVisibility(null, element); -// -// if (element instanceof TypeElement) { -// process((TypeElement) element); -// } -// } + for (var element : elements) { + validate(element); + + if (!checkPackage(element)) { + continue; + } + + // Skip all not-public elements + checkPublicVisibility(null, element); + + if (element instanceof TypeElement) { + process((TypeElement) element); + } + } return false; } diff --git a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/CatalogSearcher.java b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/CatalogSearcher.java index 138d232590871..2e2aa271da02c 100644 --- a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/CatalogSearcher.java +++ b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/CatalogSearcher.java @@ -8,5 +8,14 @@ package org.opensearch.vectorized.execution.search; +/** + * Provides search capabilities across vectorized execution catalogs. + */ public class CatalogSearcher { + + /** + * Creates a new CatalogSearcher. + */ + public CatalogSearcher() { + } } diff --git a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/DataFormat.java b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/DataFormat.java index c85e889bb364b..12a9071ed3887 100644 --- a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/DataFormat.java +++ b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/DataFormat.java @@ -10,8 +10,14 @@ import org.opensearch.common.annotation.ExperimentalApi; +/** + DataFormat supported by OpenSearch + */ @ExperimentalApi public enum DataFormat { + /** CSV Format*/ CSV, + + /** Text Format */ Text } diff --git a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/IndexReader.java b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/IndexReader.java index d50616ea8a662..3bdd4b37d7c58 100644 --- a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/IndexReader.java +++ b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/IndexReader.java @@ -8,5 +8,14 @@ package org.opensearch.vectorized.execution.search; +/** + * Provides read access to vectorized execution indices. + */ public class IndexReader { + + /** + * Creates a new IndexReader. + */ + public IndexReader() { + } } diff --git a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/package-info.java b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/package-info.java new file mode 100644 index 0000000000000..1ba63c3251119 --- /dev/null +++ b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/package-info.java @@ -0,0 +1,12 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +/** + * Vectorized execution search components. + */ +package org.opensearch.vectorized.execution.search; \ No newline at end of file diff --git a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/spi/DataSourceCodec.java b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/spi/DataSourceCodec.java index e58f0a7e5bba0..d19ce33036776 100644 --- a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/spi/DataSourceCodec.java +++ b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/spi/DataSourceCodec.java @@ -8,6 +8,7 @@ package org.opensearch.vectorized.execution.search.spi; +import org.opensearch.common.annotation.ExperimentalApi; import org.opensearch.vectorized.execution.search.DataFormat; import java.util.List; @@ -18,6 +19,7 @@ * Implementations provide access to different data formats (CSV, Parquet, etc.) * through the DataFusion query engine. */ +@ExperimentalApi public interface DataSourceCodec { /** diff --git a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataSourceCodec.java b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataSourceCodec.java index ed8177b4fe01f..51e2864cfc8d8 100644 --- a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataSourceCodec.java +++ b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataSourceCodec.java @@ -25,6 +25,12 @@ */ public class CsvDataSourceCodec implements DataSourceCodec { + /** + * Creates a new CsvDataSourceCodec. + */ + public CsvDataSourceCodec() { + } + private static final Logger logger = LogManager.getLogger(CsvDataSourceCodec.class); private static final AtomicLong runtimeIdGenerator = new AtomicLong(0); private static final AtomicLong sessionIdGenerator = new AtomicLong(0); diff --git a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/engine/exec/CsvDataFormat.java b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/engine/exec/CsvDataFormat.java index b90e2f9f73723..e98493c98f523 100644 --- a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/engine/exec/CsvDataFormat.java +++ b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/engine/exec/CsvDataFormat.java @@ -12,7 +12,18 @@ import org.opensearch.common.settings.Settings; import org.opensearch.index.engine.exec.DataFormat; +/** + * CSV data format implementation. + */ public class CsvDataFormat implements DataFormat { + + /** + * Creates a new CSV data format. + */ + public CsvDataFormat() { + // Default constructor + } + @Override public Setting dataFormatSettings() { return null; diff --git a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/engine/exec/CsvEngine.java b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/engine/exec/CsvEngine.java index 28254c0463dad..be278a97f2903 100644 --- a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/engine/exec/CsvEngine.java +++ b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/engine/exec/CsvEngine.java @@ -30,6 +30,9 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicLong; +/** + * CSV indexing execution engine. + */ public class CsvEngine implements IndexingExecutionEngine { private final AtomicLong counter = new AtomicLong(); @@ -37,6 +40,13 @@ public class CsvEngine implements IndexingExecutionEngine { private List openFiles = new ArrayList<>(); static CsvDataFormat CSV = new CsvDataFormat(); + /** + * Creates a new CSV indexing execution engine. + */ + public CsvEngine() { + // Default constructor + } + @Override public List supportedFieldTypes() { return List.of(); @@ -60,10 +70,18 @@ public RefreshResult refresh(RefreshInput refreshInput) throws IOException { return refreshResult; } + /** + * CSV document input. + */ public static class CsvInput implements DocumentInput { private final List values = new ArrayList<>(); private final CsvWriter writer; + /** + * Creates a new CsvInput. + * + * @param writer the CSV writer + */ public CsvInput(CsvWriter writer) { this.writer = writer; } @@ -93,6 +111,9 @@ public void close() throws Exception { } } + /** + * CSV writer implementation. + */ public static class CsvWriter implements Writer { private final StringBuilder sb = new StringBuilder(); private final File currentFile; @@ -100,6 +121,13 @@ public static class CsvWriter implements Writer { private final Runnable onClose; private boolean headerWritten = false; + /** + * Creates a new CsvWriter. + * + * @param currentFile the file name + * @param engine the CSV engine + * @throws IOException if an I/O error occurs + */ public CsvWriter(String currentFile, CsvEngine engine) throws IOException { this.currentFile = new File("/Users/gbh/" + currentFile); this.currentFile.createNewFile(); @@ -149,6 +177,11 @@ public CsvInput newDocumentInput() { return new CsvInput(this); } + /** + * Writes CSV headers. + * + * @param headers the header list + */ public void writeHeaders(List headers) { if (!headerWritten) { String headerLine = String.join(",", headers) + "\n"; diff --git a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/engine/exec/package-info.java b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/engine/exec/package-info.java new file mode 100644 index 0000000000000..176279fba0ef9 --- /dev/null +++ b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/engine/exec/package-info.java @@ -0,0 +1,12 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +/** + * CSV engine execution components. + */ +package org.opensearch.datafusion.csv.engine.exec; \ No newline at end of file diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java index 7f794167a7cef..a3d6a24f0186b 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java @@ -82,6 +82,7 @@ public DataFusionPlugin(Settings settings) { * @param namedWriteableRegistry The named writeable registry. * @param indexNameExpressionResolver The index name expression resolver instance. * @param repositoriesServiceSupplier The supplier for the repositories service. + * @param dataSourceCodecs The data source codecs map. * @return Collection of created components */ @Override @@ -118,6 +119,10 @@ public List getSupportedFormats() { /** * Create engine per shard per format with initial view of catalog + * @param dataFormat The data format + * @param formatCatalogSnapshot The format catalog snapshot + * @return The search execution engine + * @throws IOException If an I/O error occurs */ // TODO : one engine per format, does that make sense ? // TODO : Engine shouldn't just be SearcherOperations, it can be more ? diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java index 6cdc09bd040f7..12625c47cccf0 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java @@ -79,6 +79,11 @@ private static synchronized void loadNativeLibrary() { */ public static native long createGlobalRuntime(); + /** + * Creates a Tokio runtime. + * + * @return the runtime pointer + */ public static native long createTokioRuntime(); /** @@ -111,12 +116,25 @@ private static synchronized void loadNativeLibrary() { * Execute a Substrait query plan * @param cachePtr the session context ID * @param substraitPlan the serialized Substrait query plan + * @param runtimePtr the runtime pointer * @return stream pointer for result iteration */ public static native long executeSubstraitQuery(long cachePtr, byte[] substraitPlan, long runtimePtr); + /** + * Creates a DataFusion reader. + * + * @param path the directory path + * @param files the file names + * @return the reader pointer + */ public static native long createDatafusionReader(String path, String[] files); + /** + * Closes a DataFusion reader. + * + * @param ptr the reader pointer + */ public static native void closeDatafusionReader(long ptr); /** diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java index 9548ced599723..f13ff853c3436 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java @@ -35,6 +35,8 @@ public class DataFusionService extends AbstractLifecycleComponent { /** * Creates a new DataFusion service instance. + * + * @param dataSourceCodecs the data source codecs map */ public DataFusionService(Map dataSourceCodecs) { this.dataSourceRegistry = new DataSourceRegistry(dataSourceCodecs); @@ -161,10 +163,20 @@ public CompletableFuture executeSubstraitQuery(long sessionCo return engine.executeSubstraitQuery(sessionContextId, substraitPlanBytes); } + /** + * Gets the runtime pointer. + * + * @return the runtime pointer + */ public long getRuntimePointer() { return globalRuntimeEnv.getPointer(); } + /** + * Gets the Tokio runtime pointer. + * + * @return the Tokio runtime pointer + */ public long getTokioRuntimePointer() { return globalRuntimeEnv.getTokioRuntimePtr(); } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataSourceRegistry.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataSourceRegistry.java index 1d274116aac94..5d8a9bac23d9b 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataSourceRegistry.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataSourceRegistry.java @@ -27,6 +27,11 @@ public class DataSourceRegistry { private final ConcurrentHashMap codecs = new ConcurrentHashMap<>(); + /** + * Creates a new DataSourceRegistry. + * + * @param dataSourceCodecMap the data source codec map + */ public DataSourceRegistry(Map dataSourceCodecMap) { codecs.putAll(dataSourceCodecMap); } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java index 2381322d76bf4..dc7ef2b75ff94 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java @@ -45,6 +45,9 @@ import java.util.Map; import java.util.function.Function; +/** + * DataFusion search execution engine. + */ public class DatafusionEngine extends SearchExecEngine { @@ -54,6 +57,12 @@ public class DatafusionEngine extends SearchExecEngine formatCatalogSnapshot, DataFusionService dataFusionService) throws IOException { this.dataFormat = dataFormat; this.datafusionReaderManager = new DatafusionReaderManager("TODO://FigureOutPath", formatCatalogSnapshot); diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionQueryPhaseSearcher.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionQueryPhaseSearcher.java index a9253f9e9d3b2..c44dadcd0575f 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionQueryPhaseSearcher.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionQueryPhaseSearcher.java @@ -15,11 +15,16 @@ import java.util.ArrayList; /** - * DataFusion-specific query phase searcher using Substrait queries - * + * DataFusion-specific query phase searcher using Substrait queries. */ public class DatafusionQueryPhaseSearcher implements GenericQueryPhaseSearcher { + /** + * Creates a new DatafusionQueryPhaseSearcher. + */ + public DatafusionQueryPhaseSearcher() { + } + // How to pass table providers that search other engines such as Lucene ? @Override public boolean searchWith( diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/RecordBatchStream.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/RecordBatchStream.java index ea90468215012..f7a600bd3de88 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/RecordBatchStream.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/RecordBatchStream.java @@ -39,6 +39,7 @@ public class RecordBatchStream { /** * Creates a new RecordBatchStream for the given stream pointer * @param streamId the stream pointer + * @param runtimePtr the runtime pointer * @param allocator memory allocator for Arrow vectors */ public RecordBatchStream(long streamId, long runtimePtr, BufferAllocator allocator) { diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/DefaultRecordBatchStream.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/DefaultRecordBatchStream.java index 5603660ed760a..be661871f59b8 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/DefaultRecordBatchStream.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/DefaultRecordBatchStream.java @@ -14,6 +14,7 @@ import java.util.concurrent.CompletableFuture; +/** Default record batch stream */ public class DefaultRecordBatchStream implements RecordBatchStream { private static final Logger logger = LogManager.getLogger(DefaultRecordBatchStream.class); diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/GlobalRuntimeEnv.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/GlobalRuntimeEnv.java index 547539d5ff4d1..1c7b17634a24a 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/GlobalRuntimeEnv.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/GlobalRuntimeEnv.java @@ -37,6 +37,7 @@ public long getPointer() { return ptr; } + /** Gets the Tokio runtime pointer */ public long getTokioRuntimePtr() { return tokio_runtime_ptr; } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java index aaf44d6d9f7ee..46d7a33e5b43d 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java @@ -70,6 +70,13 @@ public class DatafusionContext extends SearchContext { private final DatafusionSearcher engineSearcher; private DatafusionQuery datafusionQuery; + /** + * Constructor + * @param readerContext The reader context + * @param request The shard search request + * @param task The search shard task + * @param engine The datafusion engine + */ public DatafusionContext( ReaderContext readerContext, ShardSearchRequest request, @@ -82,22 +89,42 @@ public DatafusionContext( this.engineSearcher = engine.acquireSearcher("search");//null;//TODO readerContext.contextEngineSearcher(); } + /** + * Gets the read engine + * @return The datafusion engine + */ public DatafusionEngine readEngine() { return readEngine; } + /** + * Sets datafusion query + * @param datafusionQuery The datafusion query + */ public DatafusionContext datafusionQuery(DatafusionQuery datafusionQuery) { this.datafusionQuery = datafusionQuery; return this; } + /** + * Gets the datafusion query + * @return The datafusion query + */ public DatafusionQuery getDatafusionQuery() { return datafusionQuery; } + /** + * Gets the engine searcher + * @return The datafusion searcher + */ public DatafusionSearcher getEngineSearcher() { return engineSearcher; } + /** + * {@inheritDoc} + * @param task The search shard task + */ @Override public void setTask(SearchShardTask task) { @@ -118,11 +145,19 @@ protected void doClose() { } + /** + * {@inheritDoc} + * @param rewrite Whether to rewrite + */ @Override public void preProcess(boolean rewrite) { } + /** + * {@inheritDoc} + * @param query The query + */ @Override public Query buildFilteredQuery(Query query) { return null; @@ -173,16 +208,28 @@ public SearchContextAggregations aggregations() { return null; } + /** + * {@inheritDoc} + * @param aggregations The search context aggregations + */ @Override public SearchContext aggregations(SearchContextAggregations aggregations) { return null; } + /** + * {@inheritDoc} + * @param searchExtBuilder The search extension builder + */ @Override public void addSearchExt(SearchExtBuilder searchExtBuilder) { } + /** + * {@inheritDoc} + * @param name The name + */ @Override public SearchExtBuilder getSearchExt(String name) { return null; @@ -193,6 +240,10 @@ public SearchHighlightContext highlight() { return null; } + /** + * {@inheritDoc} + * @param highlight The search highlight context + */ @Override public void highlight(SearchHighlightContext highlight) { @@ -203,6 +254,10 @@ public SuggestionSearchContext suggest() { return null; } + /** + * {@inheritDoc} + * @param suggest The suggestion search context + */ @Override public void suggest(SuggestionSearchContext suggest) { @@ -213,6 +268,10 @@ public List rescore() { return List.of(); } + /** + * {@inheritDoc} + * @param rescore The rescore context + */ @Override public void addRescore(RescoreContext rescore) { @@ -243,6 +302,10 @@ public FetchSourceContext fetchSourceContext() { return null; } + /** + * {@inheritDoc} + * @param fetchSourceContext The fetch source context + */ @Override public SearchContext fetchSourceContext(FetchSourceContext fetchSourceContext) { return null; @@ -253,6 +316,10 @@ public FetchDocValuesContext docValuesContext() { return null; } + /** + * {@inheritDoc} + * @param docValuesContext The fetch doc values context + */ @Override public SearchContext docValuesContext(FetchDocValuesContext docValuesContext) { return null; @@ -263,6 +330,10 @@ public FetchFieldsContext fetchFieldsContext() { return null; } + /** + * {@inheritDoc} + * @param fetchFieldsContext The fetch fields context + */ @Override public SearchContext fetchFieldsContext(FetchFieldsContext fetchFieldsContext) { return null; @@ -303,6 +374,10 @@ public TimeValue timeout() { return null; } + /** + * {@inheritDoc} + * @param timeout The timeout value + */ @Override public void timeout(TimeValue timeout) { @@ -313,6 +388,10 @@ public int terminateAfter() { return 0; } + /** + * {@inheritDoc} + * @param terminateAfter The terminate after value + */ @Override public void terminateAfter(int terminateAfter) { @@ -323,6 +402,10 @@ public boolean lowLevelCancellation() { return false; } + /** + * {@inheritDoc} + * @param minimumScore The minimum score + */ @Override public SearchContext minimumScore(float minimumScore) { return null; @@ -333,6 +416,10 @@ public Float minimumScore() { return 0f; } + /** + * {@inheritDoc} + * @param sort The sort and formats + */ @Override public SearchContext sort(SortAndFormats sort) { return null; @@ -343,6 +430,10 @@ public SortAndFormats sort() { return null; } + /** + * {@inheritDoc} + * @param trackScores Whether to track scores + */ @Override public SearchContext trackScores(boolean trackScores) { return null; @@ -353,6 +444,10 @@ public boolean trackScores() { return false; } + /** + * {@inheritDoc} + * @param trackTotalHits The track total hits value + */ @Override public SearchContext trackTotalHitsUpTo(int trackTotalHits) { return null; @@ -364,6 +459,10 @@ public int trackTotalHitsUpTo() { } @Override + /** + * {@inheritDoc} + * @param searchAfter The field doc for search after + */ public SearchContext searchAfter(FieldDoc searchAfter) { return null; } @@ -374,6 +473,10 @@ public FieldDoc searchAfter() { } @Override + /** + * {@inheritDoc} + * @param collapse The collapse context + */ public SearchContext collapse(CollapseContext collapse) { return null; } @@ -384,6 +487,10 @@ public CollapseContext collapse() { } @Override + /** + * {@inheritDoc} + * @param postFilter The parsed post filter query + */ public SearchContext parsedPostFilter(ParsedQuery postFilter) { return null; } @@ -399,6 +506,10 @@ public Query aliasFilter() { } @Override + /** + * {@inheritDoc} + * @param query The parsed query + */ public SearchContext parsedQuery(ParsedQuery query) { return null; } @@ -419,6 +530,10 @@ public int from() { return 0; } + /** + * {@inheritDoc} + * @param from The from value + */ @Override public SearchContext from(int from) { return null; @@ -429,6 +544,10 @@ public int size() { return 0; } + /** + * {@inheritDoc} + * @param size The size value + */ @Override public SearchContext size(int size) { return null; @@ -454,6 +573,10 @@ public StoredFieldsContext storedFieldsContext() { return null; } + /** + * {@inheritDoc} + * @param storedFieldsContext The stored fields context + */ @Override public SearchContext storedFieldsContext(StoredFieldsContext storedFieldsContext) { return null; @@ -464,6 +587,10 @@ public boolean explain() { return false; } + /** + * {@inheritDoc} + * @param explain Whether to explain + */ @Override public void explain(boolean explain) { @@ -474,6 +601,10 @@ public List groupStats() { return List.of(); } + /** + * {@inheritDoc} + * @param groupStats The group stats + */ @Override public void groupStats(List groupStats) { @@ -484,6 +615,10 @@ public boolean version() { return false; } + /** + * {@inheritDoc} + * @param version Whether to include version + */ @Override public void version(boolean version) { @@ -494,6 +629,10 @@ public boolean seqNoAndPrimaryTerm() { return false; } + /** + * {@inheritDoc} + * @param seqNoAndPrimaryTerm Whether to include sequence number and primary term + */ @Override public void seqNoAndPrimaryTerm(boolean seqNoAndPrimaryTerm) { @@ -514,6 +653,12 @@ public int docIdsToLoadSize() { return 0; } + /** + * {@inheritDoc} + * @param docIdsToLoad The document IDs to load + * @param docsIdsToLoadFrom The starting index for document IDs to load + * @param docsIdsToLoadSize The size of document IDs to load + */ @Override public SearchContext docIdsToLoad(int[] docIdsToLoad, int docsIdsToLoadFrom, int docsIdsToLoadSize) { return null; @@ -544,11 +689,19 @@ public Profilers getProfilers() { return null; } + /** + * {@inheritDoc} + * @param name The field name + */ @Override public MappedFieldType fieldType(String name) { return null; } + /** + * {@inheritDoc} + * @param name The object mapper name + */ @Override public ObjectMapper getObjectMapper(String name) { return null; @@ -579,6 +732,10 @@ public InternalAggregation.ReduceContext partialOnShard() { return null; } + /** + * {@inheritDoc} + * @param bucketCollectorProcessor The bucket collector processor + */ @Override public void setBucketCollectorProcessor(BucketCollectorProcessor bucketCollectorProcessor) { @@ -599,6 +756,10 @@ public boolean shouldUseTimeSeriesDescSortOptimization() { return false; } + /** + * Gets the context engine searcher + * @return The context engine searcher + */ public ContextEngineSearcher contextEngineSearcher() { return new ContextEngineSearcher<>(this.engineSearcher, this); } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQuery.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQuery.java index 7c266b21a8e06..1456f706d51c6 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQuery.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQuery.java @@ -11,21 +11,40 @@ import java.util.Iterator; import java.util.List; +/** + * Query representation for DataFusion execution. + */ public class DatafusionQuery { private final byte[] substraitBytes; // List of Search executors which returns a result iterator which contains row id which can be joined in datafusion private final List searchExecutors; + /** + * Creates a new DatafusionQuery. + * + * @param substraitBytes the Substrait query bytes + * @param searchExecutors the search executors + */ public DatafusionQuery(byte[] substraitBytes, List searchExecutors) { this.substraitBytes = substraitBytes; this.searchExecutors = searchExecutors; } + /** + * Gets the Substrait query bytes. + * + * @return the Substrait bytes + */ public byte[] getSubstraitBytes() { return substraitBytes; } + /** + * Gets the search executors. + * + * @return the search executors + */ public List getSearchExecutors() { return searchExecutors; } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQueryPhaseExecutor.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQueryPhaseExecutor.java index 8de7c7e397715..18884b5a88b07 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQueryPhaseExecutor.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQueryPhaseExecutor.java @@ -23,6 +23,16 @@ */ public class DatafusionQueryPhaseExecutor implements QueryPhaseExecutor { + /** + * Constructor + */ + public DatafusionQueryPhaseExecutor() { + } + + /** + * {@inheritDoc} + * @param context The datafusion context + */ @Override public boolean execute(DatafusionContext context) throws QueryPhaseExecutionException { if (!canHandle(context)) { @@ -40,6 +50,10 @@ public boolean execute(DatafusionContext context) throws QueryPhaseExecutionExce return queryPhase.executeInternal(context, context.getEngineSearcher(), query); } + /** + * {@inheritDoc} + * @param context The datafusion context + */ @Override public boolean canHandle(DatafusionContext context) { return context != null && diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java index 83792cc8f7287..435d4a7b481b6 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java @@ -19,15 +19,29 @@ import static org.opensearch.datafusion.DataFusionQueryJNI.closeDatafusionReader; -// JNI from java to rust -// substrait -// Harcode --> file --> register as the table with the same name +/** + * DataFusion reader for JNI operations. + */ public class DatafusionReader implements Closeable { + /** + * The directory path. + */ public String directoryPath; + /** + * The file metadata collection. + */ public Collection files; + /** + * The cache pointer. + */ public long cachePtr; private AtomicInteger refCount = new AtomicInteger(0); + /** + * Constructor + * @param directoryPath The directory path + * @param files The file metadata collection + */ public DatafusionReader(String directoryPath, Collection files) { this.directoryPath = directoryPath; this.files = files; @@ -36,14 +50,27 @@ public DatafusionReader(String directoryPath, Collection files) { incRef(); } + /** + * Gets the cache pointer. + * + * @return the cache pointer + */ public long getCachePtr() { return cachePtr; } + /** + * Increments the reference count. + */ public void incRef() { refCount.getAndIncrement(); } + /** + * Decrements the reference count. + * + * @throws IOException if an I/O error occurs + */ public void decRef() throws IOException { if(refCount.get() == 0) { throw new IllegalStateException("Listing table has been already closed"); diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager.java index a48e697d6fd16..5c7314ef5c3b5 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager.java @@ -22,6 +22,7 @@ import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; +/** Datafusion reader manager */ public class DatafusionReaderManager implements EngineReaderManager, CatalogSnapshotAwareRefreshListener { private DatafusionReader current; private String path; @@ -29,6 +30,11 @@ public class DatafusionReaderManager implements EngineReaderManager refreshListeners = new CopyOnWriteArrayList(); + /** + * Constructor + * @param path The path string + * @param files The file metadata collection + */ public DatafusionReaderManager(String path, Collection files) throws IOException { this.current = new DatafusionReader(path, files); this.path = path; diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java index 53b1db13bdd12..509f3ca465115 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java @@ -22,10 +22,17 @@ import java.util.List; import java.util.concurrent.CompletableFuture; +/** Datafusion searcher */ public class DatafusionSearcher implements EngineSearcher { private final String source; private DatafusionReader reader; private Closeable closeable; + /** + * Constructor + * @param source The source string + * @param reader The datafusion reader + * @param close The closeable resource + */ public DatafusionSearcher(String source, DatafusionReader reader, Closeable close) { this.source = source; this.reader = reader; @@ -54,6 +61,7 @@ public long search(DatafusionQuery datafusionQuery, Long contextPtr) { return DataFusionQueryJNI.executeSubstraitQuery(reader.getCachePtr(), datafusionQuery.getSubstraitBytes(), contextPtr); } + /** Gets the reader */ public DatafusionReader getReader() { return reader; } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcherSupplier.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcherSupplier.java index 6ff7526b0fdea..13ad69880d02c 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcherSupplier.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcherSupplier.java @@ -17,11 +17,16 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.Function; +/** Datafusion searcher supplier */ public abstract class DatafusionSearcherSupplier extends EngineSearcherSupplier { private final Function wrapper; private final AtomicBoolean released = new AtomicBoolean(false); + /** + * Constructor + * @param wrapper The wrapper function for datafusion searcher + */ public DatafusionSearcherSupplier(Function wrapper) { this.wrapper = wrapper; } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/SearchExecutor.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/SearchExecutor.java index ff3b5953c119e..7bbe5cc3564fe 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/SearchExecutor.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/SearchExecutor.java @@ -8,8 +8,15 @@ package org.opensearch.datafusion.search; -// Functional interface to execute search and get iterator +/** + * Functional interface to execute search and get iterator. + */ @FunctionalInterface public interface SearchExecutor { + /** + * Executes the search. + * + * @return the search result iterator + */ SearchResultIterator execute(); } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/SearchResultIterator.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/SearchResultIterator.java index 27fe2d54f76d9..eeba2426a484f 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/SearchResultIterator.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/SearchResultIterator.java @@ -10,7 +10,9 @@ import java.util.Iterator; -// Interface for the iterator that Datafusion expects +/** + * Interface for the iterator that DataFusion expects. + */ public interface SearchResultIterator extends Iterator { // Basic Iterator methods boolean hasNext(); diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/package-info.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/package-info.java new file mode 100644 index 0000000000000..c2b028864c446 --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/package-info.java @@ -0,0 +1,12 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +/** + * DataFusion search components. + */ +package org.opensearch.datafusion.search; \ No newline at end of file diff --git a/plugins/workload-management/wlm-spi/src/main/java/org/opensearch/plugin/wlm/spi/CatalogSnapshotMetadata.java b/plugins/workload-management/wlm-spi/src/main/java/org/opensearch/plugin/wlm/spi/CatalogSnapshotMetadata.java index 618d8a42d6dc5..d79171ae53045 100644 --- a/plugins/workload-management/wlm-spi/src/main/java/org/opensearch/plugin/wlm/spi/CatalogSnapshotMetadata.java +++ b/plugins/workload-management/wlm-spi/src/main/java/org/opensearch/plugin/wlm/spi/CatalogSnapshotMetadata.java @@ -1,26 +1,26 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package org.opensearch.index.engine.exec.coord; - -import org.opensearch.index.engine.exec.FileMetadata; - -import java.util.Collection; - -public class CatalogSnapshotMetadata { - Collection files; - String path; - - public Collection getFiles() { - return files; - } - - public String getPath() { - return path; - } -} +///* +// * SPDX-License-Identifier: Apache-2.0 +// * +// * The OpenSearch Contributors require contributions made to +// * this file be licensed under the Apache-2.0 license or a +// * compatible open source license. +// */ +// +//package org.opensearch.index.engine.exec.coord; +// +//import org.opensearch.index.engine.exec.FileMetadata; +// +//import java.util.Collection; +// +//public class CatalogSnapshotMetadata { +// Collection files; +// String path; +// +// public Collection getFiles() { +// return files; +// } +// +// public String getPath() { +// return path; +// } +//} diff --git a/server/src/main/java/org/opensearch/index/engine/CatalogSnapshotAwareRefreshListener.java b/server/src/main/java/org/opensearch/index/engine/CatalogSnapshotAwareRefreshListener.java index 11c0ce293eae9..70f789bf491d8 100644 --- a/server/src/main/java/org/opensearch/index/engine/CatalogSnapshotAwareRefreshListener.java +++ b/server/src/main/java/org/opensearch/index/engine/CatalogSnapshotAwareRefreshListener.java @@ -12,6 +12,9 @@ import java.io.IOException; +/** + * Listener for catalog snapshot aware refresh operations. + */ public interface CatalogSnapshotAwareRefreshListener { /** * Called before refresh operation. diff --git a/server/src/main/java/org/opensearch/index/engine/DataFormatPlugin.java b/server/src/main/java/org/opensearch/index/engine/DataFormatPlugin.java index 6cdb6870d7e68..db9ad52c618ad 100644 --- a/server/src/main/java/org/opensearch/index/engine/DataFormatPlugin.java +++ b/server/src/main/java/org/opensearch/index/engine/DataFormatPlugin.java @@ -13,6 +13,9 @@ import javax.xml.crypto.Data; +/** + * Plugin interface for data format implementations. + */ public interface DataFormatPlugin { IndexingExecutionEngine indexingEngine(); diff --git a/server/src/main/java/org/opensearch/index/engine/EngineLucene.java b/server/src/main/java/org/opensearch/index/engine/EngineLucene.java index f12f8cda0555e..c23682438a2c2 100644 --- a/server/src/main/java/org/opensearch/index/engine/EngineLucene.java +++ b/server/src/main/java/org/opensearch/index/engine/EngineLucene.java @@ -14,6 +14,7 @@ import java.util.function.Function; // Dummy impl +/** Engine Lucene */ public class EngineLucene implements SearcherOperations>{ @Override public EngineSearcherSupplier acquireSearcherSupplier(Function wrapper) throws EngineException { diff --git a/server/src/main/java/org/opensearch/index/engine/EngineReaderManager.java b/server/src/main/java/org/opensearch/index/engine/EngineReaderManager.java index 992e835a5204d..ae14bb1584df0 100644 --- a/server/src/main/java/org/opensearch/index/engine/EngineReaderManager.java +++ b/server/src/main/java/org/opensearch/index/engine/EngineReaderManager.java @@ -12,6 +12,7 @@ import java.io.IOException; +/** Engine reader manager */ public interface EngineReaderManager { T acquire() throws IOException; diff --git a/server/src/main/java/org/opensearch/index/engine/EngineSearcher.java b/server/src/main/java/org/opensearch/index/engine/EngineSearcher.java index 7471fd3fbeb5f..828731993051f 100644 --- a/server/src/main/java/org/opensearch/index/engine/EngineSearcher.java +++ b/server/src/main/java/org/opensearch/index/engine/EngineSearcher.java @@ -16,8 +16,13 @@ import java.io.UnsupportedEncodingException; import java.util.List; +/** + * Engine searcher interface for query execution. + * + * @param query type + * @param collector type + */ @ExperimentalApi -// TODO make this generic type public interface EngineSearcher extends Releasable { /** diff --git a/server/src/main/java/org/opensearch/index/engine/EngineSearcherSupplier.java b/server/src/main/java/org/opensearch/index/engine/EngineSearcherSupplier.java index df66b5265ce9e..98189d75000b7 100644 --- a/server/src/main/java/org/opensearch/index/engine/EngineSearcherSupplier.java +++ b/server/src/main/java/org/opensearch/index/engine/EngineSearcherSupplier.java @@ -14,6 +14,9 @@ import java.util.concurrent.atomic.AtomicBoolean; +/** + * Engine searcher supplier + */ @ExperimentalApi public abstract class EngineSearcherSupplier implements Releasable { private final AtomicBoolean released = new AtomicBoolean(false); diff --git a/server/src/main/java/org/opensearch/index/engine/LuceneReaderManager.java b/server/src/main/java/org/opensearch/index/engine/LuceneReaderManager.java index b3d2fe19b1b9d..61c293c5db81f 100644 --- a/server/src/main/java/org/opensearch/index/engine/LuceneReaderManager.java +++ b/server/src/main/java/org/opensearch/index/engine/LuceneReaderManager.java @@ -13,6 +13,7 @@ import java.io.IOException; +/** Lucene reader manager */ public class LuceneReaderManager implements EngineReaderManager { private final ReferenceManager referenceManager; diff --git a/server/src/main/java/org/opensearch/index/engine/SearcherOperations.java b/server/src/main/java/org/opensearch/index/engine/SearcherOperations.java index 32b2d882401fb..d6ccfcfdf911d 100644 --- a/server/src/main/java/org/opensearch/index/engine/SearcherOperations.java +++ b/server/src/main/java/org/opensearch/index/engine/SearcherOperations.java @@ -13,6 +13,7 @@ import java.util.function.Function; +/** Searcher operations */ public interface SearcherOperations { /** * Acquires a point-in-time reader that can be used to create {@link Engine.Searcher}s on demand. diff --git a/server/src/main/java/org/opensearch/index/engine/exec/DataFormat.java b/server/src/main/java/org/opensearch/index/engine/exec/DataFormat.java index ef1ad24992256..2677a617f1427 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/DataFormat.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/DataFormat.java @@ -13,6 +13,9 @@ import org.opensearch.common.settings.Settings; import org.opensearch.index.engine.exec.text.TextDF; +/** + * Interface for data format implementations. + */ @ExperimentalApi public interface DataFormat { Setting dataFormatSettings(); @@ -23,6 +26,9 @@ public interface DataFormat { void configureStore(); + /** + * Lucene data format implementation. + */ static class LuceneDataFormat implements DataFormat { @Override public Setting dataFormatSettings() { diff --git a/server/src/main/java/org/opensearch/index/engine/exec/DocumentInput.java b/server/src/main/java/org/opensearch/index/engine/exec/DocumentInput.java index 0f24ca036741d..a9a45fa998bc9 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/DocumentInput.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/DocumentInput.java @@ -12,6 +12,11 @@ import org.opensearch.index.mapper.MappedFieldType; import java.io.IOException; +/** + * Interface for document input. + * + * @param the input type + */ @ExperimentalApi public interface DocumentInput extends AutoCloseable { diff --git a/server/src/main/java/org/opensearch/index/engine/exec/FileMetadata.java b/server/src/main/java/org/opensearch/index/engine/exec/FileMetadata.java index 61341ca5b378a..2cab2225f64d4 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/FileMetadata.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/FileMetadata.java @@ -8,4 +8,13 @@ package org.opensearch.index.engine.exec; +import org.opensearch.common.annotation.ExperimentalApi; + +/** + * Metadata for a file. + * + * @param df the data format + * @param fileName the file name + */ +@ExperimentalApi public record FileMetadata(DataFormat df, String fileName) { } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/FlushIn.java b/server/src/main/java/org/opensearch/index/engine/exec/FlushIn.java index 5d119a575d1aa..d002cee62c434 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/FlushIn.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/FlushIn.java @@ -8,6 +8,7 @@ package org.opensearch.index.engine.exec; +/** Flush input */ public interface FlushIn { } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/IndexingExecutionEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/IndexingExecutionEngine.java index 9d7855bf21889..15db6fcac800a 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/IndexingExecutionEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/IndexingExecutionEngine.java @@ -15,6 +15,7 @@ import java.util.List; import java.util.Map; +/** Indexing execution engine */ public interface IndexingExecutionEngine { List supportedFieldTypes(); diff --git a/server/src/main/java/org/opensearch/index/engine/exec/RefreshInput.java b/server/src/main/java/org/opensearch/index/engine/exec/RefreshInput.java index 50da23bafd6e1..15746b02be063 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/RefreshInput.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/RefreshInput.java @@ -11,6 +11,7 @@ import java.util.ArrayList; import java.util.List; +/** Refresh input */ public class RefreshInput { private List files; diff --git a/server/src/main/java/org/opensearch/index/engine/exec/RefreshResult.java b/server/src/main/java/org/opensearch/index/engine/exec/RefreshResult.java index a9bb34ef3aada..43359867ff7d8 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/RefreshResult.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/RefreshResult.java @@ -13,6 +13,7 @@ import java.util.List; import java.util.Map; +/** Refresh result */ public class RefreshResult { private Map> refreshedFiles = new HashMap<>(); diff --git a/server/src/main/java/org/opensearch/index/engine/exec/WriteResult.java b/server/src/main/java/org/opensearch/index/engine/exec/WriteResult.java index 666576e85cd0f..b767e926ea7e4 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/WriteResult.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/WriteResult.java @@ -8,5 +8,17 @@ package org.opensearch.index.engine.exec; +import org.opensearch.common.annotation.ExperimentalApi; + +/** + * Result of a write operation. + * + * @param success whether the write was successful + * @param e exception if write failed + * @param version document version + * @param term document term + * @param seqNo sequence number + */ +@ExperimentalApi public record WriteResult(boolean success, Exception e, long version, long term, long seqNo) { } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/Writer.java b/server/src/main/java/org/opensearch/index/engine/exec/Writer.java index bb0cf3e98b599..1208262b41e69 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/Writer.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/Writer.java @@ -11,6 +11,11 @@ import java.io.IOException; import java.util.Optional; +/** + * Interface for document writers. + * + * @param

the document input type + */ public interface Writer

> { WriteResult addDoc(P d) throws IOException; diff --git a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java index 22be766ff9be4..becf65b58b5b4 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java @@ -22,6 +22,7 @@ import java.util.Optional; import java.util.stream.Collectors; +/** Composite data format writer */ public class CompositeDataFormatWriter implements Writer { List> writers = new ArrayList<>(); @@ -73,6 +74,9 @@ public CompositeDocumentInput newDocumentInput() { return new CompositeDocumentInput(writers.stream().map(Writer::newDocumentInput).collect(Collectors.toList()), this, postWrite); } + /** + * Composite document input + */ @ExperimentalApi public static class CompositeDocumentInput implements DocumentInput>> { List> inputs; diff --git a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java index b32a333aacffc..fa7561076a2fe 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java @@ -27,6 +27,7 @@ import java.util.List; import java.util.Map; +/** Composite indexing execution engine */ public class CompositeIndexingExecutionEngine implements IndexingExecutionEngine { final DocumentWriterPool pool; diff --git a/server/src/main/java/org/opensearch/index/engine/exec/composite/package-info.java b/server/src/main/java/org/opensearch/index/engine/exec/composite/package-info.java new file mode 100644 index 0000000000000..8a13be1760bb2 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/composite/package-info.java @@ -0,0 +1,12 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +/** + * Index engine execution composite components. + */ +package org.opensearch.index.engine.exec.composite; \ No newline at end of file diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/Any.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/Any.java index c55834ec337d1..c4d823a983511 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/Any.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/Any.java @@ -14,6 +14,7 @@ import java.util.List; +/** Any data format */ public class Any implements DataFormat { private List dataFormats; diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java index f8915cfaf14cd..51b36eebb953e 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java @@ -17,6 +17,9 @@ import java.util.HashMap; import java.util.Map; +/** + * Catalog snapshot + */ @ExperimentalApi public class CatalogSnapshot extends AbstractRefCounted { diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java index c339047cc0202..e7fd4c6311733 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java @@ -32,6 +32,9 @@ import java.util.List; import java.util.Map; +/** + * Composite engine + */ @ExperimentalApi public class CompositeEngine { @@ -148,6 +151,9 @@ public void close() throws Exception { + /** + * Releasable reference + */ @ExperimentalApi public static abstract class ReleasableRef implements AutoCloseable { private T t; diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/DocumentWriterPool.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/DocumentWriterPool.java index 61c1f49da7f3f..4792589f16975 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/DocumentWriterPool.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/DocumentWriterPool.java @@ -16,6 +16,7 @@ import java.util.concurrent.ConcurrentLinkedDeque; import java.util.function.Supplier; +/** Document writer pool */ public class DocumentWriterPool { private Queue writers = new ConcurrentLinkedDeque<>(); diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexingExecutionCoordinator.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexingExecutionCoordinator.java index 6b13f9d2459a9..af44b61d31dc6 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexingExecutionCoordinator.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexingExecutionCoordinator.java @@ -23,6 +23,7 @@ import java.util.ArrayList; import java.util.List; +/** Indexing execution coordinator */ public class IndexingExecutionCoordinator { private final CompositeIndexingExecutionEngine engine; @@ -89,6 +90,7 @@ public void close() throws Exception { + /** Releasable reference */ public static abstract class ReleasableRef implements AutoCloseable { private T t; diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/WriterPool.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/WriterPool.java index 7373ca1fdc42f..62c35c0bc4680 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/WriterPool.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/WriterPool.java @@ -8,5 +8,6 @@ package org.opensearch.index.engine.exec.coord; +/** Writer pool */ public class WriterPool { } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/package-info.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/package-info.java new file mode 100644 index 0000000000000..dfd7bee298a33 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/package-info.java @@ -0,0 +1,12 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +/** + * Index engine execution coordination components. + */ +package org.opensearch.index.engine.exec.coord; \ No newline at end of file diff --git a/server/src/main/java/org/opensearch/index/engine/exec/package-info.java b/server/src/main/java/org/opensearch/index/engine/exec/package-info.java new file mode 100644 index 0000000000000..13abf6a28b2a2 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/package-info.java @@ -0,0 +1,12 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +/** + * Index engine execution components. + */ +package org.opensearch.index.engine.exec; \ No newline at end of file diff --git a/server/src/main/java/org/opensearch/index/engine/exec/text/TextDF.java b/server/src/main/java/org/opensearch/index/engine/exec/text/TextDF.java index b19a6c893cc11..64809a8e47650 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/text/TextDF.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/text/TextDF.java @@ -13,6 +13,7 @@ import org.opensearch.index.engine.exec.DataFormat; +/** Text data format */ public class TextDF implements DataFormat { @Override public Setting dataFormatSettings() { diff --git a/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java index b4638538fe7f9..f6bcd3d4da96d 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java @@ -31,6 +31,7 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicLong; +/** Text engine */ public class TextEngine implements IndexingExecutionEngine { private final AtomicLong counter = new AtomicLong(); @@ -60,6 +61,7 @@ public RefreshResult refresh(RefreshInput refreshInput) throws IOException { return refreshResult; } + /** Text input */ public static class TextInput implements DocumentInput { private final StringBuilder sb = new StringBuilder(); private final TextWriter writer; @@ -91,6 +93,7 @@ public void close() throws Exception { + /** Text writer */ public static class TextWriter implements Writer { private final StringBuilder sb = new StringBuilder(); diff --git a/server/src/main/java/org/opensearch/index/engine/exec/text/package-info.java b/server/src/main/java/org/opensearch/index/engine/exec/text/package-info.java new file mode 100644 index 0000000000000..38ca6ab284eb2 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/text/package-info.java @@ -0,0 +1,12 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +/** + * Index engine execution text components. + */ +package org.opensearch.index.engine.exec.text; \ No newline at end of file diff --git a/server/src/main/java/org/opensearch/plugins/DataSourcePlugin.java b/server/src/main/java/org/opensearch/plugins/DataSourcePlugin.java index 461bbc133905a..92acbbd08cd1a 100644 --- a/server/src/main/java/org/opensearch/plugins/DataSourcePlugin.java +++ b/server/src/main/java/org/opensearch/plugins/DataSourcePlugin.java @@ -15,6 +15,9 @@ import java.util.Map; import java.util.Optional; +/** + * Plugin interface for data source implementations. + */ public interface DataSourcePlugin { default Optional> getDataSourceCodecs() { return Optional.empty(); diff --git a/server/src/main/java/org/opensearch/plugins/SearchEnginePlugin.java b/server/src/main/java/org/opensearch/plugins/SearchEnginePlugin.java index ad029fec7d4d5..d8ef5a2d9317c 100644 --- a/server/src/main/java/org/opensearch/plugins/SearchEnginePlugin.java +++ b/server/src/main/java/org/opensearch/plugins/SearchEnginePlugin.java @@ -10,6 +10,7 @@ import org.opensearch.cluster.metadata.IndexNameExpressionResolver; import org.opensearch.cluster.service.ClusterService; +import org.opensearch.common.annotation.ExperimentalApi; import org.opensearch.core.common.io.stream.NamedWriteableRegistry; import org.opensearch.core.xcontent.NamedXContentRegistry; import org.opensearch.env.Environment; @@ -31,6 +32,10 @@ import java.util.Map; import java.util.function.Supplier; +/** + * Plugin interface for search engine implementations. + */ +@ExperimentalApi public interface SearchEnginePlugin extends SearchPlugin{ /**