
154
|
第
8
章
过若干个软件层和一个物理媒介(比如光纤或电缆),所有这些操作都不是瞬间完成的。
Michael Lewis 在他所著的书
Flash Boys
(Simon and Schuster 公司出版)中讲述了这样
一个故事,公司花费数百万美元把延迟降低几毫秒,从而能比竞争对手更快地访问交易
所。这是一个把延迟作为竞争优势的绝佳例子,然而值得一提的是,根据其他一些研
究,比如文献 [BARTLETT16],过时报价套利(通过比竞争对手更快地得知价格并执行
交易来获取利润)并不能使快速交易者从市场中获利。
从上述教训当中学习,我们增加了重试和重连机制,并去掉了关于瞬间执行的假设,但
是事实证明这还不够:当我们增加消息的数量、发送速率和大小,并向现有网络中添加
新的进程时,我们不应该假设
带宽是无限的
。
1994 年,Peter Deutsch 发布过一个如今很有名的断言列表,标题为“分布式
计算的误区”,描述了分布式计算中易被忽视的一些方面。除了网络可靠性、
延迟和带宽假设,它还提到了其他问题,比如,网络的安全性、可能存在的攻
击者、有意或无意的拓扑变化都可能打破我们的一些假设,这些假设包括:某
一资源存在性和所在位置,网络传输所消耗的时间和资源,以及最后
—
存在
一个拥有整个网络的知识和控制权的权威个体。
Deutsch 的列表可以说非常详尽,但它侧重于通过链路传递消息时可能出错的地方。这
些担忧是合理的,而且描述了最通用、最底层的复杂性,但不幸的是,在设计和实现分
布式系统时,我们还做出了很多其他假设,这些假设也可能在运行中导致问题。 ...