diff --git a/spark/src/main/java/org/opensearch/sql/spark/dispatcher/BatchQueryHandler.java b/spark/src/main/java/org/opensearch/sql/spark/dispatcher/BatchQueryHandler.java index e9356e5bed..2f38e1fac4 100644 --- a/spark/src/main/java/org/opensearch/sql/spark/dispatcher/BatchQueryHandler.java +++ b/spark/src/main/java/org/opensearch/sql/spark/dispatcher/BatchQueryHandler.java @@ -28,6 +28,10 @@ import org.opensearch.sql.spark.leasemanager.model.LeaseRequest; import org.opensearch.sql.spark.response.JobExecutionResponseReader; +/** + * The handler for batch query. With batch query, queries are executed as single batch. The queries + * are sent along with job execution request ({@link StartJobRequest}) to spark. + */ @RequiredArgsConstructor public class BatchQueryHandler extends AsyncQueryHandler { private final EMRServerlessClient emrServerlessClient; diff --git a/spark/src/main/java/org/opensearch/sql/spark/dispatcher/IndexDMLHandler.java b/spark/src/main/java/org/opensearch/sql/spark/dispatcher/IndexDMLHandler.java index dfd5316f6c..b2bb590c1e 100644 --- a/spark/src/main/java/org/opensearch/sql/spark/dispatcher/IndexDMLHandler.java +++ b/spark/src/main/java/org/opensearch/sql/spark/dispatcher/IndexDMLHandler.java @@ -31,7 +31,12 @@ import org.opensearch.sql.spark.flint.operation.FlintIndexOpFactory; import org.opensearch.sql.spark.response.JobExecutionResponseReader; -/** Handle Index DML query. includes * DROP * ALT? */ +/** + * The handler for Index DML (Data Manipulation Language) query. Handles DROP/ALTER/VACUUM operation + * for flint indices. It will stop streaming query job as needed (e.g. when the flint index is + * automatically updated by a streaming query, the streaming query is stopped when the index is + * dropped) + */ @RequiredArgsConstructor public class IndexDMLHandler extends AsyncQueryHandler { private static final Logger LOG = LogManager.getLogger(); diff --git a/spark/src/main/java/org/opensearch/sql/spark/dispatcher/InteractiveQueryHandler.java b/spark/src/main/java/org/opensearch/sql/spark/dispatcher/InteractiveQueryHandler.java index 7602988d26..7475c5a7ae 100644 --- a/spark/src/main/java/org/opensearch/sql/spark/dispatcher/InteractiveQueryHandler.java +++ b/spark/src/main/java/org/opensearch/sql/spark/dispatcher/InteractiveQueryHandler.java @@ -35,6 +35,12 @@ import org.opensearch.sql.spark.leasemanager.model.LeaseRequest; import org.opensearch.sql.spark.response.JobExecutionResponseReader; +/** + * The handler for interactive query. With interactive query, a session will be first established + * and then the session will be reused for the following queries(statements). Session is an + * abstraction of spark job, and once the job is started, the job will continuously poll the + * statements and execute query specified in it. + */ @RequiredArgsConstructor public class InteractiveQueryHandler extends AsyncQueryHandler { private final SessionManager sessionManager; diff --git a/spark/src/main/java/org/opensearch/sql/spark/dispatcher/RefreshQueryHandler.java b/spark/src/main/java/org/opensearch/sql/spark/dispatcher/RefreshQueryHandler.java index aeb5c1b35f..edb0a3f507 100644 --- a/spark/src/main/java/org/opensearch/sql/spark/dispatcher/RefreshQueryHandler.java +++ b/spark/src/main/java/org/opensearch/sql/spark/dispatcher/RefreshQueryHandler.java @@ -20,7 +20,10 @@ import org.opensearch.sql.spark.leasemanager.LeaseManager; import org.opensearch.sql.spark.response.JobExecutionResponseReader; -/** Handle Refresh Query. */ +/** + * The handler for refresh query. Refresh query is one time query request to refresh(update) flint + * index, and new job is submitted to Spark. + */ public class RefreshQueryHandler extends BatchQueryHandler { private final FlintIndexMetadataService flintIndexMetadataService; diff --git a/spark/src/main/java/org/opensearch/sql/spark/dispatcher/StreamingQueryHandler.java b/spark/src/main/java/org/opensearch/sql/spark/dispatcher/StreamingQueryHandler.java index 8170b41c66..02cc936ac2 100644 --- a/spark/src/main/java/org/opensearch/sql/spark/dispatcher/StreamingQueryHandler.java +++ b/spark/src/main/java/org/opensearch/sql/spark/dispatcher/StreamingQueryHandler.java @@ -26,7 +26,10 @@ import org.opensearch.sql.spark.leasemanager.model.LeaseRequest; import org.opensearch.sql.spark.response.JobExecutionResponseReader; -/** Handle Streaming Query. */ +/** + * The handler for streaming query. Streaming query is a job to continuously update flint index. + * Once started, the job can be stopped by IndexDML query. + */ public class StreamingQueryHandler extends BatchQueryHandler { private final EMRServerlessClient emrServerlessClient; diff --git a/spark/src/main/java/org/opensearch/sql/spark/flint/IndexDMLResultStorageService.java b/spark/src/main/java/org/opensearch/sql/spark/flint/IndexDMLResultStorageService.java index 4a046564f5..31d4be511e 100644 --- a/spark/src/main/java/org/opensearch/sql/spark/flint/IndexDMLResultStorageService.java +++ b/spark/src/main/java/org/opensearch/sql/spark/flint/IndexDMLResultStorageService.java @@ -7,6 +7,9 @@ import org.opensearch.sql.spark.dispatcher.model.IndexDMLResult; +/** + * Abstraction over the IndexDMLResult storage. It stores the result of IndexDML query execution. + */ public interface IndexDMLResultStorageService { IndexDMLResult createIndexDMLResult(IndexDMLResult result, String datasourceName); }