跳到主要内容

Harvest, Yield, and Scalable Tolerant Systems

TL;DR

  • 衡量系統各個部分的重要性,來做到graceful degradation
  • 將整個系統拆分成功能不互相重疊的subsystems,針對各個功能做consistency和availability的衡量,並且可以把輔助性的功能(log、metrics)抽出來並部署到所有subsystem(sidecar pattern)

Goal

提出設計reliable、robust distributed system的方法(strategies)。

Term definition

Yield: 完成請求的probability (availability) Harvest: response的資料完整性 (consistency),考量到distributed system,資料update以後拿到舊資料的比例也算在yield的一部分。

Strategies

Trading Harvest for Yield - Probabilistic Availability

在情況允許的情況下,犧牲harvest來提高yield(CA)。

Application Decomposition and Orthogonal Mechanisms

將系統拆分成彼此orthogonal的subsystems,就可以針對不同的subsystems決定要CP還是CA,也可以把stateless和stateful的部分拆開,或是把輔助性的功能獨立出來,做成sidecar pattern