Moirai: Optimizing Placement of Data and Compute in Hybrid Clouds (SOSP 2025)

一句话总结:基于 MIP 的混合云数据+计算联合摆放框架,在 Uber 四个月 6670 万 query、13.3 EB 访问的 trace 上把混合云部署成本相对 Alibaba Yugong 再砍 97%(egress 降 95–99.5%,副本降 99%,on-prem 网络降 89–98%)。

问题

企业长期停留在 on-prem + public cloud 的 hybrid 状态(Uber 预计 5 年)。跨站数据流带来巨大成本:cloud egress 9–11¢/GB(1 PiB ≈ 1.6M/年、为规避 egress 而做的全量复制同样贵(Twitter 300 PB 副本 ≈ $90M/年)。现有方案各有毛病:No Rep egress 费爆炸;Rep 3Mon 存储费爆炸;Alibaba 的 Yugong 按 “project” 粒度摆放依赖人组织结构,但 Uber 只有 10% 的读发生在 project 内,且用固定副本预算+只优化带宽,与混合云的弹性存储/egress 费不匹配。

核心方法

Moirai 把问题建成一个 Mixed-Integer Programming 问题,同时决定每张表放 on-prem/cloud/双副本、每个 job 路由到哪里,目标函数含 egress、副本存储、专线容量费。关键 scalability trick:

  • Spinner 从 access log 构建 job-table bipartite graph,用 query template 指纹(128-bit hash, 参考 Microsoft/Meta/PostgreSQL 做法)把 recurring job 聚类
  • 过去一周未访问的表整体剪枝,把问题规模从不可解压到几小时内跑完
  • 按 dependency 做 grouping 取代项目层次 grouping
  • 预选常用副本表,副本决策弱化为一个独立子问题
  • dependency-aware job routing:对新 job,用 per-table access-size predictor 预测远程 fetch 量并路由到最小化 egress 的一侧
  • 周期重优化 + ingress/egress penalty:避免来回搬数据

关键结果

  • 50/50 on-prem/cloud split 下,比 Yugong 降成本 97%
  • Egress 降 95–99.5%,副本降最多 99%,on-prem 网络需求降 89–98%
  • 周运行时从朴素 MIP 的 10 天压到几小时
  • 对混合云容量比例变化(渐进迁移场景)成本下降持续,验证 data-move penalty 的价值
  • 已给出 Uber 生产部署路径,simulator 与 trace 承诺公开

相关