我查阅了很多关于最终一致性的参考资料,他们都谈到了为什么一致性很重要,以及帕克斯和拜占庭的一般问题等等。我更感兴趣的是了解如何实际实施或确保长途网络上的最终一致性-需要做什么,挑战是什么,规避、预防和防范任何可能阻碍最终一致性的可能方法。任何从你的个人经历到你可能知道的链接都会非常有用。谢谢!
kwvwclae1#
最大的挑战:记住你想要达到的目标。根据我的经验,电子商务系统面临三个挑战:任何时间点上每个密钥的未知复制级别。为了解决这个问题,采用了各种技术:读取修复、merkle树。对于长途网络,这一点可能具有挑战性。在仲裁要求很强的情况下,您将写入远程数据中心,因此写入性能将受到到远程数据中心的链路吞吐量的限制。在长时间延迟的情况下,很可能会发生“写丢失”:当客户认为写没有执行,但实际上是这样。所以很容易得到这样的情况,当您未能写入仲裁时,其他客户端会看到数据,被您认为是“未写入的”如果在quorum=1的情况下读取,则数据保持稳定(以获得更好的读取性能)。但这里有一些聪明的解决方案,比如对实际部分量的概率有界陈旧性
1条答案
按热度按时间kwvwclae1#
最大的挑战:记住你想要达到的目标。根据我的经验,电子商务系统面临三个挑战:
任何时间点上每个密钥的未知复制级别。为了解决这个问题,采用了各种技术:读取修复、merkle树。对于长途网络,这一点可能具有挑战性。
在仲裁要求很强的情况下,您将写入远程数据中心,因此写入性能将受到到远程数据中心的链路吞吐量的限制。在长时间延迟的情况下,很可能会发生“写丢失”:当客户认为写没有执行,但实际上是这样。所以很容易得到这样的情况,当您未能写入仲裁时,其他客户端会看到数据,被您认为是“未写入的”
如果在quorum=1的情况下读取,则数据保持稳定(以获得更好的读取性能)。但这里有一些聪明的解决方案,比如对实际部分量的概率有界陈旧性