在Stephendevgins在linuxdevcenter.com上的2003年这篇文章中,Bram Cohen的BitTorrent被描述为使用了“修复一切”设计模式。
Cohen使用幂等性是一种较不常见的方法,这两种方法都使BitTorrent较难掌握,但值得研究。多次应用一个过程是幂等的,不会导致任何进一步的更改。科恩说,他使用一种称为“固定一切”的设计模式,该功能可以对许多更改做出反应,而无需真正注意所有更改。他解释说:“您注意到发生的事件,然后调用以这种完全幂等的方式编写的fix all函数,然后清除可能发生的一切并从头开始重新计算。” 幂等使某些困难的计算变得容易,但使事情有些混乱。通话发生什么变化并不总是很清楚,如果有的话。您不需要事先知道。您可以自由调用该函数,
听起来很不错。
但是,在我看来,调用幂等“修复所有问题”功能将以提高效率为代价提高系统的鲁棒性,并有可能搞砸包含系统(可能更喜欢仔细计划和执行的过程)。
不过,我不能说我曾经使用过它。我也无法在线找到他的应用程序的来源(但是我确实找到了一个声称基于它的应用程序。)。在本文之外也找不到参考(我认为我的google-fu很好),但是我确实在SOApatterns.org上找到了“幂等能力”条目。
这个想法被另一个名字更好地了解吗?
什么是“修复一切”设计模式?它的优缺点是什么?
This sounds quite nice on the face of it.
真?这对我来说太可怕了!