Skip to content

[HSTACK] feat(datafusion): configurable planning-metrics serialization - #26

Merged
radustoenescu merged 2 commits into
main-1.0-statsfrom
refactor/planning-metrics-pr
Oct 22, 2026
Merged

radustoenescu merged 2 commits into
main-1.0-statsfrom
refactor/planning-metrics-pr

Conversation

@radustoenescu

@radustoenescu radustoenescu commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • Add DeltaPhysicalCodecConfig { serialize_planning_metrics } to the classic and next physical codecs; it defaults to preserving current serialization behavior.
  • When disabled, omit planning counters on encode and ignore received planning counters on decode.
  • Remove the created_at=planning label: execution-only workers no longer need copies of coordinator-owned planning counters.
  • Keep one implementation per codec, with the configuration checked by the shared planning-metrics helper.

This allows Cobweb to retain planning metrics through Flight tickets without sending copies to every DFD task. No DFD change is required.

Related discussion: datafusion-contrib/datafusion-distributed#756.

API change

Construct the codecs with ::default() or ::new(config) instead of unit/braced literals. Consumers such as OneAdobe/datafusion-python must update constructor calls when adopting this revision.

Scope

Based on main-1.0-stats. Flag coverage is one parameterized test: classic/next × enabled/disabled. Cross-configuration decoding and distributed metric ownership are covered in Cobweb.

…n in Delta physical codecs

Add `DeltaPhysicalCodecConfig { serialize_planning_metrics }` (default: true)
to `DeltaPhysicalCodec` and `DeltaNextPhysicalCodec`. When disabled, planning
time scan count metrics are neither written nor restored on decode, so plans
shipped to execution-only workers (e.g. datafusion-distributed tasks) do not
carry coordinator-owned metrics that would otherwise be counted once per task.

Also drop the `created_at=planning` label from decoded metrics: its only
consumer was a datafusion-distributed fork patch that is reverted in favor of
this config (datafusion-contrib/datafusion-distributed#756).

Breaking: build the codecs with `::default()` / `::new(config)` instead of
`DeltaPhysicalCodec {}` / `DeltaNextPhysicalCodec`.
@github-actions

Copy link
Copy Markdown

ACTION NEEDED

delta-rs follows the Conventional Commits specification for release automation.

The PR title and description are used as the merge commit message. Please update your PR title and description to match the specification.

@radustoenescu
radustoenescu merged commit ebd748a into main-1.0-stats Oct 22, 2026
2 of 5 checks passed
@radustoenescu
radustoenescu deleted the refactor/planning-metrics-pr branch October 22, 2026 11:18
radustoenescu pushed a commit that referenced this pull request Oct 22, 2026
…zation (#24, #26)

Preserve planning-time count metrics when serializing classic and next Delta scans, with a shared configuration controlling both encoding and decoding. Keep serialization enabled by default; disable it for execution-only worker plans so coordinator-owned counters are not multiplied across tasks.

Introduce the final codec implementation directly, without the intermediate created_at=planning label mechanism. Consolidates b9b71be and ebd748a; the resulting repository tree is unchanged from ebd748a.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant