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.
chaos-mesh-action: Integrate Chaos Engineering into Your CI
Chaos Mesh is a cloud-native chaos testing platform that orchestrates chaos in Kubernetes environments. This article shares how to use chaos-mesh-action, a GitHub action to integrate Chaos Mesh into the CI process.
TiDB Cloud: Managed SQL at Scale on AWS and GCP
This post introduces in detail the features of TiDB Cloud - the fully managed, horizontally scaling, cloud-native, distributed SQL database in the cloud.
How TiDB’s HTAP Makes Truly Hybrid Workloads Possible
This post introduces the design details of the HTAP architecture of TiDB, including the real-time updatable columnar engine, the multi-Raft replication strategy, and smart selection.
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%.
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.
Early Impressions of Go from a Rust Programmer
Nick Cameron is a long-time Rust programmer who has recently started using Go. In this post, he talks about his early impressions of Go. Read this post to learn more.
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.