Implement Raft in Rust
As an open-source distributed scalable HTAP database, TiDB uses the Raft Consensus Algorithm in its distributed transactional key-value storage engine, TiKV, to ensure data consistency, auto-failover, and fault tolerance. TiDB has thus far been used by more than 200 companies in their production environments in a wide range of industries, from e-commerce and food delivery, to fintech, media, gaming, and travel.
A TiKV Source Code Walkthrough – Raft Optimization
Paxos or Raft is frequently used to ensure data consistency in the distributed computing area. But Paxos is known for its complexity and is rather difficult to understand while Raft is very simple. Therefore, a lot of emerging databases tend to use Raft as the consensus algorithm at its bottom layer. TiKV is no exception.
Why did we choose Rust over Golang or C/C++ to develop TiKV?
Every developer has his/her favorite programming language. For the TiKV team members, it's Rust.
The Design and Implementation of Multi-raft
The goal of TiKV is to support 100 TB+ of data and it is impossible for one Raft group to make it, we need to use multiple Raft groups, which is called Multi-raft.
A TiKV Source Code Walkthrough – Raft in TiKV
TiKV uses the Raft algorithm to implement the strong consistency of data in a distributed environment. This blog introduces the details how Raft is implemented.
TiDB Internal (III) – Scheduling
This is the third one of three blogs to introduce TiDB internal.
TiDB Internal (I) – Data Storage
This is the first one of three blogs to introduce TiDB internal.
TiDB Internal (II) – Computing
This is the second one of three blogs to introduce TiDB internal.
Rust in TiKV
This is the speech Siddon Tang gave at the 1st Rust Meetup in Beijing on April 16, 2017.
About the TiDB Source Code
The target audience of this document is the contributors in the TiDB community. The document aims to help them understand the TiDB project. It covers the system architecture, the code structure, and the execution process.
Subquery Optimization in TiDB
Subquery optimization, especially rewriting the correlated subquery, is a very difficult part in SQL query optimization. To be compatible with MySQL, TiDB enables users to write subqueries anywhere they want. For those subqueries that are not correlated, which are also called uncorrelated subqueries, TiDB evaluates in advance; for those correlated subqueries, TiDB removes the correlations as much as possible. For example, TiDB can rewrite a correlated subquery to `SemiJoin`. This article is focused on introducing the correlated subquery optimization methods in TiDB.
How we build TiDB
This is the speech Max Liu gave at Percona Live Open Source Database Conference 2016.