什么时候写入记录以使用 Spark Streaming 预写日志?

When are records written to write ahead log with spark streaming?

我在使用 Spark 流的应用程序中启用了 writeAheadLog。记录将在什么时候写入 writeAheadLog?是在调用 store(...) 时还是在记录为 received/accepted 时立即调用?当我试图实现一个可靠的接收器时,我想在实际存储它们之前先收集一堆记录。现在,如果应用程序在存储之前失败,我是否可以确定我在缓冲区中拥有但尚未调用 store() 的记录将出现在 writeAheadLog 中?

另外,当应用程序重新启动时,处理日志中记录的正确方法是什么。我想存储这些事件,有没有一种简单的方法来访问它们?

我做了一些测试,似乎记录是在 store() 时写入 writeAheadLog 的。这意味着需要额外的操作来确保在存储之前收集记录的缓冲区的故障安全。