5、Ray 远程演员的持久化与扩展

Ray 远程演员的持久化与扩展

1. 持久化概述

在实现中,我们使用文件系统进行持久化,但也可以将相同的方法应用于其他类型的持久化,如 S3 或数据库。系统会对失败的任务最多重试 n 次,之后在调用 ray.get 时任务将抛出 RayActorError 异常。当一个演员重启时,会重新运行其构造函数来重新创建状态,因此在演员执行期间更改的状态将会丢失。为了保留这种状态,演员必须实现自定义的持久化。

1.1 整体状态保存

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

以下是一个使用文件系统持久化的持久化账户演员的示例代码:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值