Hi Chengzhi Zhao,
I think this is rather an issue with the ContinuousFileReaderOperator than with the checkpointing algorithm in general.
A source can decide which information to store as state and also how to handle failures such as file paths that have been put into state but have been removed from the file system.
It would be great if you could open a JIRA issue with a feature request to improve the failure behavior of the ContinuousFileReaderOperator.
It could for example check if a path exists and before trying to read a file and ignore the input split instead of throwing an exception and causing a failure.
If you want to, you can also work on a fix and contribute it back.