5、深入理解 Ray 远程 Actor:持久化与扩展策略

深入理解 Ray 远程 Actor:持久化与扩展策略

1. 持久化的重要性与实现方式

在某些实现中,我们采用文件系统持久化,但同样的方法也适用于其他类型的持久化,如 S3 或数据库。系统会对失败的任务重试最多 n 次,之后在调用 ray.get 时任务将抛出 RayActorError 异常。

当 Actor 重启时,会重新运行其构造函数来重建状态。因此,如果在 Actor 执行期间状态发生了改变,这些改变将会丢失。为了保留这些状态,Actor 必须实现自定义的持久化。

1.1 整体状态持久化

在一些情况下,将状态作为一个整体保存是可行的,特别是当状态的大小相对较小且状态变化相对较少时。为了简化示例,我们使用本地磁盘持久化。但在分布式环境中,应考虑使用网络文件系统(NFS)、亚马逊简单存储服务(S3)或数据库,以便从 Ray 集群的任何节点访问 Actor 的数据。

以下是一个使用文件系统持久化的持久化 Account Actor 的示例:

@ray.remote
class Account:
    def __init__(self, balance: float, minimal_balance: float, account_key: str,
                 basedir: str = '.'):
        self.basedir = basedir
        self.key = account_key
        i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值