Skip to content

ESQL: Add data node execution for external sources#143209

Merged
costin merged 2 commits intoelastic:mainfrom
costin:esql/es-distributed/stage-5
Feb 27, 2026
Merged

ESQL: Add data node execution for external sources#143209
costin merged 2 commits intoelastic:mainfrom
costin:esql/es-distributed/stage-5

Conversation

@costin
Copy link
Copy Markdown
Member

@costin costin commented Feb 27, 2026

Wire external source splits into the data node execution path so that
distributed Parquet (and similar) reads fan out to data nodes instead
of running only on the coordinator.

  • DataNodeRequest: carry ExternalSplit list with TransportVersion guard
  • ComputeService: ExternalDistributionResult, executeExternalDistribution
  • DataNodeComputeHandler: startExternalComputeOnDataNodes, handleExternalSourceRequest
  • PlannerUtils: localPlan overload accepting SearchStats + FilterPushdownRegistry
  • TransportEsqlQueryAction: wire FilterPushdownRegistry into ComputeService
  • ExternalSourceDataNodeTests: unit tests for distribution and split injection

Relates #142996

Developed using AI-assisted tooling

Wire external source splits into the data node execution path so that
distributed Parquet (and similar) reads fan out to data nodes instead
of running only on the coordinator.

- DataNodeRequest: carry ExternalSplit list with TransportVersion guard
- ComputeService: ExternalDistributionResult, executeExternalDistribution
- DataNodeComputeHandler: startExternalComputeOnDataNodes, handleExternalSourceRequest
- PlannerUtils: localPlan overload accepting SearchStats + FilterPushdownRegistry
- TransportEsqlQueryAction: wire FilterPushdownRegistry into ComputeService
- ExternalSourceDataNodeTests: unit tests for distribution and split injection

Developed using AI-assisted tooling
@costin costin added >enhancement Team:Analytics Meta label for analytical engine team (ESQL/Aggs/Geo) :Analytics/ES|QL AKA ESQL v9.4.0 labels Feb 27, 2026
@costin costin requested a review from bpintea February 27, 2026 08:34
@elasticsearchmachine
Copy link
Copy Markdown
Collaborator

Pinging @elastic/es-analytical-engine (Team:Analytics)

@elasticsearchmachine
Copy link
Copy Markdown
Collaborator

Hi @costin, I've created a changelog YAML for you.

Copy link
Copy Markdown
Contributor

@bpintea bpintea left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.
🤖 Reviewed AI-assisted.

@costin costin enabled auto-merge (squash) February 27, 2026 09:33
@costin costin merged commit 7e27ef8 into elastic:main Feb 27, 2026
35 checks passed
@costin costin deleted the esql/es-distributed/stage-5 branch February 27, 2026 09:39
PeteGillinElastic pushed a commit to PeteGillinElastic/elasticsearch that referenced this pull request Feb 27, 2026
Wire external source splits into the data node execution path so that
distributed Parquet (and similar) reads fan out to data nodes instead
of running only on the coordinator.

- DataNodeRequest: carry ExternalSplit list with TransportVersion guard
- ComputeService: ExternalDistributionResult, executeExternalDistribution
- DataNodeComputeHandler: startExternalComputeOnDataNodes, handleExternalSourceRequest
- PlannerUtils: localPlan overload accepting SearchStats + FilterPushdownRegistry
- TransportEsqlQueryAction: wire FilterPushdownRegistry into ComputeService
- ExternalSourceDataNodeTests: unit tests for distribution and split injection

Relates elastic#142996

Developed using AI-assisted tooling
szybia added a commit to szybia/elasticsearch that referenced this pull request Feb 27, 2026
…cations

* upstream/main: (35 commits)
  Create ARM bulk sqrI8 implementation (elastic#142461)
  Rework get-snapshots predicates (elastic#143161)
  Refactor downsampling fetchers and producers (elastic#140357)
  ESQL: Unmute test and add extra logging to generative test validation (elastic#143168)
  Fix metadata fields being nullified/loaded by unmapped_fields setting (elastic#143155)
  Determine remote cluster version (elastic#142494)
  Populate failure message for aborted clones (elastic#143206)
  Allow kibana_system role to read and manage logs streams (elastic#143053)
  Mute org.elasticsearch.xpack.esql.CsvIT test {csv-spec:eval.DocsLength} elastic#143224
  Mute org.elasticsearch.xpack.esql.CsvIT test {csv-spec:eval.DocsByteLength} elastic#143223
  Mute org.elasticsearch.xpack.esql.CsvIT test {csv-spec:docs.DocsBitLength} elastic#143222
  Fix FloatVectorScorerSupplier bulkScore bug (elastic#143211)
  ESQL: Add data node execution for external sources (elastic#143209)
  [ESQL] Cleanup commands docs (elastic#143058)
  [ML]Fix latest transforms disregarding updates when sort and sync fields are non-monotonic (elastic#142856)
  Mute org.elasticsearch.index.mapper.IpFieldMapperTests testSyntheticSourceInObject elastic#143212
  Tests: Fix StoreDirectoryMetricsIT (elastic#143084)
  ESQL: Add distribution strategy for external sources (elastic#143194)
  CSV IT spec (elastic#142585)
  Fix VectorScorerOSQBenchmark.score to read corrections properly (elastic#143137)
  ...
tballison pushed a commit to tballison/elasticsearch that referenced this pull request Mar 3, 2026
Wire external source splits into the data node execution path so that
distributed Parquet (and similar) reads fan out to data nodes instead
of running only on the coordinator.

- DataNodeRequest: carry ExternalSplit list with TransportVersion guard
- ComputeService: ExternalDistributionResult, executeExternalDistribution
- DataNodeComputeHandler: startExternalComputeOnDataNodes, handleExternalSourceRequest
- PlannerUtils: localPlan overload accepting SearchStats + FilterPushdownRegistry
- TransportEsqlQueryAction: wire FilterPushdownRegistry into ComputeService
- ExternalSourceDataNodeTests: unit tests for distribution and split injection

Relates elastic#142996

Developed using AI-assisted tooling
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

:Analytics/ES|QL AKA ESQL >enhancement Team:Analytics Meta label for analytical engine team (ESQL/Aggs/Geo) v9.4.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants