You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Rui Fan (Jira)" <ji...@apache.org> on 2024/01/05 03:28:00 UTC

[jira] [Commented] (FLINK-33935) Improve the default value doc and logic for some state backend and checkpoint related options

    [ https://issues.apache.org/jira/browse/FLINK-33935?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17803394#comment-17803394 ] 

Rui Fan commented on FLINK-33935:
---------------------------------

Merged to master(1.19) via: 4a852fee28f2d87529dc05f5ba2e79202a0e00b6 and cf0ac00cfe84c34af64308cebfc4a9034b94fddc

> Improve the default value doc and logic for some state backend and checkpoint related options
> ---------------------------------------------------------------------------------------------
>
>                 Key: FLINK-33935
>                 URL: https://issues.apache.org/jira/browse/FLINK-33935
>             Project: Flink
>          Issue Type: Improvement
>          Components: Runtime / Checkpointing, Runtime / State Backends
>            Reporter: Rui Fan
>            Assignee: Rui Fan
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.19.0
>
>
> Some state backend and checkpoint related options don't set the default value directly, but but they implement default value based on code. Such as:
>  * execution.checkpointing.tolerable-failed-checkpoints
>  ** [https://nightlies.apache.org/flink/flink-docs-release-1.18/docs/deployment/config/#execution-checkpointing-tolerable-failed-checkpoints]
>  * state.backend.type
>  ** [https://nightlies.apache.org/flink/flink-docs-release-1.18/docs/deployment/config/#state-backend-type]
> h2. Option1
> execution.checkpointing.tolerable-failed-checkpoints doesn't have default value, but CheckpointConfig#getTolerableCheckpointFailureNumber callsĀ  {color:#9876aa}configuration{color}.getOptional(ExecutionCheckpointingOptions.{color:#9876aa}TOLERABLE_FAILURE_NUMBER{color}).orElse({color:#6897bb}0{color}).
> It means the 0 is default value of execution.checkpointing.tolerable-failed-checkpoints.
> h2. Option2
> state.backend.type does't have default value, but StateBackendLoader#loadFromApplicationOrConfigOrDefaultInternal callsĀ 
> loadStateBackendFromConfig(config{color:#cc7832}, {color}classLoader{color:#cc7832}, {color}logger). When the return value is null, Flink will consider the hashmap as the default state backend.
> I checked all callers of StateBackendLoader#loadStateBackendFromConfig, if we change the default value of state.backend.type to hashmap. All of them work well.
> h2. Why set the default value directly is fine?
> From user side, it's clearer.
> From flink developers or maintainers side, it's easy to maintain.
> h2. Proposed changes:
> Adding the default value for them:
>  * execution.checkpointing.tolerable-failed-checkpoints: 0
>  * state.backend.type: hashmap
> Note: this JIAR adds the default value, but the behaviour is absolutely same with old one, so it doesn't introduce any effect for users. (So the FLIP isn't necessary IIUC.)



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