Time Synchronization in Distributed Systems: TiDB’s Timestamp Oracle
This post describes TiDB’s timestamp oracle (TSO), how it delivers time services, and its pros and cons.
Evaluating TiDB against the MySQL Test Suite
Since TiDB is a distributed SQL database compatible with MySQL, can we use MySQL's bug history to improve the quality of TiDB? With this in mind, Morgan from our engineering team led the exploration of using MySQL Test Suite to evaluate TiDB. The results were rewarding: 154 bugs in 4 months and improved test coverage.
How I Trained a Machine Learning Model in Pure SQL on a NewSQL Database
This post describes how a TiDB contributor trained a machine learning model in pure SQL on TiDB.
TiDB Operator Source Code Reading (V): Backup and Restore
Author: Elon Li (Software Engineer at PingCAP) Transcreator: Ran Huang; Editor: Tom Dewan Previous articles in this series: In our last article, we learned how to implement a component control loop in TiDB Operator. This time, I’ll move on to a new but important topic: backup and restore. Backup and restore are two of the most important and frequently used operations when […]
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%.