Github user StephanEwen commented on the issue:

    https://github.com/apache/flink/pull/5982
  
    Good point about the renaming on `close()` in case close is called for 
cleanup, rather than success.
    
    We could follow the same semantics as in 
[CheckpointStateOutputStream](https://github.com/apache/flink/blob/master/flink-runtime/src/main/java/org/apache/flink/runtime/state/CheckpointStreamFactory.java#L61)
    
    There the semantics are:
      - `close()` means "close on error / cleanup" and closes the stream and 
deletes the temp file.
      - `closeAndPublish()` would mean "close on success" and close the stream 
and rename the file.
      - After ``closeAndPublish()` has been called, `close()` becomes a no-op.
    
    The 
[FsCheckpointMetadataOutputStream](https://github.com/apache/flink/blob/master/flink-runtime/src/main/java/org/apache/flink/runtime/state/filesystem/FsCheckpointMetadataOutputStream.java)
 implements that pattern, I think it worked well and is easy to use.
    



---

Reply via email to