Generics and Compile-Time in Rust
This is the second episode of the Rust Compile Time series. Brian Anderson, one of Rust's original authors, talks about monomorphization, using the TiKV project as a case study.
Quickly Find Rust Program Bottlenecks Online Using a Go Tool
It can be hard to find Rust programs' performance bottlenecks online. By integrating pprof-rs in TiKV, we can use the Go tool pprof to visualize TiKV's profiling data. This helps analyze the program's performance online.
The Rust Compilation Model Calamity
In this first episode of the Rust Compile time series, Brian Anderson, one of Rust's original authors, shares with you his researches and experiences with Rust compile times, using the TiKV project as a case study.
AutoTiKV: TiKV Tuning Made Easy by Machine Learning
AutoTiKV is a machine-learning-based tuning tool that helps decrease tuning costs and make life easier for DBAs. This post shows AutoTiKV's design, its machine learning model, and the automatic tuning workflow.
How TSQ Becomes a Performance Bottleneck for TiKV in AWS ARM Environment
Explore into Linux kernel to find out how TSQ becomes a performance bottleneck for TiKV in an AWS ARM environment.
Migrating the TiKV Rust Client from Futures 0.1 to 0.3
This post introduces Nick's experience in migrating the TiKV Rust client from Futures 0.1 to 0.3.
Titan: A RocksDB Plugin to Reduce Write Amplification
As a RocksDB plugin for key-value separation, inspired by WiscKey, Titan is available for preview in TiDB 3.0. This post introduces the design and implementation of Titan.
Landing Your First Rust Pull Request in TiKV
This guide is intended to show how you can land your first Pull Request (PR) in Rust to contribute to TiKV in less than 30 minutes. But before we do that, here's some helpful background.
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.