我最近一直在评估大型键值存储,我不断遇到“读取修复”这个词,但不知道他们在说什么。我认为这与交易有关,但不确定。
有人可以解释它是什么以及它与传统数据库的工作方式有何不同?也许提供一些伪代码来帮助解释?
为了提高可扩展性,许多可扩展的键值存储允许您仅写入大部分数据的副本。(因此,如果您有 5 个副本,则只需写入其中的 3 个)。阅读时,请确保从大多数副本中读取。这样,您就可以保证至少读取一个具有最新值的副本。
读取修复意味着当您检测到某些副本具有较旧的值时,您使用较新的值更新它们只是为了减少系统中过时的值的数量。这是“反熵”过程的一个示例。
我认为读取修复意味着在不同的节点上有 2 个数据副本。
在:http ://highscalability.com/drop-acid-and-think-about-data我发现了这个:
读取修复 - 当客户端进行读取并且节点在数据上存在分歧时,由客户端选择正确的数据并告诉节点新的正确状态。
我希望这是正确的:)