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%.
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.
Linux Kernel vs. Memory Fragmentation (Part II)
This post introduces the principle of memory compaction, how to view the fragmentation index, and how to quantify the latency overheads caused by memory compaction.
Trace Linux System Calls with Least Impact on Performance in Production
To trace system calls in Linux effectively, you can use perf to analyze system calls that have latency in general scenarios. For containers or Kubernetes that use cgroup v2, traceloop is more convenient.
Transparent Huge Pages: Why We Disable It for Databases
This post dives deep into how transparent huge pages (THP) slow down the system. You'll learn why you should disable THP to improve your database performance and how to disable it in Linux.
A Few More Reasons Rust Compiles Slowly
This is the fourth episode of the Rust Compile Time series. It discusses some factors that cause Rust to build slow, including LLVM, compiler architecture, and linking.
Rust’s Huge Compilation Units
The third episode of the Rust Compile Time series discusses why Rust's compilation units are so big and how that affects compile times.
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.
How We Improved TPC-C Performance by 50% and TPC-H Performance by 100%
TiDB 4.0 release greatly outperforms TiDB 3.0. Our TPC-C benchmark improved by about 50% and our TPC-H benchmark improved by about 100%.
How We Reduced Multi-region Read Latency and Network Traffic by 50%
High read latency and network traffic are common issues for a multi-region architecture. At TiDB Hackathon 2019, a team won 2nd place by reducing multi-region read latency and network traffic by 50%. Read this post to learn how they did it.
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.
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.