From a3d39fd1a3912defda940c05afe76577ab61954b Mon Sep 17 00:00:00 2001 From: lipeng Date: Wed, 14 Apr 2021 10:24:26 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E8=AF=AD=E5=8F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ch5.md | 4 ++-- ch8.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ch5.md b/ch5.md index dc772993..f2d73ec5 100644 --- a/ch5.md +++ b/ch5.md @@ -199,7 +199,7 @@ ​ 因为滞后时间太长引入的不一致性,可不仅是一个理论问题,更是应用设计中会遇到的真实问题。本节将重点介绍三个由复制延迟问题的例子,并简述解决这些问题的一些方法。 -### 读已写入数据 +### 读己之写 ​ 许多应用让用户提交一些数据,然后查看他们提交的内容。可能是用户数据库中的记录,也可能是对讨论主题的评论,或其他类似的内容。提交新数据时,必须将其发送给领导者,但是当用户查看数据时,可以从追随者读取。如果数据经常被查看,但只是偶尔写入,这是非常合适的。 @@ -209,7 +209,7 @@ **图5-3 用户写入后从旧副本中读取数据。需要写后读(read-after-write)的一致性来防止这种异常** -​ 在这种情况下,我们需要 **读写一致性(read-after-write consistency)**,也称为 **读已写入一致性(read-your-writes consistency)**【24】。这是一个保证,如果用户重新加载页面,他们总会看到他们自己提交的任何更新。它不会对其他用户的写入做出承诺:其他用户的更新可能稍等才会看到。它保证用户自己的输入已被正确保存。 +​ 在这种情况下,我们需要 **读写一致性(read-after-write consistency)**,也称为 **读己之写一致性(read-your-writes consistency)**【24】。这是一个保证,如果用户重新加载页面,他们总会看到他们自己提交的任何更新。它不会对其他用户的写入做出承诺:其他用户的更新可能稍等才会看到。它保证用户自己的输入已被正确保存。 如何在基于领导者的复制系统中实现读后一致性?有各种可能的技术,这里说一些: diff --git a/ch8.md b/ch8.md index 7d6520dc..d314d4da 100644 --- a/ch8.md +++ b/ch8.md @@ -232,7 +232,7 @@ > > ​ 假设两台电话交换机之间有一条线路,可以同时进行10,000个呼叫。通过此线路切换的每个电路都占用其中一个呼叫插槽。因此,您可以将线路视为可由多达10,000个并发用户共享的资源。资源以静态方式分配:即使您现在是电话上唯一的电话,并且所有其他9,999个插槽都未使用,您的电路仍将分配与导线充分利用时相同的固定数量的带宽。 > -> ​ 相比之下,互联网动态分享网络带宽。发送者互相推挤并互相推挤以尽可能快地通过网络获得它们的分组,并且网络交换机决定从一个时刻到另一个时刻发送哪个分组(即,带宽分配)。这种方法有排队的缺点,但其优点是它最大限度地利用了电线。电线固定成本,所以如果你更好地利用它,你通过电线发送的每个字节都会更便宜。 +> ​ 相比之下,互联网动态分享网络带宽。发送者互相推挤和争夺,以尽可能快地通过网络获得它们的分组,并且网络交换机决定从一个时刻到另一个时刻发送哪个分组(即,带宽分配)。这种方法有排队的缺点,但其优点是它最大限度地利用了电线。电线固定成本,所以如果你更好地利用它,你通过电线发送的每个字节都会更便宜。 > > ​ CPU也会出现类似的情况:如果您在多个线程间动态共享每个CPU内核,则有一个线程有时必须等待操作系统的运行队列,而另一个线程正在运行,这样线程可以暂停不同的时间长度。但是,与为每个线程分配静态数量的CPU周期相比,这会更好地利用硬件(参阅“[响应时间保证](#响应时间保证)”)。更好的硬件利用率也是使用虚拟机的重要动机。 >