<commit_before>---
layout: post
title: Raft
date:  2018-10-30 09:31:336 +0800
categories: [Distributed]
tags: [algorithm, distributed, java, sh]
published: true
excerpt:  Raft 分布式一致性算法入门简介
---

# Raft

Raft 是一种为了管理复制日志的一致性算法。

它提供了和 Paxos 算法相同的功能和性能，但是它的算法结构和 Paxos 不同，使得 Raft 算法更加容易理解并且更容易构建实际的系统。

为了提升可理解性，Raft 将一致性算法分解成了几个关键模块，例如领导人选举、日志复制和安全性。同时它通过实施一个更强的一致性来减少需要考虑的状态的数量。从一个用户研究的结果可以证明，对于学生而言，Raft 算法比 Paxos 算法更加容易学习。

Raft 算法还包括一个新的机制来允许集群成员的动态改变，它利用重叠的大多数来保证安全性。

[算法原文](https://ramcloud.atlassian.net/wiki/download/attachments/6586375/raft.pdf)

## 和 Paxos 的对比

- 效果

Raft 等价于  (multi-)Paxos；

- 效率

Raft 与 Paxos 一样高效；

- 结构

Raft 更易于理解 - 为了增强可理解性，Raft 将 leader 选举、日志复制和安全性等关键元素分离，并采用更强的一致性以减少必须考虑的状态的数量；<commit_msg>[Feature] add for note<commit_after>---
layout: post
title: Raft
date:  2018-10-30 09:31:33 +0800
categories: [Distributed]
tags: [algorithm, distributed, java, sh]
published: true
excerpt:  Raft 分布式一致性算法入门简介
---

# Raft

Raft 是一种为了管理复制日志的一致性算法。

它提供了和 Paxos 算法相同的功能和性能，但是它的算法结构和 Paxos 不同，使得 Raft 算法更加容易理解并且更容易构建实际的系统。

为了提升可理解性，Raft 将一致性算法分解成了几个关键模块，例如领导人选举、日志复制和安全性。同时它通过实施一个更强的一致性来减少需要考虑的状态的数量。从一个用户研究的结果可以证明，对于学生而言，Raft 算法比 Paxos 算法更加容易学习。

Raft 算法还包括一个新的机制来允许集群成员的动态改变，它利用重叠的大多数来保证安全性。

[算法原文](https://ramcloud.atlassian.net/wiki/download/attachments/6586375/raft.pdf)

## 和 Paxos 的对比

- 效果

Raft 等价于  (multi-)Paxos；

- 效率

Raft 与 Paxos 一样高效；

- 结构

Raft 更易于理解 - 为了增强可理解性，Raft 将 leader 选举、日志复制和安全性等关键元素分离，并采用更强的一致性以减少必须考虑的状态的数量；
{'fraction_non_alphanumeric': 0.10150891632373114, 'fraction_numerical': 0.03497942386831276, 'mean_word_length': 5.947619047619048, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5491916', 'n_tokens_mistral': 1035, 'n_tokens_neox': 1138, 'n_words': 118}