You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by li...@apache.org on 2024/03/15 09:37:23 UTC

(flink) branch master updated: [FLINK-34593][release] Add release note for version 1.19

This is an automated email from the ASF dual-hosted git repository.

lincoln pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git


The following commit(s) were added to refs/heads/master by this push:
     new 875a431950d [FLINK-34593][release] Add release note for version 1.19
875a431950d is described below

commit 875a431950da066aa696f2c3a335f3267b85194a
Author: lincoln lee <li...@gmail.com>
AuthorDate: Fri Mar 15 17:37:16 2024 +0800

    [FLINK-34593][release] Add release note for version 1.19
    
    This closes #24394
---
 docs/content.zh/_index.md                   |   3 +-
 docs/content.zh/release-notes/flink-1.19.md | 362 ++++++++++++++++++++++++++++
 docs/content/_index.md                      |   1 +
 docs/content/release-notes/flink-1.19.md    | 362 ++++++++++++++++++++++++++++
 4 files changed, 727 insertions(+), 1 deletion(-)

diff --git a/docs/content.zh/_index.md b/docs/content.zh/_index.md
index f25de48eb0f..1516a960740 100644
--- a/docs/content.zh/_index.md
+++ b/docs/content.zh/_index.md
@@ -85,7 +85,8 @@ under the License.
 For some reason Hugo will only allow linking to the 
 release notes if there is a leading '/' and file extension.
 -->
-请参阅 [Flink 1.18]({{< ref "/release-notes/flink-1.18.md" >}}),
+请参阅 [Flink 1.19]({{< ref "/release-notes/flink-1.19.md" >}}),
+[Flink 1.18]({{< ref "/release-notes/flink-1.18.md" >}}),
 [Flink 1.17]({{< ref "/release-notes/flink-1.17.md" >}}),
 [Flink 1.16]({{< ref "/release-notes/flink-1.16.md" >}}),
 [Flink 1.15]({{< ref "/release-notes/flink-1.15.md" >}}),
diff --git a/docs/content.zh/release-notes/flink-1.19.md b/docs/content.zh/release-notes/flink-1.19.md
new file mode 100644
index 00000000000..efb5a3228b6
--- /dev/null
+++ b/docs/content.zh/release-notes/flink-1.19.md
@@ -0,0 +1,362 @@
+---
+title: "Release Notes - Flink 1.19"
+---
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+# Release notes - Flink 1.19
+
+These release notes discuss important aspects, such as configuration, behavior or dependencies,
+that changed between Flink 1.18 and Flink 1.19. Please read these notes carefully if you are 
+planning to upgrade your Flink version to 1.19.
+
+## Dependency upgrades
+
+#### Drop support for python 3.7
+
+##### [FLINK-33029](https://issues.apache.org/jira/browse/FLINK-33029)
+
+#### Add support for python 3.11
+
+##### [FLINK-33030](https://issues.apache.org/jira/browse/FLINK-33030)
+
+## Build System
+
+#### Support Java 21
+
+##### [FLINK-33163](https://issues.apache.org/jira/browse/FLINK-33163)
+Apache Flink was made ready to compile and run with Java 21. This feature is still in beta mode.
+Issues should be reported in Flink's bug tracker.
+
+## Checkpoints
+
+#### Deprecate RestoreMode#LEGACY
+
+##### [FLINK-34190](https://issues.apache.org/jira/browse/FLINK-34190)
+
+`RestoreMode#LEGACY` is deprecated. Please use `RestoreMode#CLAIM` or `RestoreMode#NO_CLAIM` mode
+instead to get a clear state file ownership when restoring.
+
+#### CheckpointsCleaner clean individual checkpoint states in parallel
+
+##### [FLINK-33090](https://issues.apache.org/jira/browse/FLINK-33090)
+
+Now when disposing of no longer needed checkpoints, every state handle/state file will be disposed
+in parallel by the ioExecutor, vastly improving the disposing speed of a single checkpoint (for
+large checkpoints, the disposal time can be improved from 10 minutes to < 1 minute). The old
+behavior can be restored by setting `state.checkpoint.cleaner.parallel-mode` to false.
+
+#### Support using larger checkpointing interval when source is processing backlog
+
+##### [FLINK-32514](https://issues.apache.org/jira/browse/FLINK-32514)
+
+`ProcessingBacklog` is introduced to demonstrate whether a record should be processed with low latency
+or high throughput. `ProcessingBacklog` can be set by source operators and can be used to change the
+checkpoint interval of a job during runtime.
+
+#### Allow triggering Checkpoints through command line client
+
+##### [FLINK-6755](https://issues.apache.org/jira/browse/FLINK-6755)
+
+The command line interface supports triggering a checkpoint manually. Usage:
+```
+./bin/flink checkpoint $JOB_ID [-full]
+```
+By specifying the '-full' option, a full checkpoint is triggered. Otherwise an incremental
+checkpoint is triggered if the job is configured to take incremental ones periodically.
+
+
+## Runtime & Coordination
+
+#### Migrate TypeSerializerSnapshot#resolveSchemaCompatibility
+
+##### [FLINK-30613](https://issues.apache.org/jira/browse/FLINK-30613)
+
+In Flink 1.19, the old method of resolving schema compatibility has been deprecated and the new one
+is introduced. See [FLIP-263](https://cwiki.apache.org/confluence/display/FLINK/FLIP-263%3A+Improve+resolving+schema+compatibility?src=contextnavpagetreemode) for more details.
+Please migrate to the new method following [link](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/dev/datastream/fault-tolerance/serialization/custom_serialization/#migrating-from-deprecated-typeserializersnapshotresolveschemacompatibilitytypeserializer-newserializer-before-flink-119).
+
+#### Deprecate old serialization config methods and options
+
+##### [FLINK-34122](https://issues.apache.org/jira/browse/FLINK-34122)
+
+Configuring serialization behavior through hard codes is deprecated, because you need to modify the
+codes when upgrading the job version. You should configure this via options
+`pipeline.serialization-config`, `pipeline.force-avro`, `pipeline.force-kryo`, and `pipeline.generic-types`.
+Registration of instance-level serializers is deprecated, using class-level serializers instead.
+For more information and code examples, please refer to [link](https://cwiki.apache.org/confluence/display/FLINK/FLIP-398:+Improve+Serialization+Configuration+And+Usage+In+Flink).
+
+#### Migrate string configuration key to ConfigOption
+
+##### [FLINK-34079](https://issues.apache.org/jira/browse/FLINK-34079)
+
+We have deprecated all setXxx and getXxx methods except `getString(String key, String defaultValue)`
+and `setString(String key, String value)`, such as: `setInteger`, `setLong`, `getInteger` and `getLong` etc.
+We strongly recommend that users and developers use the ConfigOption-based get and set methods directly.
+
+#### Support System out and err to be redirected to LOG or discarded
+
+##### [FLINK-33625](https://issues.apache.org/jira/browse/FLINK-33625)
+
+`System.out` and `System.err` output the content to the `taskmanager.out` and `taskmanager.err` files.
+In a production environment, if flink users use them to print a lot of content, the limits of yarn
+or kubernetes may be exceeded, eventually causing the TaskManager to be killed. Flink supports
+redirecting the `System.out` and `System.err` to the log file, and the log file can be rolled to
+avoid unlimited disk usage.
+
+#### Support standard YAML for FLINK configuration
+
+##### [FLINK-33297](https://issues.apache.org/jira/browse/FLINK-33297)
+
+Starting with Flink 1.19, Flink has officially introduced full support for the standard YAML 1.2
+syntax ([FLIP-366](https://cwiki.apache.org/confluence/display/FLINK/FLIP-366%3A+Support+standard+YAML+for+FLINK+configuration?src=contextnavpagetreemode)). The default configuration file has been changed to `config.yaml` and placed in the
+`conf/` directory. Users should directly modify this file to configure Flink.
+If users want to use the legacy configuration file `flink-conf.yaml`, they need to copy this file
+into the `conf/` directory. Once the legacy configuration file `flink-conf.yaml` is detected, Flink
+will prioritize using it as the configuration file. In the upcoming Flink 2.0, the `flink-conf.yaml`
+configuration file will no longer work.
+More details could be found at [flink-configuration-file](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/deployment/config/#flink-configuration-file).
+
+#### Add config options for administrator JVM options
+
+##### [FLINK-33221](https://issues.apache.org/jira/browse/FLINK-33221)
+
+A set of administrator JVM options are available, which prepend the user-set extra JVM options for
+platform-wide JVM tuning.
+
+#### Flink Job stuck in suspend state after losing leadership in HA Mode
+
+##### [FLINK-34007](https://issues.apache.org/jira/browse/FLINK-34007)
+
+Fixed a bug where the leader election wasn't able to pick up leadership again after renewing the
+lease token caused a leadership loss. This required `fabric8io:kubernetes-client` to be upgraded
+from v6.6.2 to v6.9.0.
+
+#### Support dynamic source parallelism inference for batch jobs
+
+##### [FLINK-33768](https://issues.apache.org/jira/browse/FLINK-33768)
+
+In Flink 1.19, we have supported dynamic source parallelism inference for batch jobs, which allows
+source connectors to dynamically infer the parallelism based on the actual amount of data to consume.
+This feature is a significant improvement over previous versions, which only assigned a fixed default
+parallelism to source vertices.
+Source connectors need to implement the inference interface to enable dynamic parallelism inference.
+Currently, the FileSource connector has already been developed with this functionality in place.
+Additionally, the configuration `execution.batch.adaptive.auto-parallelism.default-source-parallelism`
+will be used as the upper bound of source parallelism inference. And now it will be set to 1 by default.
+If it is not set, the upper bound of allowed parallelism set via
+`execution.batch.adaptive.auto-parallelism.max-parallelism` will be used instead. If that
+configuration is also not set, the default parallelism set via `parallelism.default` or
+`StreamExecutionEnvironment#setParallelism()` will be used instead.
+
+#### Improve the exponential-delay restart-strategy
+
+##### [FLINK-33735](https://issues.apache.org/jira/browse/FLINK-33735)
+
+Flink 1.19 makes a series of improvements to exponential-delay restart-strategy, including:
+optimizing the default values of related options, support for max attempts, and solving the issue of
+inaccurate attempts in region failover. After these improvements, Flink 1.19 uses exponential-delay
+restart-strategy as the default restart-strategy.
+
+#### Renaming AkkaOptions into RpcOptions
+
+##### [FLINK-32684](https://issues.apache.org/jira/browse/FLINK-32684)
+
+`AkkaOptions` are deprecated and replaced with `RpcOptions`.
+
+#### Add min number of slots configuration to limit total number of slots
+
+##### [FLINK-15959](https://issues.apache.org/jira/browse/FLINK-15959)
+
+Flink now supports defining the minimum resource requirements that the Flink cluster allocates using
+the configuration options `slotmanager.min-total-resource.cpu`, `slotmanager.min-total-resource.memory`,
+and `slotmanager.number-of-slots.min`. These options are intended to ensure that a certain minimum
+level of resources is allocated to initialize specific workers during startup, thereby speeding up
+the job startup process. Please note that these configuration options do not have any effect on
+standalone clusters, as resource allocation in such clusters is not controlled by Flink.
+
+#### Support adding custom metrics in Recovery Spans
+
+##### [FLINK-33697](https://issues.apache.org/jira/browse/FLINK-33697)
+
+A breaking change has been introduced to the `StateBackend` interface. This is relevant only to users
+that are implementing their own custom state backends.
+Newly added methods `org.apache.flink.runtime.state.StateBackend#createKeyedStateBackend(KeyedStateBackendParameters<K> parameters)`
+and `org.apache.flink.runtime.state.StateBackend#createOperatorStateBackend(OperatorStateBackendParameters parameters)`
+have replaced previous versions of the `createKeyedStateBackend` and `createOperatorStateBackend` methods.
+The new parameters POJO classes contain as fields all of the arguments that were passed directly to those methods.
+
+#### Unify the Representation of TaskManager Location in REST API and Web UI
+
+##### [FLINK-33146](https://issues.apache.org/jira/browse/FLINK-33146)
+
+Unify the representation of TaskManager location in REST API and Web UI. The `host` field is
+deprecated in favor of the newly introduced `endpoint` field that includes both the host and port
+information to distinguish multiple TaskManagers on the same host.
+
+#### Supports profiling JobManager/TaskManager with Async-profiler on Flink Web
+
+##### [FLINK-33325](https://issues.apache.org/jira/browse/FLINK-33325)
+
+In Flink 1.19, we support triggering profiling at the JobManager/TaskManager level, allowing users to
+create a profiling instance with arbitrary intervals and event modes (supported by [async-profiler](https://github.com/async-profiler/async-profiler)).
+Users can easily submit profiles and export results in the Flink Web UI.
+
+For example,
+- First, users should identify the candidate TaskManager/JobManager with performance bottleneck for profiling and switch to the corresponding TaskManager/JobManager page (profiler tab).
+- The user simply clicks on the `Create Profiling Instance` button to submit a profiling instance with specified period and mode. (The description of the profiling mode will be displayed when hovering over the corresponding mode.)
+- Once the profiling instance is complete, the user can easily download the interactive HTML file by clicking on the link.
+
+**More Information**
+- [Documents](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/ops/debugging/profiler/)
+- [FLIP-375: Built-in cross-platform powerful java profiler](https://cwiki.apache.org/confluence/x/64lEE)
+
+### SDK
+
+#### Deprecate RuntimeContext#getExecutionConfig
+
+##### [FLINK-33712](https://issues.apache.org/jira/browse/FLINK-33712)
+
+`RuntimeContext#getExecutionConfig` is now being deprecated in Flink 1.19. And this method is planned
+to be removed in Flink 2.0. More details can be found at [FLIP-391](https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=278465937).
+
+#### Deprecate RichFunction#open(Configuration parameters)
+
+##### [FLINK-32978](https://issues.apache.org/jira/browse/FLINK-32978)
+
+The `RichFunction#open(Configuration parameters)` method has been deprecated and will be removed in
+future versions. Users are encouraged to migrate to the new `RichFunction#open(OpenContext openContext)`
+method, which provides a more comprehensive context for initialization.
+Here are the key changes and recommendations for migration:
+The `open(Configuration parameters)` method is now marked as deprecated. A new method `open(OpenContext openContext)`
+has been added as a default method to the `RichFunction` interface. Users should implement the new
+`open(OpenContext openContext)` method for function initialization tasks. The new method will be
+called automatically before the execution of any processing methods(map, join, etc.). If the new
+`open(OpenContext openContext)` method is not implemented, Flink will fall back to invoking the
+deprecated `open(Configuration parameters)` method.
+
+#### Deprecate API that uses Flink's Time implementation (related to FLINK-14638)
+
+##### [FLINK-32570](https://issues.apache.org/jira/browse/FLINK-32570)
+
+Flink's Time classes are deprecated now and will be subject to deletion with the release of Flink 2.0.
+Please start to use Java's own `Duration` class, instead. Methods supporting the `Duration` class
+that replace the deprecated Time-based methods were introduced.
+
+#### Add new interfaces for SinkV2 to synchronize the API with the Source API
+
+##### [FLINK-33973](https://issues.apache.org/jira/browse/FLINK-33973)
+
+According to [FLIP-372](https://cwiki.apache.org/confluence/display/FLINK/FLIP-372%3A+Enhance+and+synchronize+Sink+API+to+match+the+Source+API) the SinkV2 API has been changed.
+The following interfaces are deprecated: `TwoPhaseCommittingSink`, `StatefulSink`, `WithPreWriteTopology`, `WithPreCommitTopology`, `WithPostCommitTopology`.
+The following new interfaces have been introduced: `CommitterInitContext`, `CommittingSinkWriter`, `WriterInitContext`, `StatefulSinkWriter`.
+The following interface method's parameter has been changed: `Sink#createWriter`
+The original interfaces will remain available during the 1.19 release line, but they will be removed
+in consecutive releases. For the changes required when migrating, please consult the Migration Plan detailed in the FLIP.
+
+
+#### Deprecate configuration getters/setters that return/set complex Java objects
+
+##### [FLINK-33581](https://issues.apache.org/jira/browse/FLINK-33581)
+
+The non-ConfigOption objects in the `StreamExecutionEnvironment`, `CheckpointConfig`, and 
+`ExecutionConfig` and their corresponding getter/setter interfaces are now be deprecated in [FLINK-33581](https://issues.apache.org/jira/browse/FLINK-33581).
+And these objects and methods are planned to be removed in Flink 2.0. The deprecated interfaces
+include the getter and setter methods of `RestartStrategy`, `CheckpointStorage`, and `StateBackend`.
+More details can be found at [FLIP-381](https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=278464992).
+
+
+### Table SQL / API
+
+#### Support Setting Parallelism for Table/SQL Sources
+
+##### [FLINK-33261](https://issues.apache.org/jira/browse/FLINK-33261)
+
+Scan table sources can now be set a custom parallelism for performance tuning via the `scan.parallelism`
+option. Currently, only the DataGen connector has been adapted to support that, Kafka connector is
+on the way. Please check [scan-table-source](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/dev/table/sourcessinks/#scan-table-source) on how to adapt your custom connectors to it.
+
+#### Adding a separate configuration for specifying Java Options of the SQL Gateway
+
+##### [FLINK-33203](https://issues.apache.org/jira/browse/FLINK-33203)
+
+Flink introduces `env.java.opts.sql-gateway` for specifying the Java options for the SQL Gateway,
+which allows you to fine-tune the memory settings, garbage collection behavior, and other relevant Java parameters.
+
+#### Support Configuring Different State TTLs using SQL Hint
+
+##### [FLINK-33397](https://issues.apache.org/jira/browse/FLINK-33397)
+
+This is a new feature in Apache Flink 1.19 that enhances the flexibility and user experience when
+managing SQL state time-to-live (TTL) settings. Users can now specify custom TTL values for regular
+joins and group aggregations directly within their queries by [utilizing the STATE_TTL hint](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/dev/table/sql/queries/hints/#state-ttl-hints).
+This improvement means that you no longer need to alter your compiled plan to set specific TTLs for
+these operators. With the introduction of `STATE_TTL` hints, you can streamline your workflow and
+dynamically adjust the TTL based on your operational requirements.
+
+#### MiniBatch Optimization for Regular Joins
+
+##### [FLINK-34219](https://issues.apache.org/jira/browse/FLINK-34219)
+
+Support mini-batch regular join to reduce intermediate result and resolve record amplification in
+cascading join scenarios. More details can be found at [minibatch-regular-joins](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/dev/table/tuning/#minibatch-regular-joins).
+
+#### Support named parameters for functions and procedures
+
+##### [FLINK-34054](https://issues.apache.org/jira/browse/FLINK-34054)
+
+When calling a function or stored procedure now, named parameters can be used. With named parameters,
+we do not need to strictly specify the parameter position, just specify the parameter name and its
+corresponding value. At the same time, if non-essential parameters are not specified, they will default to being filled with null.
+
+#### Window TVF Aggregation Supports Changelog Inputs
+
+##### [FLINK-20281](https://issues.apache.org/jira/browse/FLINK-20281)
+
+The Window aggregation operator (produced by Window TVF) can consume a changelog stream generated by
+nodes such as a CDC connector.
+
+#### Supports SESSION Window TVF in Streaming Mode
+
+##### [FLINK-24024](https://issues.apache.org/jira/browse/FLINK-24024)
+
+Users can use SESSION Window TVF in streaming mode. More details can be found at [session window-tvf](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/dev/table/sql/queries/window-tvf/#session).
+
+### Connectors
+
+#### Add committer metrics to track the status of committables
+
+##### [FLINK-25857](https://issues.apache.org/jira/browse/FLINK-25857)
+
+The `TwoPhaseCommittingSink#createCommitter` method parameterization has been changed, a new
+`CommitterInitContext` parameter has been added.
+The original method will remain available during the 1.19 release line, but they will be removed in
+consecutive releases.
+When migrating please also consider changes introduced by [FLINK-33973](https://issues.apache.org/jira/browse/FLINK-33973) and [FLIP-372]([https://cwiki.apache.org/confluence/display/FLINK/FLIP-372%3A+Enhance+and+synchronize+Sink+API+to+match+the+Source+API).
+
+### FileSystems
+
+#### GCS filesystem does not respect gs.storage.root.url config option
+
+##### [FLINK-33694](https://issues.apache.org/jira/browse/FLINK-33694)
+
+This fix resolves the issue where the `gs.storage.root.url` setting in the Hadoop configuration was
+not being acknowledged by the Sink. Warning: If you have been using this property to configure the
+GCS Source, please ensure that your tests or pipelines are not adversely affected by the GCS Sink
+now also correctly adhering to this configuration.
diff --git a/docs/content/_index.md b/docs/content/_index.md
index 1e6e1ab0751..7f4ca236b21 100644
--- a/docs/content/_index.md
+++ b/docs/content/_index.md
@@ -86,6 +86,7 @@ For some reason Hugo will only allow linking to the
 release notes if there is a leading '/' and file extension.
 -->
 See the release notes for
+[Flink 1.19]({{< ref "/release-notes/flink-1.19.md" >}}),
 [Flink 1.18]({{< ref "/release-notes/flink-1.18.md" >}}),
 [Flink 1.17]({{< ref "/release-notes/flink-1.17.md" >}}),
 [Flink 1.16]({{< ref "/release-notes/flink-1.16.md" >}}), 
diff --git a/docs/content/release-notes/flink-1.19.md b/docs/content/release-notes/flink-1.19.md
new file mode 100644
index 00000000000..efb5a3228b6
--- /dev/null
+++ b/docs/content/release-notes/flink-1.19.md
@@ -0,0 +1,362 @@
+---
+title: "Release Notes - Flink 1.19"
+---
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+# Release notes - Flink 1.19
+
+These release notes discuss important aspects, such as configuration, behavior or dependencies,
+that changed between Flink 1.18 and Flink 1.19. Please read these notes carefully if you are 
+planning to upgrade your Flink version to 1.19.
+
+## Dependency upgrades
+
+#### Drop support for python 3.7
+
+##### [FLINK-33029](https://issues.apache.org/jira/browse/FLINK-33029)
+
+#### Add support for python 3.11
+
+##### [FLINK-33030](https://issues.apache.org/jira/browse/FLINK-33030)
+
+## Build System
+
+#### Support Java 21
+
+##### [FLINK-33163](https://issues.apache.org/jira/browse/FLINK-33163)
+Apache Flink was made ready to compile and run with Java 21. This feature is still in beta mode.
+Issues should be reported in Flink's bug tracker.
+
+## Checkpoints
+
+#### Deprecate RestoreMode#LEGACY
+
+##### [FLINK-34190](https://issues.apache.org/jira/browse/FLINK-34190)
+
+`RestoreMode#LEGACY` is deprecated. Please use `RestoreMode#CLAIM` or `RestoreMode#NO_CLAIM` mode
+instead to get a clear state file ownership when restoring.
+
+#### CheckpointsCleaner clean individual checkpoint states in parallel
+
+##### [FLINK-33090](https://issues.apache.org/jira/browse/FLINK-33090)
+
+Now when disposing of no longer needed checkpoints, every state handle/state file will be disposed
+in parallel by the ioExecutor, vastly improving the disposing speed of a single checkpoint (for
+large checkpoints, the disposal time can be improved from 10 minutes to < 1 minute). The old
+behavior can be restored by setting `state.checkpoint.cleaner.parallel-mode` to false.
+
+#### Support using larger checkpointing interval when source is processing backlog
+
+##### [FLINK-32514](https://issues.apache.org/jira/browse/FLINK-32514)
+
+`ProcessingBacklog` is introduced to demonstrate whether a record should be processed with low latency
+or high throughput. `ProcessingBacklog` can be set by source operators and can be used to change the
+checkpoint interval of a job during runtime.
+
+#### Allow triggering Checkpoints through command line client
+
+##### [FLINK-6755](https://issues.apache.org/jira/browse/FLINK-6755)
+
+The command line interface supports triggering a checkpoint manually. Usage:
+```
+./bin/flink checkpoint $JOB_ID [-full]
+```
+By specifying the '-full' option, a full checkpoint is triggered. Otherwise an incremental
+checkpoint is triggered if the job is configured to take incremental ones periodically.
+
+
+## Runtime & Coordination
+
+#### Migrate TypeSerializerSnapshot#resolveSchemaCompatibility
+
+##### [FLINK-30613](https://issues.apache.org/jira/browse/FLINK-30613)
+
+In Flink 1.19, the old method of resolving schema compatibility has been deprecated and the new one
+is introduced. See [FLIP-263](https://cwiki.apache.org/confluence/display/FLINK/FLIP-263%3A+Improve+resolving+schema+compatibility?src=contextnavpagetreemode) for more details.
+Please migrate to the new method following [link](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/dev/datastream/fault-tolerance/serialization/custom_serialization/#migrating-from-deprecated-typeserializersnapshotresolveschemacompatibilitytypeserializer-newserializer-before-flink-119).
+
+#### Deprecate old serialization config methods and options
+
+##### [FLINK-34122](https://issues.apache.org/jira/browse/FLINK-34122)
+
+Configuring serialization behavior through hard codes is deprecated, because you need to modify the
+codes when upgrading the job version. You should configure this via options
+`pipeline.serialization-config`, `pipeline.force-avro`, `pipeline.force-kryo`, and `pipeline.generic-types`.
+Registration of instance-level serializers is deprecated, using class-level serializers instead.
+For more information and code examples, please refer to [link](https://cwiki.apache.org/confluence/display/FLINK/FLIP-398:+Improve+Serialization+Configuration+And+Usage+In+Flink).
+
+#### Migrate string configuration key to ConfigOption
+
+##### [FLINK-34079](https://issues.apache.org/jira/browse/FLINK-34079)
+
+We have deprecated all setXxx and getXxx methods except `getString(String key, String defaultValue)`
+and `setString(String key, String value)`, such as: `setInteger`, `setLong`, `getInteger` and `getLong` etc.
+We strongly recommend that users and developers use the ConfigOption-based get and set methods directly.
+
+#### Support System out and err to be redirected to LOG or discarded
+
+##### [FLINK-33625](https://issues.apache.org/jira/browse/FLINK-33625)
+
+`System.out` and `System.err` output the content to the `taskmanager.out` and `taskmanager.err` files.
+In a production environment, if flink users use them to print a lot of content, the limits of yarn
+or kubernetes may be exceeded, eventually causing the TaskManager to be killed. Flink supports
+redirecting the `System.out` and `System.err` to the log file, and the log file can be rolled to
+avoid unlimited disk usage.
+
+#### Support standard YAML for FLINK configuration
+
+##### [FLINK-33297](https://issues.apache.org/jira/browse/FLINK-33297)
+
+Starting with Flink 1.19, Flink has officially introduced full support for the standard YAML 1.2
+syntax ([FLIP-366](https://cwiki.apache.org/confluence/display/FLINK/FLIP-366%3A+Support+standard+YAML+for+FLINK+configuration?src=contextnavpagetreemode)). The default configuration file has been changed to `config.yaml` and placed in the
+`conf/` directory. Users should directly modify this file to configure Flink.
+If users want to use the legacy configuration file `flink-conf.yaml`, they need to copy this file
+into the `conf/` directory. Once the legacy configuration file `flink-conf.yaml` is detected, Flink
+will prioritize using it as the configuration file. In the upcoming Flink 2.0, the `flink-conf.yaml`
+configuration file will no longer work.
+More details could be found at [flink-configuration-file](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/deployment/config/#flink-configuration-file).
+
+#### Add config options for administrator JVM options
+
+##### [FLINK-33221](https://issues.apache.org/jira/browse/FLINK-33221)
+
+A set of administrator JVM options are available, which prepend the user-set extra JVM options for
+platform-wide JVM tuning.
+
+#### Flink Job stuck in suspend state after losing leadership in HA Mode
+
+##### [FLINK-34007](https://issues.apache.org/jira/browse/FLINK-34007)
+
+Fixed a bug where the leader election wasn't able to pick up leadership again after renewing the
+lease token caused a leadership loss. This required `fabric8io:kubernetes-client` to be upgraded
+from v6.6.2 to v6.9.0.
+
+#### Support dynamic source parallelism inference for batch jobs
+
+##### [FLINK-33768](https://issues.apache.org/jira/browse/FLINK-33768)
+
+In Flink 1.19, we have supported dynamic source parallelism inference for batch jobs, which allows
+source connectors to dynamically infer the parallelism based on the actual amount of data to consume.
+This feature is a significant improvement over previous versions, which only assigned a fixed default
+parallelism to source vertices.
+Source connectors need to implement the inference interface to enable dynamic parallelism inference.
+Currently, the FileSource connector has already been developed with this functionality in place.
+Additionally, the configuration `execution.batch.adaptive.auto-parallelism.default-source-parallelism`
+will be used as the upper bound of source parallelism inference. And now it will be set to 1 by default.
+If it is not set, the upper bound of allowed parallelism set via
+`execution.batch.adaptive.auto-parallelism.max-parallelism` will be used instead. If that
+configuration is also not set, the default parallelism set via `parallelism.default` or
+`StreamExecutionEnvironment#setParallelism()` will be used instead.
+
+#### Improve the exponential-delay restart-strategy
+
+##### [FLINK-33735](https://issues.apache.org/jira/browse/FLINK-33735)
+
+Flink 1.19 makes a series of improvements to exponential-delay restart-strategy, including:
+optimizing the default values of related options, support for max attempts, and solving the issue of
+inaccurate attempts in region failover. After these improvements, Flink 1.19 uses exponential-delay
+restart-strategy as the default restart-strategy.
+
+#### Renaming AkkaOptions into RpcOptions
+
+##### [FLINK-32684](https://issues.apache.org/jira/browse/FLINK-32684)
+
+`AkkaOptions` are deprecated and replaced with `RpcOptions`.
+
+#### Add min number of slots configuration to limit total number of slots
+
+##### [FLINK-15959](https://issues.apache.org/jira/browse/FLINK-15959)
+
+Flink now supports defining the minimum resource requirements that the Flink cluster allocates using
+the configuration options `slotmanager.min-total-resource.cpu`, `slotmanager.min-total-resource.memory`,
+and `slotmanager.number-of-slots.min`. These options are intended to ensure that a certain minimum
+level of resources is allocated to initialize specific workers during startup, thereby speeding up
+the job startup process. Please note that these configuration options do not have any effect on
+standalone clusters, as resource allocation in such clusters is not controlled by Flink.
+
+#### Support adding custom metrics in Recovery Spans
+
+##### [FLINK-33697](https://issues.apache.org/jira/browse/FLINK-33697)
+
+A breaking change has been introduced to the `StateBackend` interface. This is relevant only to users
+that are implementing their own custom state backends.
+Newly added methods `org.apache.flink.runtime.state.StateBackend#createKeyedStateBackend(KeyedStateBackendParameters<K> parameters)`
+and `org.apache.flink.runtime.state.StateBackend#createOperatorStateBackend(OperatorStateBackendParameters parameters)`
+have replaced previous versions of the `createKeyedStateBackend` and `createOperatorStateBackend` methods.
+The new parameters POJO classes contain as fields all of the arguments that were passed directly to those methods.
+
+#### Unify the Representation of TaskManager Location in REST API and Web UI
+
+##### [FLINK-33146](https://issues.apache.org/jira/browse/FLINK-33146)
+
+Unify the representation of TaskManager location in REST API and Web UI. The `host` field is
+deprecated in favor of the newly introduced `endpoint` field that includes both the host and port
+information to distinguish multiple TaskManagers on the same host.
+
+#### Supports profiling JobManager/TaskManager with Async-profiler on Flink Web
+
+##### [FLINK-33325](https://issues.apache.org/jira/browse/FLINK-33325)
+
+In Flink 1.19, we support triggering profiling at the JobManager/TaskManager level, allowing users to
+create a profiling instance with arbitrary intervals and event modes (supported by [async-profiler](https://github.com/async-profiler/async-profiler)).
+Users can easily submit profiles and export results in the Flink Web UI.
+
+For example,
+- First, users should identify the candidate TaskManager/JobManager with performance bottleneck for profiling and switch to the corresponding TaskManager/JobManager page (profiler tab).
+- The user simply clicks on the `Create Profiling Instance` button to submit a profiling instance with specified period and mode. (The description of the profiling mode will be displayed when hovering over the corresponding mode.)
+- Once the profiling instance is complete, the user can easily download the interactive HTML file by clicking on the link.
+
+**More Information**
+- [Documents](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/ops/debugging/profiler/)
+- [FLIP-375: Built-in cross-platform powerful java profiler](https://cwiki.apache.org/confluence/x/64lEE)
+
+### SDK
+
+#### Deprecate RuntimeContext#getExecutionConfig
+
+##### [FLINK-33712](https://issues.apache.org/jira/browse/FLINK-33712)
+
+`RuntimeContext#getExecutionConfig` is now being deprecated in Flink 1.19. And this method is planned
+to be removed in Flink 2.0. More details can be found at [FLIP-391](https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=278465937).
+
+#### Deprecate RichFunction#open(Configuration parameters)
+
+##### [FLINK-32978](https://issues.apache.org/jira/browse/FLINK-32978)
+
+The `RichFunction#open(Configuration parameters)` method has been deprecated and will be removed in
+future versions. Users are encouraged to migrate to the new `RichFunction#open(OpenContext openContext)`
+method, which provides a more comprehensive context for initialization.
+Here are the key changes and recommendations for migration:
+The `open(Configuration parameters)` method is now marked as deprecated. A new method `open(OpenContext openContext)`
+has been added as a default method to the `RichFunction` interface. Users should implement the new
+`open(OpenContext openContext)` method for function initialization tasks. The new method will be
+called automatically before the execution of any processing methods(map, join, etc.). If the new
+`open(OpenContext openContext)` method is not implemented, Flink will fall back to invoking the
+deprecated `open(Configuration parameters)` method.
+
+#### Deprecate API that uses Flink's Time implementation (related to FLINK-14638)
+
+##### [FLINK-32570](https://issues.apache.org/jira/browse/FLINK-32570)
+
+Flink's Time classes are deprecated now and will be subject to deletion with the release of Flink 2.0.
+Please start to use Java's own `Duration` class, instead. Methods supporting the `Duration` class
+that replace the deprecated Time-based methods were introduced.
+
+#### Add new interfaces for SinkV2 to synchronize the API with the Source API
+
+##### [FLINK-33973](https://issues.apache.org/jira/browse/FLINK-33973)
+
+According to [FLIP-372](https://cwiki.apache.org/confluence/display/FLINK/FLIP-372%3A+Enhance+and+synchronize+Sink+API+to+match+the+Source+API) the SinkV2 API has been changed.
+The following interfaces are deprecated: `TwoPhaseCommittingSink`, `StatefulSink`, `WithPreWriteTopology`, `WithPreCommitTopology`, `WithPostCommitTopology`.
+The following new interfaces have been introduced: `CommitterInitContext`, `CommittingSinkWriter`, `WriterInitContext`, `StatefulSinkWriter`.
+The following interface method's parameter has been changed: `Sink#createWriter`
+The original interfaces will remain available during the 1.19 release line, but they will be removed
+in consecutive releases. For the changes required when migrating, please consult the Migration Plan detailed in the FLIP.
+
+
+#### Deprecate configuration getters/setters that return/set complex Java objects
+
+##### [FLINK-33581](https://issues.apache.org/jira/browse/FLINK-33581)
+
+The non-ConfigOption objects in the `StreamExecutionEnvironment`, `CheckpointConfig`, and 
+`ExecutionConfig` and their corresponding getter/setter interfaces are now be deprecated in [FLINK-33581](https://issues.apache.org/jira/browse/FLINK-33581).
+And these objects and methods are planned to be removed in Flink 2.0. The deprecated interfaces
+include the getter and setter methods of `RestartStrategy`, `CheckpointStorage`, and `StateBackend`.
+More details can be found at [FLIP-381](https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=278464992).
+
+
+### Table SQL / API
+
+#### Support Setting Parallelism for Table/SQL Sources
+
+##### [FLINK-33261](https://issues.apache.org/jira/browse/FLINK-33261)
+
+Scan table sources can now be set a custom parallelism for performance tuning via the `scan.parallelism`
+option. Currently, only the DataGen connector has been adapted to support that, Kafka connector is
+on the way. Please check [scan-table-source](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/dev/table/sourcessinks/#scan-table-source) on how to adapt your custom connectors to it.
+
+#### Adding a separate configuration for specifying Java Options of the SQL Gateway
+
+##### [FLINK-33203](https://issues.apache.org/jira/browse/FLINK-33203)
+
+Flink introduces `env.java.opts.sql-gateway` for specifying the Java options for the SQL Gateway,
+which allows you to fine-tune the memory settings, garbage collection behavior, and other relevant Java parameters.
+
+#### Support Configuring Different State TTLs using SQL Hint
+
+##### [FLINK-33397](https://issues.apache.org/jira/browse/FLINK-33397)
+
+This is a new feature in Apache Flink 1.19 that enhances the flexibility and user experience when
+managing SQL state time-to-live (TTL) settings. Users can now specify custom TTL values for regular
+joins and group aggregations directly within their queries by [utilizing the STATE_TTL hint](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/dev/table/sql/queries/hints/#state-ttl-hints).
+This improvement means that you no longer need to alter your compiled plan to set specific TTLs for
+these operators. With the introduction of `STATE_TTL` hints, you can streamline your workflow and
+dynamically adjust the TTL based on your operational requirements.
+
+#### MiniBatch Optimization for Regular Joins
+
+##### [FLINK-34219](https://issues.apache.org/jira/browse/FLINK-34219)
+
+Support mini-batch regular join to reduce intermediate result and resolve record amplification in
+cascading join scenarios. More details can be found at [minibatch-regular-joins](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/dev/table/tuning/#minibatch-regular-joins).
+
+#### Support named parameters for functions and procedures
+
+##### [FLINK-34054](https://issues.apache.org/jira/browse/FLINK-34054)
+
+When calling a function or stored procedure now, named parameters can be used. With named parameters,
+we do not need to strictly specify the parameter position, just specify the parameter name and its
+corresponding value. At the same time, if non-essential parameters are not specified, they will default to being filled with null.
+
+#### Window TVF Aggregation Supports Changelog Inputs
+
+##### [FLINK-20281](https://issues.apache.org/jira/browse/FLINK-20281)
+
+The Window aggregation operator (produced by Window TVF) can consume a changelog stream generated by
+nodes such as a CDC connector.
+
+#### Supports SESSION Window TVF in Streaming Mode
+
+##### [FLINK-24024](https://issues.apache.org/jira/browse/FLINK-24024)
+
+Users can use SESSION Window TVF in streaming mode. More details can be found at [session window-tvf](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/dev/table/sql/queries/window-tvf/#session).
+
+### Connectors
+
+#### Add committer metrics to track the status of committables
+
+##### [FLINK-25857](https://issues.apache.org/jira/browse/FLINK-25857)
+
+The `TwoPhaseCommittingSink#createCommitter` method parameterization has been changed, a new
+`CommitterInitContext` parameter has been added.
+The original method will remain available during the 1.19 release line, but they will be removed in
+consecutive releases.
+When migrating please also consider changes introduced by [FLINK-33973](https://issues.apache.org/jira/browse/FLINK-33973) and [FLIP-372]([https://cwiki.apache.org/confluence/display/FLINK/FLIP-372%3A+Enhance+and+synchronize+Sink+API+to+match+the+Source+API).
+
+### FileSystems
+
+#### GCS filesystem does not respect gs.storage.root.url config option
+
+##### [FLINK-33694](https://issues.apache.org/jira/browse/FLINK-33694)
+
+This fix resolves the issue where the `gs.storage.root.url` setting in the Hadoop configuration was
+not being acknowledged by the Sink. Warning: If you have been using this property to configure the
+GCS Source, please ensure that your tests or pipelines are not adversely affected by the GCS Sink
+now also correctly adhering to this configuration.