数据持久化
RisingWave 采用 Chandy-Lamport 算法创建检查点。检查点是代表整个系统在特定时间点的一致状态的全局快照。
创建检查点时,流算子和输出结果的增量状态会被持久保存在高可用的远程存储中。默认的检查点间隔为 10 秒。
在 RisingWave 中,Compute 节点在创建检查点之前会在内存中缓冲脏状态,从而执行写批处理。脏状态指的是自上次检查点以来未保存的状态。
当内存缓冲区超过某个内存阈值(可配置)或创建检查点时,脏状态将被刷新并持久保存在远程存储中。
RisingWave 并不要求所有数据都保存在内存中才能运行。数据可以持久化至:
- S3 或与 S3 兼容的对象存储
- 谷歌云存储,或 HDFS/WebHDFS(通过 Apache OpenDAL 实现支持)
如果您有更多的内存资源,通常可以实现更好的缓存,从而提高性能,特别是对于要求很高的工作负载。不过,也可以通过分配有限的内存资源,实现中小型工作负载中等性能,从而节省一些成本。