Skip to content

Commit

Permalink
temp add
Browse files Browse the repository at this point in the history
  • Loading branch information
qujihan committed Oct 10, 2024
1 parent 1519890 commit 081519f
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 3 deletions.
8 changes: 7 additions & 1 deletion src/chapter3/intro.typ
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
```,
)

Raft共识算法是一种分布式一致性算法,它的设计目标是提供一种易于理解的一致性算法。Raft算法分为三个部分:领导选举、日志复制和安全性。具体的实现可以参考Raft论文#footnote("Raft Paper: https://raft.github.io/raft.pdf") #footnote("Raft Thesis: https://web.stanford.edu/~ouster/cgi-bin/papers/OngaroPhD.pdf") #footnote("Raft 官网: https://raft.github.io")的实现
Raft共识算法是一种分布式一致性算法,它的设计目标是提供一种易于理解的一致性算法。Raft算法分为三个部分:领导选举、日志复制和安全性。具体的实现可以参考Raft论文#footnote("Raft Paper: https://raft.github.io/raft.pdf") #footnote("Raft Thesis: https://web.stanford.edu/~ouster/cgi-bin/papers/OngaroPhD.pdf") #footnote("Raft 官网: https://raft.github.io")。

Raft有三个特点:
+ 线性一致性(强一致性):一旦一个数据被Client提交,那么所有的Client都能读到这个数据。(就是永远看不到过时的数据)
Expand All @@ -36,6 +36,12 @@ Raft维护了Client提交的任意写命令的有序Log。Raft通过将Log复制

当Log已经提交以后,Raft就可以将Log中存储的命令应用到节点本地的状态机。每个Log中包含了index、term以及命令。

- index: Log的索引,表示这个entry在Log中的位置。
- term:当前entry被Leader创建的时候的任期。
- 命令:会被应用在状态机的命令。

注意,_通过index和term可以*确定*一个entry_

#tbl("Log可视化")[
#show raw.where(block: false): it => {
it
Expand Down
2 changes: 1 addition & 1 deletion src/chapter3/message.typ
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
== Raft之Message


#code("", "")[
#code("src/raft/message.rs", "Message 类型")[
```rust
/// 发送者和接收者的消息信封(在Message上包装了一层额外信息).
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
Expand Down
2 changes: 1 addition & 1 deletion typst-book-template
Submodule typst-book-template updated 1 files
+30 −6 book.typ

0 comments on commit 081519f

Please sign in to comment.