[FLINK-39619][docs] Add release notes for Flink 2.3#28123
[FLINK-39619][docs] Add release notes for Flink 2.3#28123lihaosky wants to merge 3 commits intoapache:masterfrom
Conversation
|
|
||
| #### Robust OTel gRPC metric exporter | ||
|
|
||
| ##### [FLINK-38603](https://issues.apache.org/jira/browse/FLINK-38603) (FLIP-553) |
There was a problem hiding this comment.
Thank you for the update of release notes!
For this FLIP only 2/3 have been merged before the release cut off. Attribute name truncation is in master branch but won't be released in this round
| The DataStream API has long offered `toChangelogStream()` and `fromChangelogStream()` for working | ||
| with changelog streams; Flink 2.3 brings equivalent functionality to SQL via two new built-in | ||
| Process Table Functions: | ||
|
|
||
| A JDK update (affecting JDK 11.0.30+, 17.0.18+, 21.0.10+, and 24+) disabled `TLS_RSA_*` cipher suites. | ||
| This was done to support forward-secrecy (RFC 9325) and comply with the IETF Draft on *Deprecating Obsolete Key Exchange Methods in TLS*. | ||
| - `FROM_CHANGELOG` converts an append-only stream that carries an operation column (and optional | ||
| before/after row descriptors) into a dynamic table. A configurable `op_mapping` makes it | ||
| straightforward to plug in custom CDC formats (e.g. Debezium-style `c`/`u`/`d` codes), and | ||
| `invalid_op_handling` (`FAIL`/`LOG`/`SKIP`) controls how rows with unmapped operation codes | ||
| are treated. | ||
| - `TO_CHANGELOG` is the inverse: it materializes a dynamic table back into an append-only | ||
| changelog stream. This is the first SQL-level operator that lets users convert | ||
| retract/upsert streams into append form, which is useful for archival, audit and writing to | ||
| append-only sinks. `produces_full_deletes` controls whether `-D` records carry the full row. | ||
|
|
||
| To support these and future JDK versions, the default value for the Flink configuration option `security.ssl.algorithms` has been changed to a modern, widely available cipher suite: | ||
| The two PTFs are designed to be symmetric, so `FROM_CHANGELOG(TO_CHANGELOG(table))` round-trips | ||
| correctly. Both support `PARTITION BY` for parallel execution and `uid` for query evolution, and | ||
| they expose a `state_ttl` parameter for state retention. |
There was a problem hiding this comment.
The FLIP is not fully implemented yet, only some signatures made it to the release. @gustavodemorais could you write short summary what works in 2.3?
There was a problem hiding this comment.
Hey @twalthr — confirmed against release-2.3.
FROM_CHANGELOG (FLINK-39261)
- Append-only stream with an op column → updating dynamic table.
- Default op codes (
INSERT,UPDATE_BEFORE,UPDATE_AFTER,DELETE). - Custom op column name via
op => DESCRIPTOR(my_op). - Custom
op_mappingwith comma-separated keys. - Unmapped or
NULLop codes fail withTableRuntimeException. Noerror_handlingargument (the master-only follow-up that addsFAIL/SKIPwas not cherry-picked). - Java
Table#fromChangelog(...)and PyFlinkTable.from_changelog(...)(FLINK-39479). - Row semantics only —
PARTITION BYis rejected (FLINK-39537 is open). - Retract output only —
UPDATE_AFTERwithoutUPDATE_BEFORE(upsert) is rejected.
TO_CHANGELOG (FLINK-39259, FLINK-39349, FLINK-39419)
- Dynamic table → append-only stream with an op column.
- Custom op column name and
op_mapping; deletion-flag pattern via comma-separated keys. - Filtering: only mapped operations forwarded.
- Row semantics, full deletes, requires
UPDATE_BEFOREupstream. - Java
Table#toChangelog(...)and PyFlinkTable.to_changelog(...)(FLINK-39442). - No
PARTITION BY—TO_CHANGELOGset semantics (FLINK-39614) landed on master after the 2.3 cut. - Retract input only.
Not in 2.3
state_ttlargument — not supported yet, not declared on either PTF in any branch.FROM_CHANGELOGerror_handling(FLINK-39495 + follow-up, master only). The can be back-ported to 2.3FROM_CHANGELOGPARTITION BY(FLINK-39537, open). We are done with the work and we need to merge to master and backport to 2.3TO_CHANGELOGPARTITION BY(FLINK-39614, master). Merged to master and needs to be backported to 2.3- Conditional traits for PTFs (FLINK-39392, master). needs to be backported to 2.3.
- Upsert input/output for either PTF.
Release-notes adjustments to consider
- Drop the
state_ttlmention — not declared on either PTF. - Drop
invalid_op_handling/LOG— the parameter doesn't exist; even on master onlyerror_handling(FAIL/SKIP) exists, and it's not in 2.3. - Drop
produces_full_deletes—TO_CHANGELOGin 2.3 is locked to full deletes; no such argument is exposed. - Soften "Both support
PARTITION BY" — neither does in 2.3 yet, unless we backport it and we will let you know. - The "round-trips correctly" claim holds only for the row-semantics retract case.
There was a problem hiding this comment.
I will discuss with @gustavodemorais on the remaining PRs that are on master and if we backport them to 2.3. We will let you know to update the release notes! Many thanks!
| - **`ValueView`**: a new lazy single-value state primitive (`value()`, `update()`, `isEmpty()`, | ||
| `clear()`) joins the existing `MapView` and `ListView` for working with single-element state | ||
| efficiently. | ||
| - **Broadcast state**: PTFs support broadcast state through the new | ||
| `@ArgumentHint(ArgumentTrait.BROADCAST_SEMANTIC_TABLE)` and `@StateHint(StateKind.BROADCAST)` | ||
| annotations, plus `@ArgumentHint(ArgumentTrait.NOTIFY_STATEFUL_SETS)` for re-evaluating keys | ||
| when broadcast state changes. |
There was a problem hiding this comment.
This has not made it to 2.3 yet.
|
We should include https://issues.apache.org/jira/browse/FLINK-37399 and https://issues.apache.org/jira/browse/FLINK-35661. These are critical issues it would be good to highlight. |
What is the purpose of the change
Adds the release notes for the upcoming Flink 2.3 release, modeled on the format of the
2.2 release notes.
Contents are derived from the FLIP wiki pages for the FLIPs included in 2.3 (FLIP-339, FLIP-487,
FLIP-495, FLIP-547, FLIP-549, FLIP-550, FLIP-553, FLIP-555, FLIP-557, FLIP-558, FLIP-559,
FLIP-560, FLIP-561, FLIP-564, FLIP-565), with motivation/impact details pulled from each FLIP's
umbrella JIRA where present.
JIRA: FLINK-39619
Brief change log
Section coverage in
docs/content/release-notes/flink-2.3.md:Verifying this change
This change is a docs-only addition; no code paths are exercised.
Does this pull request potentially affect one of the following parts:
@Public(Evolving): noDocumentation