...
Additional key naming rule for boolean type options (In discussion): ONLY add 'enabled' when there are more detailed configurations under the same prefix, to prevent one name from serving as a prefix to another. Otherwise, do not add 'enabled' as suffix. Alternatives:
Option 1: Use enumeration options instead if possible. But this may cause some name collisions or confusion as we discussed and we should unify the statement everywhere.
Option 2: Use boolean options and add 'enabled' as the suffix.
- Option 3 (Current preferred choice): Use boolean options and ONLY add 'enabled' when there are more detailed configurations under the same prefix, to prevent one name from serving as a prefix to another.
Please note that this FLIP does not change any state accessing, checkpointing and recovery logic. To be more specific, the detailed migration plan for the individual options is as follows:
...
Original (Current) option | Proposed New option | Note | |
state.checkpoints.num-retained | execution.checkpointing.num-retained | ||
state.checkpoint.cleaner.parallel-mode | execution.checkpointing.cleaner.parallel-mode | ||
state.backend.incremental | execution.checkpoint.typeexecution.checkpointing.incremental (In discussion) | ||
state.backend.local-recovery | execution.checkpointing.local-backup.enabled | Whether to do checkpoint on local disk, another option | |
taskmanager.state.local.root-dirs | execution.checkpointing.local-backup.dir | ||
state.savepoints.dir | execution.checkpointing.savepoint.-dir | ||
state.checkpoints.dir state.checkpoint-storage | execution.checkpointing.dir | One URI is enough for specifying the checkpoint directory and storage. 'jobmanager' and 'jm://' are special URI for job manager based storage. | |
state.storage.fs.memory-threshold | execution.checkpointing.data-inline-threshold | ||
state.storage.fs.write-buffer-size | execution.checkpointing.write-buffer-size |
...
Existing UT/IT can ensure the compatibility for old options. New tests will cover the new options.
Rejected Alternatives
...
- state.backend.incremental → execution.checkpoint.type (an enumeration option which can be 'full' (default) or 'incremental')
- `Checkpoint Type` is used to describe aligned/unaligned checkpoint in the document
- state.savepoints.dir → execution.checkpointing.savepoint.dir
- checkpointing.savepoint is wired.
- state.backend.local-recovery → execution.checkpointing.local-copy
- local-backup sounds better
- execution.recovery as the configuration naming prefix for state recovery
- `recovery` means too many things. Use `state-recovery` instead.