最终一致性是一种编程模型,在这个模型中,程序员假设在一段足够长的时间内,在不改变系统的情况下,特定程序的当前版本将最终分发,直到程序的每个副本都一致为止。最终一致性的概念用于编程方法,如乐观复制、分布式共享内存和...
最终一致性是一种编程模型,在这个模型中,程序员假设在一段足够长的时间内,在不改变系统的情况下,特定程序的当前版本将最终分发,直到程序的每个副本都一致为止。最终一致性的概念用于编程方法,如乐观复制、分布式共享内存和分布式事务,最终的一致性是通过三个步骤来实现的。首先,分布式信息在系统上可用;然后是软状态,在这种状态下,不同的用户可能仍然在处理不同版本的数据;最后,一致性得到了实现,所有的计算机都可以访问相同的数据与计算机的倒立应用最终一致性的最明显的方式之一与在线分发的软件更新有关。在更新发布后的最初几秒钟内,没有人会拥有它;没有足够的时间让软件用户下载和安装更新。这是“可用”状态;该更新已经存在,但尚未分发。随着时间的推移,随着用户下载更新,有些人会拥有,有些人则不会。不过,经过足够的时间后,每个使用该软件的人都将更新到最新版本。这是最终一致性状态背后的前提:如果有足够的时间,任何更新都将在整个系统中完全传播。随着系统朝着最终一致性的方向努力,冲突是不可避免的。当程序版本或计算机上当前的信息与程序的“模型版本”不匹配时,就会发生冲突。程序的设置通常是为了识别和管理这些冲突当特定计算机上的文件比软件或数据的最新模型版本旧时,系统通常会提示用户启动更新以解决差异。有三种可能的方法可以实现这些解决方案:写入修复、读取修复和异步修复。这些方法都会带来与一致性模型一致的程序或数据的版本。它们之间的关键区别在于系统对修复操作进行计时的方式。所有这些操作都有优点和缺点。在写修复中,对计算机上存储的代码的更改是在写操作过程中进行的,当计算机已经在向系统的硬盘驱动器写入数据时,这将修复不一致性,使程序或数据与模型保持一致,但也会暂时减慢原始写入操作的速度。对于读取修复,更正操作发生在从硬盘驱动器的读取周期中。这反过来,减慢读取操作。在异步修复中,修复发生在读或写操作都不发生时,这会导致CPU上的空闲周期消耗
-
发表于 2020-08-07 10:09
- 阅读 ( 1814 )
- 分类:电脑网络