(相关资料图)
想象一下,您想从ATM取款。您希望它能够正确显示您的帐户余额并快速处理您的请求。然而,网络延迟使得系统很难同时满足这两个简单的期望。如果ATM系统试图实现高“一致性”,这意味着它通过检查远程数据库来显示最新的账户余额,它可能会让您等待甚至阻止您在繁忙时间访问您的账户。
另一方面,如果ATM系统倾向于“可用性”,它可以让您快速访问您的帐户,但存在显示不准确信息的风险。为避免不良结果,设计ATM系统和其他分布式系统需要做出明智的权衡。
为了帮助系统设计人员做出这些权衡,来自加州大学伯克利分校和德累斯顿技术大学的一组研究人员发现了一致性、可用性和网络延迟之间的简单代数关系。这项研究发表在《智能计算》上。
研究人员将这种代数关系称为一致性-可用性-表观延迟定理;它将一致性、可用性和表观延迟量化为时间间隔。CAL定理建立在EricBrewer著名的一致性-可用性-网络分区定理之上。
CAP定理让系统设计者在发生网络故障时预先选择牺牲一致性、可用性或两者,而CAL定理允许系统设计者根据情况调整他们的选择——一种支持“具有明确陈述假设的严格设计”的方法”
严格的设计对于控制连接设备(例如工厂机器人、医疗设备和安全系统)的复杂网络的分布式系统至关重要,这些设备在不同节点具有不同的延迟并且容易出现网络故障。使用CAL定理和LinguaFranca协调语言(一种允许程序员指定不同节点应如何相互交互的强大工具),系统设计人员可以对复杂网络进行建模并使用结果来定制分布式系统以提高可靠性和效率。
研究人员使用一个简单的ATM网络来跟踪余额和处理交易,从而证明了他们的方法的有效性。他们使用CAL定理对ATM网络建模,并根据使用LF协调语言指定的最低一致性和可用性要求得出网络延迟的界限。
保持在这些范围内,他们能够通过做出有关软件放置的决策以及一致性和可用性之间的权衡来优化网络设计。在现实世界中,这种优化可能是实现业务目标所必需的。
研究人员还展示了在部署此类系统后如何检测和处理违反网络延迟要求的情况。借助LF协调语言提供的内置故障处理程序,系统设计人员可以选择牺牲一致性或可用性并“优雅地处理此类故障”。
此外,研究人员基于CAL定理实现了两个协调扩展——一个集中式和一个分散式——支持随着网络延迟的变化在一致性和可用性之间进行灵活的权衡。集中式协调机制优先考虑一致性,而分散式协调机制优先考虑可用性。可以根据上下文的需要定制采用这些机制的系统。