mirror of
https://github.com/oldratlee/translations.git
synced 2026-04-04 19:17:58 +08:00
translate active-active model to 主-主模型, reviewed by @foreach-break
This commit is contained in:
@@ -7,9 +7,9 @@
|
||||
|
||||
这篇文章是`LinkedIn`的`Kreps`发表的一篇博文,虽然很长,但被称为[程序员史诗般必读文章](http://bryanpendleton.blogspot.hk/2014/01/the-log-epic-software-engineering.html)。
|
||||
|
||||
[学习笔记:The Log(我所读过的最好的一篇分布式技术文章)](http://www.cnblogs.com/foreach-break/p/notes_about_distributed_system_and_The_log.html)对本文做了很不错摘要和解读。
|
||||
[学习笔记:The Log(我所读过的最好的一篇分布式技术文章)](http://www.cnblogs.com/foreach-break/p/notes_about_distributed_system_and_The_log.html)对本文做了很赞的摘要和解读。
|
||||
|
||||
但作为一篇**_经典_**文章,是值得去完整地研读和理解:
|
||||
但作为一篇**_经典_**文章,还是值得去完整地研读和理解:
|
||||
|
||||
1. 原文可以作为大数据/分布式系统领域一份导论式的资料。
|
||||
作者对整个领域的理解和实战精深广博,抓出并梳理了这个领域的核心:日志。
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
|
||||
对日志用法不同群体有不同的说法。数据库工作者通常说成**_物理_**日志(`physical logging`)和**_逻辑_**日志(`logical logging`)。物理日志是指记录每一行被改变的内容。逻辑日志记录的不是改变的行而是那些引起行的内容改变的`SQL`语句(`insert`、`update`和`delete`语句)。
|
||||
|
||||
分布式系统文献通常把处理和复制(`processing and replication`)方案宽泛地分成两种。『状态机器模型』常常被称为主动-主动模型(`active-active model`),
|
||||
分布式系统文献通常把处理和复制(`processing and replication`)方案宽泛地分成两种。『状态机器模型』常常被称为主-主模型(`active-active model`),
|
||||
记录输入请求的日志,各个复本处理每个请求。
|
||||
对这个模型做了细微的调整称为『主备模型』(`primary-backup model`),即选出一个副本做为`leader`,让`leader`按请求到达的顺序处理请求,并输出它请求处理的状态变化日志。
|
||||
其他的副本按照顺序应用`leader`的状态变化日志,保持和`leader`同步,并能够在`leader`失败的时候接替它成为`leader`。
|
||||
@@ -92,7 +92,7 @@
|
||||

|
||||
|
||||
为了理解两种方式的差异,我们来看一个不太严谨的例子。假定有一个要复制的『算法服务』,维护一个独立的数字作为它的状态(初始值为0),可以对这个值进行加法和乘法运算。
|
||||
主动-主动方式所做的可能的是输出所进行的变换的日志,比如『+1』、『\*2』等。各个副本都会应用这些变换,从而经过一系列相同的值。
|
||||
主-主方式所做的可能的是输出所进行的变换的日志,比如『+1』、『\*2』等。各个副本都会应用这些变换,从而经过一系列相同的值。
|
||||
而主备方式会有一个独立的`Master`执行这些变换并输出结果日志,比如『1』、『3』、『6』等。
|
||||
这个例子也清楚的展示了为什么说顺序是保证各副本间一致性的关键:加法和乘法的顺序的改变将会导致不同的结果。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user