- 继续讨论 Jeremy 的提案
- 具体涵盖的内容 - 介绍两者 + 验证对 TFF 的理解
- 针对新受众的简要回顾:
- 现在,服务器/协调器向客户端发起的所有通信
- 在许多场景中,客户端无法被寻址,它们没有入口端点
- 想要一个带服务器端端点的设置来建立连接
- 生态系统的理想补充,与许多应用场景相关
- Jeremy 的提案中发现的问题 - 上传所有响应的任务存储的概念与我们试图保留的隐私属性不一致。传输到服务器的数据流必须由联合算子调解,并且不应在单个 TFF 执行器请求/响应的粒度上发生。
- (TFF 执行器协议的讨论)
- (在这个 YouTube 录像中,对执行器接口进行了几分钟的概念性介绍)
- TFF 支持两种部署方式:
- 有状态的客户端。
- 一般的 TFF 执行器接口就是为了支持这种模式而设计的。
- 客户端托管执行器。
- 响应执行器请求而返回的句柄保持客户端状态。
- 将这些句柄传递给支持客户端运算和流水线处理的后续执行器请求。
- 这当然可以通过客户端启动的连接来实现,尽管目前 TFF 仓库中没有为此设计的组件。
- 对于客户端启动的连接,控制仍然是自上而下的,由服务器端的执行器驱动。
- 尽管编排请求和响应交换的机制可能会根据启动通信的一方、连接是否长时间运行等而有所不同,但在逻辑级别上,请求仍由服务器发出。
- 客户端可以反复联系服务器以提供响应并要求后续请求。
- 客户端在与服务器保持联系的同时仍会在本地保留状态。
- 客户端状态丢失或服务器超时仍会导致整个计算失败(与常规执行器设置相同)。
- 无状态客户端。
- 如上面所述,与通用 TFF 执行器协议不兼容。
- 但是,它可以由 MapReduce 编译器提供支持 – TFF 的 tff.mapreduce.backends 模块中有一个库函数,用于将 TFF 计算的类转化为可以在无状态客户端方式下运行的类似 MapReduce 的形式。
- 有状态的客户端。
- 接下来的步骤:Jeremy 的提案是可以挽救的(但需要在客户端加入有状态性)
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-01-11。
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2024-01-11。"],[],[]]