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

Rui Fan resolved FLINK-33935.
-----------------------------
    Resolution: Fixed

> 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)

Reply via email to