From 2b20d9bb66bae64a2950d028bbd9fe4ffd8ee9db Mon Sep 17 00:00:00 2001 From: WT Date: Thu, 14 May 2020 18:50:34 +0800 Subject: [PATCH] add implement raft in rust (#159) * add implement raft in rust Signed-off-by: Wenting Liu --- content/blog/implement-raft-in-rust.md | 147 ++++++++++++++++++ .../raft-in-rust/the-design-of-raft-rs.png | Bin 0 -> 62081 bytes 2 files changed, 147 insertions(+) create mode 100644 content/blog/implement-raft-in-rust.md create mode 100644 static/img/blog/raft-in-rust/the-design-of-raft-rs.png diff --git a/content/blog/implement-raft-in-rust.md b/content/blog/implement-raft-in-rust.md new file mode 100644 index 0000000..ec51244 --- /dev/null +++ b/content/blog/implement-raft-in-rust.md @@ -0,0 +1,147 @@ +--- +title: Implement Raft in Rust +date: 2020-05-14 +author: Siddon Tang +--- + +Consensus is one of the most important challenges in designing and building distributed systems–how to make sure multiple nodes (or agents, processes, threads, tasks, participants, etc.) in a group agree on a specific value proposed by at least one of the nodes. As an open-source distributed transactional key-value database, [TiKV](https://github.com/tikv/tikv) uses the [Raft Consensus Algorithm](https://raft.github.io/) to ensure data consistency, auto-failover, and fault tolerance. TiKV has thus far been used by almost 1000 adopters in their production environments in a wide range of industries, from e-commerce and food delivery, to fintech, media, gaming, and travel. + +Ever since the Raft Consensus Algorithm was created by Diego Ongaro and John Ousterhout, it has gained wide popularity in [many organizations](https://raft.github.io/#implementations), who are using it to develop consistent distributed services with high availability. For example, [CoreOS](https://coreos.com/) uses it to build [etcd](https://github.com/coreos/etcd), a popular key-value store which helps users save critical data. [HashiCorp](https://www.hashicorp.com/) uses it to build [Consul](https://www.consul.io/), which helps make service discovery and configuration easy. + +When we began to build TiKV, we researched and investigated many Raft implementations. We eventually decided to go with etcd’s Raft implementation and built our own [Raft](https://github.com/pingcap/raft-rs) using [Rust](https://www.rust-lang.org/), a systems programming language that runs blazing fast, prevents segfaults, and guarantees thread safety. Although etcd’s Raft implementation is written in Go, it has a simple API with no specific Go feature, thus can be easily ported to Rust. + +Since TiKV was open sourced on April 1, 2016, its Raft module has been running stably in many companies’ production environment. So we decided to abstract the Raft module away as an independent library and released it as a crate, [raft-rs](https://github.com/pingcap/raft-rs), to help the Rust community create their own consistent services using this easy to understand consensus algorithm. In the following sections, I will introduce what is raft-rs and how to use it. + +## Design + +In this post, I won’t cover the ins-and-outs of the Raft algorithm in detail, since there are many good resources that already cover that topic. Before we dive into raft-rs, let’s walk through its design first. + +As you probably already know, Raft replicates the state machine through logs. If we can ensure all the machines have the same sequence of logs, after applying all logs in order, the state machine will reach a consistent state. + +{{< figure + src="/img/blog/raft-in-rust/ + the-design-of-raft-rs.png" + number="" >}} + +A complete Raft model contains 4 essential parts: + +1. Consensus Module, the core consensus algorithm module; +2. Log, the place to keep the Raft logs; +3. State Machine, the place to save the user data; +4. Transport, the network layer for communication. + +Our raft-rs implementation includes the core Consensus Module only, not the other parts. The core Consensus Module in raft-rs is customizable, flexible, and resilient. You can directly use raft-rs, but you will need to build your own Log, State Machine and Transport components. + +## How to use raft-rs + +In this section, I will show you how to use raft-rs. Please note that we will only cover the Raft Log as it pertains to the Consensus Module, not how to apply the Log to the State Machine or Transport the messages from one node to another. + +### Step 1: Create the Raft node + +You can use `RawNode::new()` to create the Raft node. To create the Raft node, you need to build a Log component, which is called Raft Storage in raft-rs, and then configure the Raft node. + +1. Build Raft Storage + +Raft Storage saves all the information about the current Raft implementation, including Raft Log, commit index, the leader to vote for, etc. + +Storage is a trait defined in [storage.rs](https://github.com/pingcap/raft-rs/blob/master/src/storage.rs). Here is the trait interface in detail: + +* `initial_state` is called when Raft is initialized. This interface will return a `RaftState` which contains `HardState` and `ConfState`; + * `HardState` contains the last meta information including commit index, the vote leader, and the vote term; + * `ConfState` records the current node IDs like `[1, 2, 3]` in the cluster. Every Raft node must have a unique ID in the cluster; +* `entries` returns the Log entries in an interval `[low, high)`; +* `term` returns the term of the entry at Log index; +* `first_index` and `last_index` return the first and last index of the Log; + +These interfaces are straightforward to understand and implement, but you should pay attention to what is returned when there is no Log but needs to get the `term` at index `first_index() - 1`. To solve this, we usually use a dummy Log entry to keep the last truncated Log entry. + +* The last interface is `snapshot`, which returns a Snapshot of the current state machine. We will send this Snapshot data to another node. + +2. Configure the Raft node + +After we create the Raft Storage, the next step is to use `RawNode::new()` to create the Raft node. The `new` function needs a Raft Storage and a configuration. There are some important fields for this configuration: + +* `id`: the unique ID of the node in the cluster, which must be unique; +* `election_tick`: how many ticks the follower re-campaigns if it doesn’t receive any message from the leader; +* `heartbeat_tick`: how many ticks the leader sends the heartbeat to the followers to keep alive; +* `applied`: the last applied index for the state machine. Raft will resume applying Log entries to the state machine from this index; +* `max_size_per_msg`: Raft can send many Log entries at the same time, so we need to limit the maximum size of the sending message. This is an optimization for Transport in batch; +* `max_inflight_msgs`: how many messages the leader can send to the followers without acknowledgement. This is an optimization for the Transport in pipeline. +* `election_tick` must be larger than `heartbeat_tick`. If our tick interval is 100 ms, we can use 10 for `election_tick` and 3 for `heartbeat_tick`, which means the leader will send heartbeat to the followers every 300 ms and the follower will re-campaign without receiving any messages after 1 second. +* The `read_only_option` enables you to choose the linearizability mode or the lease mode to read data. If you don’t care about the read consistency and want a higher read performance, you can use the lease mode. + +Other important fields like `check_quorum` and `pre_vote` are used to avoid the disturbance and make the cluster more stable. I will explain them in detail in another article later. + +### Step 2: Drive and Run the Raft node + +Now that you have created a Raft node, the next step is to drive and run the Raft node. Here is an example ported from [raft-rs/examples](https://github.com/tikv/raft-rs/tree/master/examples/five_mem_node): + +``` +let mut tick_timeout = Duration::from_mills(100); +let start_tick = Instant::now(); +loop { + loop { + // Step raft messages. + match receiver.recv_timeout(tick_timeout) { + Ok(msg_or_command) => { + match msg_or_command { + RaftMessage(msg) => raft.step(msg), + RaftCommand { proposal, callback } => { + // Save the proposal ID and its associated callback. + context.insert(proposal.get_id(), callback); + raft.propose(proposal); + } + } + tick_timeout -= start_tick.elapsed(); + break; + } + Err(RecvTimeoutError::Timeout) => { + // Tick the raft. + start_tick = Instant::now(); + tick_timeout = Duration::from_mills(100); + raft.tick(); + break; + } + Err(RecvTimeoutError::Disconnected) => return, + } + } + + if raft.has_ready() { + // Handle readies from the raft. + handle_raft_ready(raft.ready()); + } +} +``` + +There are three steps to this process before `handle_raft_ready`: + +1. You can call the `step` function when you receive the Raft messages from other nodes. \ +Calling `Raft::step` will change the memory state of `Raft`. + +2. Use the `propose` function to drive the Raft node when the client sends a request to the Raft server. You can call `propose` to add the request to the Raft log explicitly. \ +In most cases, the client needs to wait for a response for the request. For example, if the client writes a value to a key and wants to know whether the write succeeds or not, but the write flow is asynchronous in Raft, so the write log entry must be replicated to other followers, then committed and at last applied to the state machine, so here we need a way to notify the client after the write is finished. \ +One simple way is to use a unique ID for the client request, and save the associated callback function in a hash map. When the log entry is applied, we can get the ID from the decoded entry, call the corresponding callback, and notify the client. + +3. You need a timer to run the Raft node regularly. In the above example, we used Rust channel `recv_timeout`. \ +As is shown in the above example, the Raft node is driven to run every 100 ms set by the `tick` function. + +In the above example, we use a channel to receive the `propose` and `step` messages. We only propose the request ID to the Raft log. In your own practice, you can embed the ID in your request and propose the encoded binary request data. + +### Step 3: Process the `Ready` State + +When your Raft node is driven and run, Raft may enter a `Ready` state. You need to first use `has_ready` to check whether Raft is ready. If yes, use the `ready` function to get a `Ready` state. The `Ready` state contains many information, and you need to check and process them one by one: + +1. Check whether `snapshot` is empty or not. If not empty, it means that the Raft node has received a Raft snapshot from the leader and we must apply the snapshot. +2. Check whether `entries` is empty or not. If not empty, it means that there are newly added entries but has not been committed yet, we must append the entries to the Raft log. +3. Check whether `hs` is empty or not. If not empty, it means that the `HardState` of the node has changed. For example, the node may vote for a new leader, or the commit index has been increased. We must persist the changed `HardState`. +4. Check whether `messages` is empty or not. If not, it means that the node will send messages to other nodes. There has been an optimization for sending messages: if the node is leader, this can be done together with step 1 in parallel. +5. Check whether `committed_entires` is empty or not. If not, it means that there are some newly committed log entries which you must apply to the state machine. Of course, after applying, you need to update the applied index and resume `apply` later. +6. Call `advance` to prepare for the next `Ready` state. + +## Try it for yourself! + +As you can see, it is easy to use raft-rs. You can build your own components and combine them together to have a fully functioning Raft implementation! + +As a distributed transactional key-value database that is strongly consistent, TiKV needs to go beyond a single Raft implementation. In TiKV, data is sharded into [Regions](https://pingcap.com/blog/2017-07-11-tidbinternal1/#region), a continuous range of data in byte order. Region is the basic unit of data movement and is replicated to several nodes, which makes up a Raft group. One node in the TiKV cluster might be working with multiple Raft groups. so we designed and implemented Multi-Raft. For more details, feel free to check out “[Multi-Raft Design and Implementation in TiKV](https://pingcap.com/blog/2017-08-15-multi-raft/).” + +If you are interested in Raft and Rust, and want to build your own consistent service using [raft-rs](https://github.com/pingcap/tidb), please let me know (tl@pingcap.com). I would be thrilled to hear from you! \ No newline at end of file diff --git a/static/img/blog/raft-in-rust/the-design-of-raft-rs.png b/static/img/blog/raft-in-rust/the-design-of-raft-rs.png new file mode 100644 index 0000000000000000000000000000000000000000..e408d6b31b8bd4a322214a988a58f7f26e1a9054 GIT binary patch literal 62081 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 literal 0 HcmV?d00001