Skip to main content

常见生产环境问题

内存溢出(out-of-memory)

在生产环境中,RisingWave 最有可能见到的问题是内存溢出。不少用户可能会有疑问:RisingWave 使用 Rust 编写保证内存安全,其又使用存算分离架构将内部状态存放在远端,为什么还会出现内存溢出?

实际上,在任意一个数据库系统中,内存可能被多个功能模组消耗,包括但不限于:缓存、计算、执行计划、网络传输等等。尽管 RisingWave 已经较传统流处理系统拥有更好的存储管理方式,但在分配资源过少的情况下,RisingWave 仍然会出现内存溢出情况。

回填(backfill)

在流处理系统中,当流计算首次触发、上游数据格式变更、流计算逻辑变更、故障恢复等情况发生时,系统就可能触发回填。 由于回填数据量可能非常大,因此回填效率是用户非常在乎的功能。

RisingWave 在数据回填方面做了不少优化,让用户有更好的体验。其中一个非常重要的优化在于可以在回填过程中动态加入节点,使用高并行度进行回填。

计算与服务节点配置

RisingWave 使用物化视图来表示流计算逻辑,而用户也可以直接对物化视图进行计算结果查询。由于流计算与结果查询服务均可能会消耗大量资源,用户可能希望将两者进行资源隔离。RisingWave 支持这种隔离,其隔离方式是允许用户单独配置计算与服务节点数量与大小。请联系 RisingWave 开发团队寻求帮助。