datafusion-contrib / datafusion-contrib/StreamFusion

Flink 1.18: cross-line savepoint upgrade and mixed-payload safety

Open
#188 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Java
Stars
120
Forks
8
Avg merge
7h 29m
Merged PRs (30d)
76

Description

Shipped

PR #198 supplies line-qualified Flink 1.18 artifacts and loader identity validation. PR #200 validates installed loader, core and extension metadata before JobManager or TaskManager starts. Mixed or unmarked payloads exit with an actionable diagnostic; mismatches name both lines, including renamed extension JARs.

The optimized Linux image checks pass all six tests on each line with zero skips: four startup/admission cases, native extension loading, and native SQL in a real Session cluster. Docker execution is verified. This does not establish cross-line state compatibility or Podman support.

Remaining work

Build a real-cluster canonical savepoint upgrade suite for Flink 1.18.1 to 2.2 at the same StreamFusion release. This is the intended direction, not yet a supported production guarantee.

  • Cover grouped aggregate, updating join, deduplicate, Top-N and window aggregate state shapes using real release artifacts and native-execution evidence.
  • Feed an input prefix on 1.18, stop with a canonical savepoint, restore on 2.2, feed the suffix, and compare the result with an uninterrupted single-version run.
  • Exercise increased and decreased parallelism, verifying every key group exactly once.
  • Prove a 2.2-to-1.18 restore attempt fails with an explicit actionable message.
  • Run the container suite with Podman as well as Docker through Testcontainers configuration. Keep clear local skips when no container runtime exists and require execution in the CI lanes that claim coverage.

Keep native state encoding line-independent and let Flink own canonical savepoint format, UID matching and key-group assignment. Update docs/deployment.md only with guarantees actually demonstrated by these tests.

Split from #182. Mixed-payload startup safety is complete; cross-line upgrades and Podman validation remain open.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the existing real-cluster container suite and its Testcontainers configuration, then review the six existing optimized Linux image tests for conventions. Add coverage for the listed state shapes, both parallelism changes, reverse restore failure, and Docker/Podman execution. Done means CI lanes run the claimed coverage, local runtime absence produces clear skips, and docs/deployment.md states only demonstrated guarantees.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, java
Domain
data-engineering, distributed-systems, testing-qa
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.