flink 在1.15版本后开始提供generic log-based incremental checkpoints的检查点方案,目的在于减少checkpoint的耗时,尽量缩短端到端的数据处理延迟,本文就来看下这种新类型的checkpoint的设计
generic log-based incremental checkpoints的设计主要是参考事务数据库的设计方案,总体来说就是insert、update、delete操作先记录到事务日志文件中,然后应用到DB数据文件中,通过这样的设计,相当于每时每刻状态操作都已经持久化到了事务日志中,遇到checkpoint barrier的时候也是只要确保barrier之前的修改操作已经记录到事务日志中即可,这样的话,整个checkpoint操作就会非常快,当然缺点也是显而易见,包括双写会导致状态操作的时延增加,状态的大小空间占用庞大,crash崩溃后恢复耗时增加等