首页 >> 通信 >> 七爪源代码:缓存和数据库之间的一致性,第 1 部分

七爪源代码:缓存和数据库之间的一致性,第 1 部分

2024-02-04 通信

>

所读取正向

先将样本所读取元样本 然后排查磁盘。

潜在疑问

这样的读所写正向好像不太好,但也有一些未可避免的保守状况。

底下事例 1

A 就让系统升级样本,但 B 就让同时存取样本。 基本上来说,A 和 B 都有确实的反复,但是当它们同时时有发生时,或许不会实现出疑问。 在前面的例子里,B在A清磁盘之前现在从磁盘里存取了样本,所以B此时给予的样本将不会是旧的。

底下事例 2

当 A 系统升级样本时,元样本现在完成系统升级,但由于“某种或许”而被掳走。 此时,磁盘里的样本不会保持一段短时间的不相反,直到再来元样本系统升级或时有发生 TTL。

听起来或许很情况严重而且非常少不知,但实质上时有发生的或许性比你就让象的要大。 有几种状况或许不会时有发生残酷。

在不够改完整版时,无论是通过容器还是Ja,都须要将旧完整版的操作系统替换为新完整版,并且旧完整版将被掳走。 减半时,这样一来的操作系统将被投放,也将被掳走。 再次是最常用的,当操作系统分崩离析时,它不可可避免地不会被掳走。 底下事例 3

当 A 就让存取样本而 B 就让系统升级样本时,同样,他们都有确实的基本上进程,但是时有发生了误解。

首先A在想法存取样本,因为在磁盘里并未寻觅并不相同的结果,所以他从元样本里存取;同时,B 刚刚想法系统升级样本,因此他在元样本操作后移除了磁盘。然后,A 将样本所读取磁盘,实现出不相反的状况,不相反不会持续性一段短时间。

怎么大大提低

当操作系统确实操作样本时,可以最小立体化事例 1 和事例 3。以事例1为例,系统升级元样本后不认真任何额外操作,当即排查磁盘;事例3,从元样本里存取样本后,不认真过多的格式转换,将结果所读取尽快磁盘。这样可以减少时有发生的生存率,但即便如此,还是有一些未可避免的状况,比如废弃物投放诱发的stop-the-world。

另一方面,事例 2 可以通过发挥作用长短时间重开来减少人为惨案的机不会,但是对于操作系统分崩离析并未什么可以认真的。

阅读例外

为了解决Case 1和Case 2,有人不会想法重写原来的程序。

存取正向

从磁盘里存取样本 如果磁盘样本不实质上 而是从元样本里存取 并所写回来磁盘

这个反复和原来的Read Aside完全一样。

所读取正向

先排查磁盘 然后将样本所读取元样本。

这个反复与原来的Read Aside相反。

潜在疑问

虽然解决了原来的事例 1 和事例 2,但又诱发了原先疑问。

当 A 想法系统升级样本,而 B 就让存取样本时,A 先移除磁盘;那么 B 未存取样本,因此它从元样本里存取,而 A 继续系统升级元样本。再次,B 将存取的样本所写回来磁盘。实现出不相反。

怎么大大提低

事实上,Case 1 和 Case 2 时有发生的或许性半径远低于此例外的保守状况,不够是是当 Read Aside 的确实发挥作用实着减少了 Case 1 和 Case 2 的时有发生时。另一方面,保守状况未有效强化例外。

因此,不建议用作这种例外。

结论

一般来说,Read Aside可以高达到比较低的完整性,即使只是简单的发挥作用,但也可以有很好的耐用性。

尽管如此,如果您就让进一步大大提低完整性,能用 Read Aside 是以致于的,须要不够复杂的工具,但成本也很低。因此,我将把这些工具留到下一篇文中里。在下一篇文中里,我将描述如何依靠手头的水资源,以发挥作用尽或许多的完整性。

再次突实,Read Aside虽然很简单,但只要发挥作用确实,就足以可靠了。

月经导致的腰疼怎么缓解
拉肚子怎么治疗
重庆家装公司
感冒了嗓子疼吃什么消炎药
白带有异味
友情链接