Building a Large-scale Distributed Storage System Based on Raft
This post introduces the PingCAP team's firsthand experience in designing a large-scale distributed storage system based on the Raft consensus algorithm.
How We Compiled a Golang Database in the Browser Using WebAssembly
We compiled a Golang database (TiDB) into an in-browser database using WebAssembly (Wasm). This post introduces why and how we built an in-browser database.
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.
Porting TiDB to Arm64 for Greater Flexibility
This article describes how PingCAP compiled and benchmarked TiDB on the Amazon Web Services (AWS) Arm64 platform.
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.
Why Benchmarking Distributed Databases Is So Hard
Benchmarks are hard to get right, and many articles touting benchmarks are actually benchmarketing, showcasing skewed outcomes to sell products. This post introduces some of the motivations for benchmarking and the common tools, and discusses a few things to keep in mind when benchmarking.
The KOST Stack: An Open-Source Cloud-Native Hybrid Database Stack
A new infrastructure pattern is emerging called the KOST stack (Kubernetes, Operator, Spark, TiDB). This blog post introduces each component of the KOST stack and cloud-native HTAP in the wild.
TiDB Passes Jepsen Test for Snapshot Isolation and Single-Key Linearizability
TiDB's first official Jepsen Test report is published. This post introduces some additional context to the test results and PingCAP's thoughts on what's next.
Try to Fix Two Linux Kernel Bugs While Testing TiDB Operator in K8s
This post introduces how the EE team at PingCAP tackled two Linux kernel bugs while testing TiDB Operator in K8s. PingCAP engineers also hope the K8s community, RHEL and CentOS can help fix these bugs thoroughly in the near future.
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.