Class AsyncConnectorSourceOperatorFactory
java.lang.Object
org.elasticsearch.xpack.esql.datasources.AsyncConnectorSourceOperatorFactory
- All Implemented Interfaces:
Describable,Operator.OperatorFactory,SourceOperator.SourceOperatorFactory
public class AsyncConnectorSourceOperatorFactory
extends Object
implements SourceOperator.SourceOperatorFactory
Source-operator factory that executes a connector query on a background thread and feeds pages
into an
AsyncExternalSourceBuffer for the driver to consume.
Two execution modes, selected based on whether a ExternalSliceQueue is supplied:
- Slice-queue mode — iterates each
ExternalSplitpulled from the queue and executes it viaConnector.execute(QueryRequest, ExternalSplit), sharing a single row budget across splits. - Single-shot mode — executes the request exactly once using
Split.SINGLEviaConnector.execute(QueryRequest, Split).
runProducerLoop(org.elasticsearch.xpack.esql.datasources.AsyncConnectorSourceOperatorFactory.ProducerState, org.elasticsearch.action.ActionListener<java.lang.Void>)) driven by a single
ProducerState instance — no CPS recursion, no per-split trampoline. The drain is fully
non-blocking: it runs synchronously while the buffer has space and yields the producer thread
when full, resuming via the executor when space is freed.- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionAsyncConnectorSourceOperatorFactory(Connector connector, QueryRequest baseRequest, int maxBufferSize, Executor executor) AsyncConnectorSourceOperatorFactory(Connector connector, QueryRequest baseRequest, int maxBufferSize, Executor executor, ExternalSliceQueue sliceQueue) -
Method Summary
-
Constructor Details
-
AsyncConnectorSourceOperatorFactory
public AsyncConnectorSourceOperatorFactory(Connector connector, QueryRequest baseRequest, int maxBufferSize, Executor executor, @Nullable ExternalSliceQueue sliceQueue) -
AsyncConnectorSourceOperatorFactory
public AsyncConnectorSourceOperatorFactory(Connector connector, QueryRequest baseRequest, int maxBufferSize, Executor executor)
-
-
Method Details
-
get
- Specified by:
getin interfaceOperator.OperatorFactory- Specified by:
getin interfaceSourceOperator.SourceOperatorFactory
-
describe
- Specified by:
describein interfaceDescribable
-