[ 
https://issues.apache.org/jira/browse/FLINK-34491?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dhruv Patel updated FLINK-34491:
--------------------------------
    Description: 
This task is to move away from experimental support for Java 17 to production 
support so that teams running Flink in production can migrate to Java 17 
successfully

*Background:*

Flink supports protobuf dataformat to exchange messages between different 
operators and the serialization and deserialization of those protobufs are 
performed by library called "Kryo". In order to move away from experimental 
support of Java 17 released as part of Flink 1.18.1, the Kryo library in Flink 
1.18.1 needs to be updated from 2.24.0 to 5.5.0 because Kryo 2.24.0 does not 
support Java 17. This improvement plan is tracked as part of this ticket 
https://issues.apache.org/jira/browse/FLINK-3154.

All Flink applications using protobuf currently generate state with Kryo v2. 
Once the above improvement plan is complete all Flink applications will fully 
support reading that state and write newer state with Kryo v5. However, latest 
Kryo v5 doesn't support snapshots made by a previous Kryo v2. This will prevent 
applications which are using snapshot mechanism to deploy their jobs to latest 
Flink version with Kryo v5 support without a bridge version running on Java 11. 
Applications will have to run on a bridge release version that will read their 
state with Kryo v2 data and write it with Kryo v5 data before upgrading to a 
future version of Flink that completely drops support for Kryo v2.

Basically, Flink applications using protobuf dataformat cannot move directly 
from Java 8 to Java 17 without downtime. Applications will need to first move 
to Java 11 (bridging version) and then move to Java 17 to have a safe 
deployment.

*Blocker for this task:*

Upgrade to Kryo 5.5.0 which supports Java 17 
https://issues.apache.org/jira/browse/FLINK-3154.

  was:
This task is to move away from experimental support for Java 17 to production 
support so that teams running Flink in production can migrate to Java 17 
successfully

*Background:*

Flink supports protobuf dataformat to exchange messages between different 
operators and the serialization and deserialization of those protobufs are 
performed by library called "Kryo". In order to move away from experimental 
support of Java 17 released as part of Flink 1.18.1, the Kryo library in Flink 
1.18.1 needs to be updated from 2.24.0 to 5.5.0 because Kryo 2.24.0 does not 
support Java 17. This improvement plan is tracked as part of this ticket 
https://issues.apache.org/jira/browse/FLINK-3154.

All Flink applications using protobuf currently generate state with Kryo v2. 
Once the above improvement plan is complete all Flink applications will fully 
support reading that state and write newer state with Kryo v5. However, latest 
Kryo v5 doesn't support snapshots made by a previous Kryo v2. This will prevent 
applications which are using snapshot mechanism to deploy their jobs to latest 
Flink version with Kryo v5 support without a bridge version running on Java 11. 
Applications will have to run on a bridge release version that will read their 
state with Kryo v2 data and write it with Kryo v5 data before upgrading to a 
future version of Flink that completely drops support for Kryo v2.

*Blocker for this task:*

Below are some of the blocker task which prevent certain Flink applications 
which use protobuf from upgrading to Java 17
*Blocker 1:* Upgrade to Kryo 5.5.0 which supports Java 17 
https://issues.apache.org/jira/browse/FLINK-3154.

*Blocker 2:* Validate whether a snapshot with Java 8 is compatible with Java 17 
without using a bridge version running on Java 11.
 https://issues.apache.org/jira/browse/FLINK-33707


> Move from experimental support to production support for Java 17
> ----------------------------------------------------------------
>
>                 Key: FLINK-34491
>                 URL: https://issues.apache.org/jira/browse/FLINK-34491
>             Project: Flink
>          Issue Type: New Feature
>    Affects Versions: 1.18.1
>            Reporter: Dhruv Patel
>            Priority: Major
>
> This task is to move away from experimental support for Java 17 to production 
> support so that teams running Flink in production can migrate to Java 17 
> successfully
> *Background:*
> Flink supports protobuf dataformat to exchange messages between different 
> operators and the serialization and deserialization of those protobufs are 
> performed by library called "Kryo". In order to move away from experimental 
> support of Java 17 released as part of Flink 1.18.1, the Kryo library in 
> Flink 1.18.1 needs to be updated from 2.24.0 to 5.5.0 because Kryo 2.24.0 
> does not support Java 17. This improvement plan is tracked as part of this 
> ticket https://issues.apache.org/jira/browse/FLINK-3154.
> All Flink applications using protobuf currently generate state with Kryo v2. 
> Once the above improvement plan is complete all Flink applications will fully 
> support reading that state and write newer state with Kryo v5. However, 
> latest Kryo v5 doesn't support snapshots made by a previous Kryo v2. This 
> will prevent applications which are using snapshot mechanism to deploy their 
> jobs to latest Flink version with Kryo v5 support without a bridge version 
> running on Java 11. Applications will have to run on a bridge release version 
> that will read their state with Kryo v2 data and write it with Kryo v5 data 
> before upgrading to a future version of Flink that completely drops support 
> for Kryo v2.
> Basically, Flink applications using protobuf dataformat cannot move directly 
> from Java 8 to Java 17 without downtime. Applications will need to first move 
> to Java 11 (bridging version) and then move to Java 17 to have a safe 
> deployment.
> *Blocker for this task:*
> Upgrade to Kryo 5.5.0 which supports Java 17 
> https://issues.apache.org/jira/browse/FLINK-3154.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to