Implementing Chaos Engineering in K8s: Chaos Mesh Principle Analysis and Control Plane Development

This post describes the practice of Chaos Engineering in K8s clusters, discusses important Chaos Mesh features through analysis of its source code, and explains how to develop Chaos Mesh's control plane with code examples.

How to Troubleshoot RocksDB Write Stalls in TiKV

Author: Mike Barlow (Solutions Architect at PingCAP) Editors: Jose Espinoza, Tina Yang, Tom Dewan TiDB, an open-source, distributed NewSQL database, can experience write performance degradation for several reasons. This troubleshooting guide discusses write performance degradation related to the RocksDB built-in write stall feature. RocksDB is an open-source, mature, and high-performance key-value store. It is optimized for fast, low latency […]

TiDB Operator Source Code Reading (IV): Implementing a Component Control Loop

This post explains how TiDB Operator implements a component control loop by taking PD as an example. You'll learn PD and other component's lifecycle management.

How WebAssembly Powers Databases: Build a UDF Engine with WASM

WebAssembly is a binary instruction format designed for secure and near-native execution in the sandboxed environment. This post shares how we use WebAssembly to build a user-defined function engine for TiDB.

Raft and High Availability

Raft is a consensus-based method that distributes data in such a way that it creates and maintains a high availability environment for your database. This article introduces the general components and mechanisms of Raft, and how distributed databases such as TiDB and TiKV use Raft to achieve high availability and consistency.

Flink on TiDB: Reliable, Convenient Real-Time Data Service

Combining Flink and TiDB provide powerful support for real-time data processing. In this article, a NetEase senior engineer introduces how they use Flink on TiDB to guarantee end-to-end exactly-once semantics.

TiDB Operator Source Code Reading (III): The Component Control Loop

Learn about TiDB Operator's component control loop and how it manages TiDB's component lifecycle.

How We Trace a KV Database with Less than 5% Performance Impact

As a key-value database, TiKV has much higher performance requirements than a regular application, so tracing tools must have minimal impact. Learn how we trace TiKV requests while impacting performance less than 5%.

Dive Deep into TiKV Transactions: The Life Story of a TiKV Prewrite Request

This post introduces the execution workflow of a TiKV request in the prewrite phase. It offers a top-down description of how the prewrite request of an optimistic transaction is executed within the multiple modules of the Region leader.

TiDB Operator Source Code Reading (II): Operator Pattern

Learn about Kubernetes's Operator pattern and TiDB Operator's major reconcile loop.

TiFS, a TiKV-Based Partition Tolerant, Strictly Consistent File System

TiFS is a distributed file system built upon TiKV. It is partition tolerant, strictly consistent, and most efficient for reading and writing small files or other complicated file system operations.

Async Commit, the Accelerator for Transaction Commit in TiDB 5.0

As a major new feature introduced in TiDB 5.0, Async Commit can greatly reduce the latency of transaction commits. This post describes Async Commit's design ideas and its key implementation details.