Home avatar

主题的晦涩 人生的短暂

[Paper Note] Finding a Needle in Haystack Facebook's Photo Storage

背景

Facebook 存储 2600 亿张照片,数据量超过 20 PB,且处于迅速增长中。Facebook 照片的工作流有以下特征:

  • 单次写,多次读,很少删除。
  • 长尾:用户会访问旧照片,这些照片不在 CDN 中。

Facebook 一开始直接将照片存储在文件系统中,并通过 NFS 导出,但存在以下问题:

[Paper Note] Acto Automatic End-to-End Testing for Operation Correctness of Cloud System Management

背景

许多部署在 Kubernetes 等现代云平台上的系统使用 operator 替代人工部署,但这些 operator 通常没有完整的 e2e 测试,极大的影响了分布式系统的可靠性。

由于这些原因,人工编写完善的 e2e 测试基本上是不可行的:

  1. 开发者很难在庞大的状态空间中构造良好的测试用例。人工编写的 e2e 测试通常从理想的初始状态触发,一步(只修改一次 spec)到达最终状态。这种测试无法覆盖足够多的状态转移。
  2. operator 的开发者和被管理的系统的开发者往往不是一拨人,operator 开发者很难有足够的知识完善 e2e 测试。
  3. operator 的协调循环(reconcile loop)涉及大量状态迁移,其中一些还涉及被管理系统的细节。

论文开发了一个自动生成 operator e2e 测试的框架 Acto,发现了大量流行的系统的 operator 中的 bug,其中某些 bug 甚至是由 Kubernetes 和 Go 语言运行时的 bug 导致的。

[Paper Note] Wisckey Separating Keys From Values in Ssd-Conscious Storage

背景

LSM Tree 已经在 write-intensive database 中大量应用,但旧的实现存在以下问题:

  1. 严重的读写放大(read/write amplification)
  2. 没有充份利用 SSD 的内部并行性。

问题 1 尤为严重,LevelDB 的最坏情况下,写放大(从 L0 下沉至 L1)为 50,读放大(从 L0 读取所有 SST,再读穿到 L6)为 24×14 = 366。严重的读写放大不仅会导致 SSD 磨损,还会导致占用大量带宽。

0%