rkhachatryan commented on a change in pull request #18086:
URL: https://github.com/apache/flink/pull/18086#discussion_r768523967
##########
File path:
flink-runtime/src/main/java/org/apache/flink/runtime/state/StateBackend.java
##########
@@ -172,4 +174,19 @@ OperatorStateBackend createOperatorStateBackend(
default boolean useManagedMemory() {
return false;
}
+
+ /**
+ * Tells if a state backend supports taking forced full snapshots. Forced
full snapshots are
+ * snapshots that do not share files with previous snapshots. The feature
is necessary to
+ * properly support {@link RestoreMode#NO_CLAIM} mode.
+ *
+ * <p>If a state backend supports forced full snapshots, it should create
an independent
+ * snapshot when it receives {@link
CheckpointOptions#isForcedFullSnapshot()} request in {@link
+ * Snapshotable#snapshot(long, long, CheckpointStreamFactory,
CheckpointOptions)}.
+ *
+ * @return If the state backend supports taking forced full snapshots.
+ */
+ default boolean supportsForcedFullSnapshot() {
Review comment:
I'd consider duplication as an optimization.
Anyways, I think the idea is to create not a full checkpoint, but to "break
the lineage". So independent and full are distinct to me. For example, it could
be enough to re-upload/duplicate the files added before some intial checkpoint.
Btw, what do you think about adding checkpointID as an argument, so that the
above optimization (re-upload only old) can be implemented?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]