TiDB and TiKV Blog

See TiDB Deployment Tutorials for:

How SHAREit Powers Its AI Workflow with TiDB and TiKV

In this article, Marshall Zhu from SHAREit shares their AI workflow, the challenges they faced, and how TiDB and TiKV power their AI platform and recommendation system.

TiDB Operator Source Code Reading (V): Backup and Restore

This post explains the design and implementation of the backup and restore features provided by TiDB Operator. You'll learn about the core logic of three related controllers and the backup-manager.

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.

TiDB 5.3: Delivering Enhancements for Data Intensive Applications

We are proud to announce the release of TiDB 5.3. This release makes significant advances in real-time HTAP capabilities and overall stability, with improvements in data migration, high availability, and ease of use. It also introduces experimental support for Continuous Profiling.

How TiDB Powers Real-Time Analytics for a Streaming Media Giant

This post talks about the bottlenecks of traditional real-time analytics architectures and how TiDB helps iQIYI succeed in real-time analytics scenarios.

Believe in the Multiplicative Power of Openness

Max Liu, PingCAP CEO, talks about the power of open source. Learn how the open source community helps PingCAP grow and how PingCAP gives back to the community.

How to Connect TiDB Cloud to Metabase

This post describes how to connect TiDB Cloud to Metabase, an open source business intelligence tool.

Using a NewSQL DBMS to Improve Data Freshness and Execute Analytical Queries in Minutes

For several years, ZTO Express has used TiDB to scale out their database and perform multi-dimensional analytics in real time. Now, they also use TiDB in the HTAP scenario to improve data freshness and execute analytical queries in minutes.

KubeCon 2021 Q&A: PingCAP Recaps the Event and Explores Its HTAP Database

VMblog followed up with Liming Deng, PingCAP's database engineer, on his recent presentation on KubeCon 2021.

How to Troubleshoot RocksDB Write Stalls in TiKV

This troubleshooting guide discusses write performance degradation in TiKV related to the RocksDB built-in write stall feature.

TiDB Cloud Introduces Developer Tier

We are excited to announce the Developer Tier of TiDB Cloud, the fully-managed TiDB service by PingCAP.

PingCAP Introduces Its New Developer Tier to Boost Application Innovation with TiDB Cloud

PingCAP, the leading distributed SQL provider, announced today the availability of its new Developer Tier for TiDB Cloud. The fully-managed database as a service now allows developers to easily launch a small TiDB cluster for free for up to one year..

Why SHAREit Selects TiKV as Data Storage for Its 2.4-Billion-User Business

This post talks about why SHAREit Group embraces TiKV, an open-source distributed KV database, as its storage infrastructure. Learn how TiKV beats other solutions and provides bulk load and real-time data writes.

The Past, Present, and Future of TiDB as an HTAP Database

As an HTAP database, TiDB has evolved through three distinct stages. It currently serves countless applications for hybrid workloads, stream computing, and data hubs. In the future, TiDB will become a cloud-native, multi-model database.

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.

An 8x System Performance Boost: Why We Migrated from MySQL to a NewSQL Database

As JD.com's business grew, they faced big database challenges. To solve their problems, they migrated from MySQL to TiDB. TiDB helps scale out their databases and increases their large parcel sorting system's performance by 8x.

Introducing the PingCAP External Referral Program

At PingCAP, we are always looking for talented people who want to help us build the database of the future. Do you know someone like that? Tell us about them, and if we hire them, you'll get a referral bonus in the form of an eGift card.

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.

PingCAP's TiDB Cloud Attains GDPR Certification, Solidifying Its Position as a Trusted Global Database Provider

We are proud to announce that TiDB Cloud now holds the highest level of data privacy with full GDPR certification.

TiDB Community joins Hacktoberfest 2021!

TiDB is proud to be back at Hacktoberfest, a global celebration of open-source and technology. Join us and make contributions, whoever you are, whatever your experience, to the ever-growing TiDB community!

The Benefits of a Hybrid Transactional and Analytical Processing Database

Hybrid Transactional and Analytical Processing, or HTAP, is a defining feature of TiDB. It means that you can run both transactional and analytical queries from within the same database. TiDB provides HTAP, ensuring that your queries are always running against the most current data available.

How Databricks Tackles the Scalability Limit with a MySQL Alternative

Databricks is an enterprise software company that helps data teams solve some of the world's toughest problems. This article describes why they chose TiDB as their database and shares some TiDB best practices.

Power Up Your Rails Apps with a NewSQL Database

This post helps Ruby on Rails developers get started with TiDB and use it as the backend storage layer of Rails applications.

Best Practices for TiDB Load Balancing

Load balancing helps you distribute application connections over multiple servers and reroute connections if a TiDB instance becomes unavailable. This article talks about the best practices for TiDB load balancing.

How We Scale Out Databases and Get Big Data Queries 6x Faster with a MySQL Alternative

As Huya Live's business grew, their storage capacity became a bottleneck. Their live broadcasts had high latency, and their database maintenance cost was high. Learn how TiDB helps them achieve database scalability, high availability, and strong consistency with low costs.

PingCAP Announces Collaboration with the Advanced Software Technologies Lab at ETH Zürich to Explore DBMS Testing

PingCAP is proud to announce a collaboration with the Advanced Software Technologies Lab (AST) at ETH Zürich to research DBMS testing based on TiDB.

Getting Started with JuiceFS Using TiKV

JuiceFS is an open-source, cloud-native distributed file system that allows users to freely choose the backend storage engine. This post introduces how to use TiKV as a metadata engine for JuiceFS.

How to Run Chaos Experiments on Your Physical Machine

This article describes how to use chaosd to simulate faults on physical machines. You can run chaosd as a command-line tool or as a service.

How Pinterest Reduced Costs and Improved Data Consistency with a NewSQL Database

Pinterest used the HBase ecosystem for their data storage. But this infrastructure was complex, with limited functionalities and high maintenance costs. They switched to TiDB over YugaByteDB and CockroachDB because it best met their requirements for stability and performance.

Easy Local Development with TiDB

This post describes how you can develop your application locally and use the type of database used in production.

TiDB 5.2 - Translytical Processing Made Easier and Faster

We are proud to announce our the release of TiDB 5.2. TiDB 5.2 focuses on real-world scenarios, aiming to push the boundaries of transactional and analytical processing even further to meet the demands of massive, real-time data processing.

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.

A MySQL Alternative, Scale-Out Database Helps Xiaomi's Hyper Growth

Xiaomi is a world-leading consumer electronics company. When MySQL no longer met their business needs, they migrated to TiDB for its scalability, high availability, and HTAP performance.

Securing Online Gaming: Combine Chaos Engineering with DevOps Practices

Tencent Interactive Entertainment Group is known as the publisher of some of the most popular video games. This article shares why and how they use chaos engineering in their DevOps workflow.

Building a Real-Time Data Warehouse with TiDB and Pravega

This article introduces a new solution for real-time data warehouse: Pravega + TiDB. This combination resolves Kafka's data persistence dilemma and provides auto scaling capabilities.

Boosting Big Data Performance by Combining TiDB with Hive and HDFS

Zhihu, China's largest knowledge sharing platform, uses TiDB to complement their big data architecture. TiDB helps them build a large query alert system for Hive and accelerate NameNode RPC requests in HDFS.

Chaos Mesh® 2.0 GA: To a Chaos Engineering Ecology

Chaos Mesh 2.0 GA: an exciting release, marking a solid milestone towards the chaos engineering ecology that we hope to build.

How Chaos Mesh Helps Apache APISIX Improve System Stability

This post describes how Apache APISIX uses Chaos Mesh to improve their system stability.

How to Deploy TiDB on Google Cloud Platform—Part 2

This post shows how to install, configure, and run TiDB on a Google Cloud Platform instance.

How to Deploy TiDB on Google Cloud Platform—Part 1

This two-part blog series will teach you how to get a TiDB cluster up and running on Google Cloud Platform. The first part shows how to prepare your GCP environment.

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.

Simplifying Database Management in a Highly Automated and Scalable Cloud Environment with Google Cloud

To simplify the development of data-intensive applications of all sizes for global enterprises, PingCAP deploys its database service on Google Cloud, creating a fully managed database-as-a-service TiDB Cloud with high automation, scalability, ease of use, and security compliance.

How to Efficiently Stress Test Pod Memory

Chaos Mesh provides StressChaos, a tool that allows you to inject CPU and memory stress into your Pod. Learn how to get the most of StressChaos.

TiDB 5.1: Easily Build Your Mission-Critical Applications at Any Scale

TiDB 5.1 is released. It features more stable latency, optimized MPP performance and stability, and more convenient maintenance. Developers and DBAs can more easily build mission-critical applications at any scale.

Announcing ISO 27001 Certification for TiDB Cloud

PingCAP is proud to announce today that the company has achieved the International Organization for Standardization (ISO) 27001:2013 certification for TiDB Cloud.

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.

Chaos Mesh Remake: One Step Closer toward Chaos as a Service

A TiDB Hackathon team describes Chaos Engineering as a Service and how they're bringing Chaos Mesh one step closer to being a service.

Reducing Query Latency from Seconds to Milliseconds with a Scale-Out Database

As China Zheshang Bank's data size boomed, their databases couldn't meet their requirements for data storage and analytics. They switched to TiDB to scale out their databases and perform real-time analytics.

Managing Your Data Lifecycle with Time to Live Tables

Time to live, or TTL, is a mechanism to manage the data lifecycle in a system. At TiDB Hackathon 2020, a team introduced TTL tables into TiDB to enable automatic management of the data lifecycle.

TiDB 5.0: A One-Stop HTAP Database Solution

TiDB 5.0 features a comprehensive HTAP solution enhanced by an MPP analytical query engine. This article introduces the new TiDB 5.0 HTAP architecture and how TiDB 5.0 serves various transactional & analytical hybrid workload scenarios.

Why We Chose a Scale-Out Data Warehouse for Real-Time Analytics

As PatSnap's businesses developed, their data size quickly grew. To perform real-time analytics, they replaced their Segment + Amazon Redshift data analytics architecture with a TiDB + Apache Flink data warehouse solution.

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.

TiDE: Developing a Distributed Database in a Breeze

TiDE is a VS Code extension for developing TiDB. It offers IDE, debugging, log search, Kubernetes integration, and VM management for TiDB clusters.

TiDB Cloud Now in Public Preview

We are excited to announce the public preview of TiDB Cloud, the fully-managed TiDB service by PingCAP. With TiDB Cloud, customers can now easily use TiDB on Amazon Web Services and Google Cloud to quickly build modern, mission critical applications.

PingCAP Successfully Completes SOC 2 Type 2 Examination for TiDB Cloud

We are proud to announce the completion of our first SOC 2 Type 2 examination for the TiDB Cloud service, which demonstrated the operating effectiveness of our controls designed to keep our service and our customers' data secure.

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.

Getting Started with Rails & TiDB

Integrating a complex ORM like ActiveRecord with TiDB can be difficult. This tutorial helps you get started with TiDB and Rails.

TiKV + SPDK: Pushing the Limits of Storage Performance

By introducing SPDK into TiKV, we enable the database to directly send instructions to NVMe disks, reducing read/write latency significantly.

Announcing Establishment of Japan Office

In order to better serve the Japan market and support its growth, PingCAP formally established a new office in Tokyo, Japan.

Using a GPU Boosts TiDB Analytics Performance by 10 to 150 Times

At TiDB Hackathon 2020, a team used GPU acceleration techniques to improve the performance of CPU-intensive analytical query processing and achieved 10x~150x performance improvement.

Empower Your Business with Big Data + Real-time Analytics in TiDB

Big data is a growing need for ambitious companies. Learn the usage, cost, and technology selection of real-time big data analytics and how TiDB prevails over other solutions.

TiDB 5.0 GA: A One-Stop HTAP Solution Delivering Speed, Stability, and Simplicity

TiDB 5.0 GA is released. As a one-stop HTAP solution, it delivers better and more stable OLTP performance and enhanced OLAP performance with a Massively Parallel Processing engine.

How I Enabled TiKV Coprocessor to Support ENUM and SET Calculations

A TiKV contributor participated in the Coprocessor support ENUM/SET project and implemented these two calculations. This helped improve TiKV's calculation performance.

Using TiDB in Mission Critical Scenarios of the Financial Industry (Part I)

In this post, you'll learn how the financial industry uses databases in their mission critical systems and how TiDB-based solutions help them address the pain points of traditional RDBMS.

TiDB Operator Source Code Reading (I): Overview

TiDB Operator is an operator for running TiDB in Kubernetes. This article will introduce its architecture and what value it brings to you.

Why This MySQL Alternative Beats Vitess and CRDB in Scaling Out Our Databases on K8s

Ninja Van, a Southeast Asia logistics giant, chose TiDB as a MySQL alternative over Vitess and CockroachDB to scale out their databases on Kubernetes. Learn how this MySQL alternative helps Ninji Van fix their pain points.

TiDB Hackathon: Reducing Cross-AZ Data Transfer Costs by 89%

At TiDB Hackathon 2020, the Pingtouge team focused on reducing TiDB's cross-AZ data transfer costs on the cloud. They managed to reduce read traffic by 89% and write traffic by 15%.

Empowering Your Gaming Application with a Scale-out NewSQL Database

To handle increasing data of their gaming business, Kunlun migrated from MySQL to TiDB, a MySQL compatible NewSQL database featuring horizontal scalability and a powerful ecosystem.

TiDB on Arm-based Kubernetes Cluster Achieves Up to 25% Better Price-Performance Ratio than x86

Running TiDB on EKS clusters with Graviton processors offers up to 25% better price-performance ratio compared to an x86-based cluster. This article discusses the benchmark tests we ran.

Announcing the TiDB Hacking Camp

TiDB Hackathon 2020 ended up with many star projects. To actually land these projects in the community, PingCAP is now launching an 8-week TiDB Hacking Camp.

tidb-lite: A Simpler Way to Unit Test Golang Database Code

If your Golang app uses a MySQL-compatible database, you will have a lot of database-related code to unit test. Unlike go-sqlmock, tidb-lite lets you test your code easily without the need to start a database instance in the external environment.

How We Use a MySQL Alternative to Avoid Sharding and Provide Strong Consistency

Meituan is the largest local life service company in China. As their business expanded, Meituan chose TiDB as a MySQL alternative to solve the difficulty of manual sharding and provide strong consistency.

TiGraph: 8,700x Computing Performance Achieved by Combining Graphs + the RDBMS Syntax

TiGraph can manipulate graph data and relational data in one transaction while guaranteeing strong consistency. It boosts TiDB's computing performance by 8,700x in four-degree separation.

Reducing Real-Time Query Latency from 0.5 s to 0.01 s with a Scale-Out HTAP Database

As Autohome's businesses quickly grew, their huge data size placed great pressure on their SQL Server database. To scale out their database and perform real-time analytics, they migrated from SQL Server to TiDB and use TiDB in multiple important apps.

How to Efficiently Choose the Right Database for Your Applications

Learn how to efficiently find the right database for your applications.

TiDB on JD Cloud: A Cloud-native Distributed Database Service

PingCAP teams up with JD Cloud to provide Cloud-TiDB service on the JD Cloud platform.

Celebrating One Year of Chaos Mesh: Looking Back and Ahead

Chaos Mesh started out as a mere fault injection tool and is now heading towards the goal of building a Chaos Engineering ecology. Meanwhile, the Chaos Mesh community was also built from scratch and has helped Chaos Mesh join CNCF as a Sandbox project.

Linux Kernel vs. Memory Fragmentation (Part I)

This post introduces common methods to prevent Linux memory fragmentation, the principle of memory compaction, how to view the fragmentation index, etc.

Five Principles that Guide TiDB and PingCAP (Part II)

PingCAP's CEO talks about the philosophy of TiDB's evolution, focusing on two more principles.

Five Principles that Guide TiDB and PingCAP (Part I)

PingCAP's CEO talks about the philosophy of TiDB's evolution and how PingCAP built TiDB in the past five years.

Announcing the TiDB Incubator Program

Today, we are excited to introduce the TiDB Incubator Program, a program designed to ensure that new projects in the TiDB ecosystem can obtain resources and help from the community towards their desired maturity level.

Goodbye, MySQL Sharding: Use a Scale-Out MySQL Alternative to Store 160+ TB of Data

This post talks about how TiDB, a highly available MySQL alternative, helps 58.com avoid MySQL sharding, scale out their databases, and simplify their database maintenance.

A Top Car Trading Platform Chooses a Scale-out Database as a MySQL Alternative

Chehaoduo, one of the largest auto trading platforms in China, migrated from MySQL to TiDB and got rid of the troublesome process of MySQL sharding and schema changes.

How to Simulate I/O Faults at Runtime

This post dives deep into how we implement the IOChaos experiment without using a sidecar.

GitHub Discussions: Bringing the Open Source Community Closer Together and All in GitHub

This post introduces how Discussions, a beta feature GitHub recently launched, helps open source projects build their own communities or bring the communities nearer to the source code.

PingCAP 2020 Year in Review

Thank you for a great 2020!

PingCAP's Top 10 Posts of 2020

Check out PingCAP's top 10 most popular posts in 2020.

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.

Batch Processing Massive Data Much Quicker with TiSpark

A senior solution architect at PingCAP explains why TiSpark (TiDB + Apache Spark) is better than the traditional batch processing solution, how you can benefit from TiSpark, and how it works.

TiDB on KubeSphere: Release a Cloud-Native Distributed Database to the KubeSphere App Store

This article walks you through how to deploy TiDB on KubeSphere and release TiDB to the App Store to make it available to other tenants.

Tips and Tricks for Writing Linux BPF Applications with libbpf

Compared to BCC, the libbpf + BPF CO-RE solution greatly reduces storage space and runtime overhead. That's why we switched from bcc-tools to libbpf-tools. This post introduces some tips and tricks for writing BPF applications with libbpf.

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.

How China's Insurance Giant Improved Agile Application Performance with a NewSQL Database

Ping An Life Insurance shares a case where TiDB helped them support 100 billion RMB payment volume in a single day, the pain points before they used TiDB, how they use TiDB, and why they chose TiDB.

Why We Switched from BCC to libbpf for Linux BPF Performance Analysis

Libbpf + BPF CO-RE is better than BCC. It greatly reduces storage space and runtime overhead, and it improves programmers' deployment and development experience.

How We Reduced Our Batch Processing Time by About 58% with a Scale-Out MySQL Alternative

WeBank is China's first privately-owned Internet bank. As they grew, they encountered database performance and capacity bottlenecks. By using TiDB, a scale-out MySQL alternative, they reduced their batch processing time by ~58%.

How a Top Game Company Uses Chaos Engineering to Improve Testing

NetEase Fuxi AI Lab is China's first professional game AI research institution. In their search for a Chaos Engineering tool to test their Kubernetes-based AI training platform, they chose Chaos Mesh and have improved their system resiliency ever since.

Best Practices for TiDB on AWS Cloud

This article illustrates the best practices of running TiDB on AWS, including how to choose the suitable cloud storage and properly configure the system.

How We Process Data Five Times More Efficiently Using a Scale-Out MySQL Alternative

A senior architect at China Telecom Bestpay shared how TiDB, a MySQL-compatible, distributed SQL database, boosted the performance of their core systems by 3–5 times.

PingCAP, the Company Behind TiDB, Raises $270 Million in Series D Funding

With great pleasure, we are announcing that we have raised $270 million in Series D funding led by global investors. We are looking for more innovations, global expansion, and more team growth as we strive to build the database of the future.

TiDB on KubeSphere: Run a Cloud-Native Distributed Database on a Hybrid-Cloud Kubernetes Platform

A site reliability engineer gives a step-by-step tutorial on how to deploy TiDB on KubeSphere, an open-source, distributed GUI operating system with Kubernetes as its kernel.

Embracing NewSQL: Why We Chose TiDB over MongoDB and MySQL

In this post, PalFish explains why they chose TiDB over MongoDB and MySQL. The key factors were their application requirements and their perspective on NewSQL databases.

Apache Flink + TiDB: A Scale-Out Real-Time Data Warehouse for Analytics Within Seconds

By combining Apache Flink and TiDB, we offer an efficient, easy-to-use, real-time data warehouse with horizontal scalability and high availability.

DM 2.0 GA: Secure, Easy, Highly Available Data Migration

DM 2.0 has reached general availability. It supports highly available migration tasks and shard merging and migration in optimistic mode.

Choosing the Right Enterprise-Grade Disaster Recovery Solution for the Financial Industry

Financial companies have stringent requirements for high availability and disaster recovery, which many databases cannot meet. This article describes how TiDB addresses both these issues with a range of options that make it an excellent choice for the industry.

Metrics Relation Graph Helps DBAs Quickly Locate Performance Problems in TiDB

TiDB v4.0.7 introduced a new feature: the metrics relation graph. It helps users clearly see the relationship between different performance metrics in a database cluster and thus quickly locate the root causes of performance problems.

Running a Scale-Out Database on ARM as a MySQL Alternative

In this article, an engineer at U-Next talks about why they chose TiDB and why they run it on the ARM architecture. He also provides detailed benchmarking results showing that TiDB runs equally well on ARM and x86.

Making an HTAP Database a Reality: What I Learned from PingCAP's VLDB Paper

Recently, VLDB published the PingCAP paper, TiDB: A Raft-based HTAP Database. In this article, a DBA at PalFish shares his thoughts on the article and his expectations for TiDB's future development.

A 3x IT Efficiency Boost: Using a Scale-Out HTAP Database for Near Real-Time Analytics

As its business quickly grew, ZTO Express found Exadata, Kudu, and HBase couldn't meet their database requirements. To scale out their database and perform multi-dimensional analytics in near real time, they migrated from Oracle Exadata to TiDB.

TiCDC GA: Offering High-Availability Replication Services for Production Environments

TiCDC is TiDB's change data capture framework. It is now generally available. This post introduces its features, application scenarios, and real-world case studies.

TiDB X Hacktoberfest 2020 - An Invitation to Open Source

TiDB is in Hacktoberfest, a celebration open to everyone in our global community. Whether you're an experienced developer or an open-source newbie learning to code, you can help drive the growth of open source and make positive contributions to the ever-growing TiDB community.

How Bank of China Uses a Scale-Out Database to Support Zabbix Monitoring at Scale

To monitor their large-scale IT infrastructure, Bank of China chose TiDB, a scale-out relational database, to replace Zabbix's MySQL backend. Learn how they use TiDB to manage over 10,000 monitored devices and 18 TB data.

How Bank of Beijing Achieves Database Scaling Without Downtime

Bank of Beijing sought an open-source, horizontally scalable database to scale out their database. Learn how they use TiDB to achieve database scaling with zero downtime.

Lessons from TiDB's No. 1 Bug Hunters Who've Found 400+ Bugs in Popular DBMSs

Dr. Manuel Rigger and his colleague have found 400+ bugs in popular DBMSs, including 50+ TiDB bugs. Learn their experience in finding logic bugs in DBMSs.

How We Use a Scale-Out HTAP Database for Real-Time Analytics and Complex Queries

Xiaohongshu receives more than 100 million rows of data every day. They adopted TiDB because it supports both transactional and analytical queries, real-time data analytics, and horizontal scalability.

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.

Chaos Mesh 1.0: Chaos Engineering on Kubernetes Made Easier

Today, we are proud to announce the general availability of Chaos Mesh® 1.0, following its entry into CNCF as a sandbox project in July, 2020. After 10 months of effort within the open-source community, Chaos Mesh is now ready in terms of functionality, scalability, and ease of use. Here are some highlights.

TiDB Operator: Your TiDB Operations Expert in Kubernetes

This post analyzes the pros and cons of running databases in Kubernetes. It also introduces TiDB Operator, a tool for managing TiDB clusters in Kubernetes, and describes how large companies are using it in their production environments as well as their best practices.

A Scale-Out Database Powers China's Letgo with Reduced Maintenance Costs

Zhuan Zhuan embraced TiDB 4.0's new features with great results. It's a truly HTAP database with one-minute deployment, visual troubleshooting, and reduced maintenance costs.

ZaloPay: Using a Scale-Out MySQL Alternative to Serve Millions of Users

A DevOps engineer in ZaloPay, Vietnam's most popular mobile payment application, shared why his team chose TiDB as ZaloPay's merchant platform core database. He talked about their pain points, how they use TiDB, and what he likes about it the most.

How We Build an HTAP Database That Simplifies Your Data Platform

This post talks about why HTAP matters in a database platform, how TiDB implements HTAP, and how you can apply TiDB in different scenarios.

Horizontal Scaling: Why BIGO chose TiDB over MySQL

After trying out different database solutions, BIGO chose TiDB for its horizontal scalability. In this post, a BIGO DBA talks about why MySQL, among other solutions, failed to meet their scalability requirements. You'll also learn about TiDB's impressive features, how they benefit BIGO's business, and BIGO's plan to deepen TiDB usage in the future.

Announcing HTAP support in TiDB Cloud

Today, we're glad to announce that TiDB Cloud, our fully managed database service powered by TiDB, now supports Hybrid Transactional/Analytical Processing (HTAP) workloads.

How to Migrate Data from Amazon Aurora MySQL to TiDB Cloud

This post introduces how to smoothly migrate data from Amazon Aurora MySQL to TiDB Cloud using Dumpling and TiDB Lightning.

Celebrate TiKV Graduation within CNCF

The Cloud Native Computing Foundation (CNCF) today just announced that TiKV has become the twelfth project to graduate, joining other graduated projects such as Kubernetes, Jaeger, Harbor, etc.

PingCAPers Make Their Debut at VLDB

The 46th VLDB conference will be broadcast online from August 31st to September 4th. PingCAP is honored to attend this conference, and we will share two papers with you TiDB: A Raft-based HTAP Database and Interleaved Multi-Vectorizing.

PingCAP Successfully Completes SOC 2 Type 1 Examination for TiDB Cloud

PingCAP, provider of the cloud-native hybrid transactional/analytical processing (HTAP) TiDB database, successfully completes an SOC 2 Type 1 examination for TiDB Cloud.

Why We Chose a Distributed SQL Database to Complement MySQL

VIPKid chose TiDB to manage its high data volume, highly concurrent write application. Learn how TiDB excels in that scenario, along with multidimensional queries, data life cycle management, and real-time analytics.

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.

Building an Automated Testing Framework Based on Chaos Mesh® and Argo

This article describes how we use TiPocket, an automated testing framework, to build a full Chaos Engineering testing loop for TiDB.

Announcing PD Transfer to TiKV Project

We decide to move the Placement Driver library entirely to TiKV org, happening at 11 AM, UTC+8, August 17, 2020.

What's New and Improved in TiDB Docs

Along with the rapid releases of TiDB products and projects, we also constantly update and improve our TiDB documentation. This post covers recent big changes, new content, and improvements in TiDB documentation.

TiDB 4.0: An Elastic, Real-Time HTAP Database Ready for the Cloud

At TiDB DevCon 2020, Max Liu, CEO at PingCAP, gave a keynote speech. He believes that today's database should be more flexible, more real-time, and easier to use, and TiDB, an elastic, cloud-native, real-time HTAP database, is exactly that kind of database.

Create a Scale-Out Hive Cluster with a Distributed, MySQL-Compatible Database

This post shows how to deploy a Hive cluster with TiDB to achieve horizontal scalability of Hive Metastore.

Heterogeneous Database Replication to TiDB

PingCAP is experienced in heterogeneous database replication. This post gives best practice tips for database migration to TiDB.

Announcing Chaos Mesh® as a CNCF Sandbox Project

We're thrilled to announce that Chaos Mesh®, our open-sourced Chaos Engineering platform for Kubernetes, is now officially accepted as a CNCF Sandbox project.

Horizontally Scaling the Hive Metastore Database by Migrating from MySQL to TiDB

This post shows how TiDB helps Zhihu scale its Hive Metastore database horizontally to meet its growing business needs and eliminate its database bottlenecks.

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.

Cluster Diagnostics: Troubleshoot Cluster Issues Using Only SQL Queries

TiDB 4.0 introduces cluster diagnostics, a built-in widget in TiDB Dashboard, which lets you diagnose cluster problems within a specified time range. You can summarize the diagnostic results and cluster-related load monitoring information in a diagnostic report.

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.

Announcing TiDB as a Service, Fully-Managed TiDB Offering

TiDB Cloud Beta is released. It's the easiest, most economical, and most resilient way to unlock the full power of TiDB in the cloud, allowing the users to deploy and run TiDB clusters with just a few clicks.

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.

VLDB 2020: TiDB, A Raft-based HTAP Database

PingCAP will publish a research paper "TiDB: A Raft-based HTAP Database" in the August issue of the Proceedings of the VLDB Endowment.

TiDB 4.0 GA, Gearing You Up for an Unpredictable World with a Real-Time HTAP Database

TiDB 4.0 has reached general availability. It's an elastic, real-time Hybrid Transactional/Analytical Processing (HTAP) database, and, best of all, it's now ready for the cloud.

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 and generics in Rust, 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%.

TiDB Dashboard: Easier Troubleshooting for Distributed Databases

TiDB 4.0 introduces TiDB Dashboard, which provides various built-in widgets in a graphical interface that let you easily diagnose, monitor, and manage your clusters in one place. Now you can troubleshoot TiDB clusters more easily.

Pessimistic Locking: Better MySQL Compatibility, Fewer Rollbacks Under High Load

With improvements in stability and functionality in TiDB 4.0, we finally remove the experimental label for pessimistic locking, making it a generally available feature. See how pessimistic locking behaves in TiDB.

TiCDC: Replication Latency in Milliseconds for 100+ TB Clusters

TiDB 4.0 introduces TiCDC, an open-source feature that replicates TiDB's incremental changes to downstream platforms. It shows only millisecond replication latency for 100+ TB clusters.

Large Transactions in TiDB

This post describes how we implemented support for large transactions in TiDB 4.0.

TiDB at ZaloPay Infrastructure & Lesson Learned

As VNG's business developed, their infrastructure became an obstacle to their growth. Then they chose TiDB as the core database for their ZaloPay app and used it to store their critical data. Now, VNG has 20+ TiDB nodes in their production environment.

SQL Plan Management: Never Worry About Slow Queries Again

This post introduces how SQL Plan Management helps the optimizer automatically select efficient execution plans to prevent performance regressions caused by unexpected plan changes.

Building, Running, and Benchmarking TiKV and TiDB

This post introduces how to build and run your own TiDB or TiKV, and how to run some benchmarks on those databases.

Get a TiDB Cluster Up in Only One Minute

TiUP is a component manager that streamlines installing and configuring a TiDB cluster into a few easy commands. It helps get your cluster up and running quickly with a minimal learning curve.

Key Visualizer: Observe Distributed Databases to Discover the Unknowns

Key Visualizer is a visual diagnostic tool that makes it easier to troubleshoot distributed SQL databases. Users can observe system health, quickly find hotspots in the cluster, and gain deep insights into applications.

Simulating Clock Skew in K8s Without Affecting Other Containers on the Node

As a cloud-native chaos engineering platform, Chaos Mesh supports TimeChaos, which simulates clock skew in containers or K8s for distributed systems to test system robustness, without affecting other containers on the node.

How to Back Up and Restore a 10-TB Cluster at 1+ GB/s

Backing up or restoring a large-scale distributed SQL database is a time-consuming task. Our upcoming TiDB 4.0 release will support Backup & Restore (BR), a distributed backup and restore tool, which lets you back up and restore data at 1+ GB/s for 10-TB data.

TiDB 4.0 Preview: An Easier-to-Use, Production-Ready HTAP Database

Get a preview of TiDB 4.0. Our landmark release has production-ready HTAP capabilities, continues to solve issues for large-scale, distributed SQL databases, and is easier to use than ever.

A Peek into the Future of Database: A Unified Infrastructure to Adapt Intelligently

Today is PingCAP's 5-year birthday. In this post, Ed Huang, PingCAP's CTO, discusses about what he thinks the future holds for databases. The future of the database is about unification, adaptiveness, and intelligence.

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.

Run Your First Chaos Experiment in 10 Minutes

In this 10-minute tutorial, we will help you to quickly get started with Chaos Engineering and run your first chaos experiment with Chaos Mesh.

Choosing the Right Database for Your Applications

With so many databases on the market, choosing the right fit for your app is not an easy task. As a leading e-commerce platform in Southeast Asia and Taiwan, Shopee has an effective strategy for database selection. Learn from their experience.

TiDB Usability Challenge - Dare to Dream Bigger

TiDB Challenge Program is a series community program to bring TiDB to a new level in terms of stability, performance, and usability. With amazing improvements in performance in season 1 last year, we are now pleased to announce that season 2 is ready for you.

TiDB Celebrates 400 Contributors

The TiDB repository reaches the 400th contributor milestone. All our honors and achievements belong to the TiDB community, our beloved contributors, and distinguished committers.

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.

Remote Work - Part 3

It's the third post in a series on remote work. In this post, Nick Cameron talks a bit about some of the practicalities, specifically around work and life balance.

Remote Work - Part 2

Nick Cameron has nearly ten-year experience of remote work. In this post, he discusses communication in remote work.

Remote Work - Part 1

Nick has been working remotely for nearly ten years. In this post, he introduces why you might benefit from remote work and some of the things that make remote work successful.

Doubling System Read Throughput with Only 26 Lines of Code

The Follower Read feature lets any follower replica in a Region serve a read request under the premise of strongly consistent reads. It reduces the load on the Raft leader and improves the read throughput of the TiDB cluster. Read this post to learn more.

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.

Chaos Mesh - Your Chaos Engineering Solution for System Resiliency on Kubernetes

Recently, PingCAP open-sourced Chaos Mesh, a Chaos Engineering platform that features all-around fault injection methods for complex Kubernetes systems. Find out how this testing tool can make your applications more reliable.

How TiKV Reads and Writes

This post details how TiKV, as a distributed database, stores the data contained in a write request and how it retrieves the corresponding data with consistency guaranteed.

AutoTiKV: TiKV Tuning Made Easy by Machine Learning

AutoTiKV is a machine-learning-based tuning tool that helps decrease tuning costs and make life easier for DBAs. This post shows AutoTiKV's design, its machine learning model, and the automatic tuning workflow.

Squashed Bugs, Served Hot and Fresh with Failure Rate Heatmaps

At TiDB Hackathon 2019, a team won the third prize by building a bot that helps quickly locate bugs in the code. Read this post to get more details.

How We Achieved 40 K QPS and 20+ Billion Rows of Data in a Single Scale-out Cluster

As the business developed, standalone MySQL couldn't meet JD Cloud's OSS metadata storage requirements. This post introduces how TiKV empowered JD Cloud to manage huge amounts of OSS metadata with a simple and horizontally scalable architecture.

NetEase Games: Why We Chose TiDB over Other MySQL-based and NewSQL Storage Solutions

As business boomed, NetEase Games met bottlenecks in database scalability and data isolation. This post introduces why they chose TiDB over other MySQL-based and NewSQL storage solutions to solve their pain points.

New Structure, New Roles - TiDB Community Upgrade!

PingCAP has upgraded and adjusted the TiDB community organization structure, with more community roles and community organizations introduced to better stimulate the vitality of the community and maintain a positive and healthy community environment.

10x Performance Improvement for Expression Evaluation Made Possible by Vectorized Execution and the Community

We vectorized 360+ built-in functions along with the TiDB community. Vectorized execution has greatly improved the expression evaluation performance. Some functions even achieved 10x performance. Here is our vectorization story.

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.

TiDB in the Browser: Running a Golang Database on WebAssembly

This post introduces how you can run TiDB directly in a web browser, how it is possible, and what the limitations are.

Delivering Real-time Analytics and True HTAP by Combining Columnstore and Rowstore

TiDB is an HTAP database that targets both OLTP and OLAP scenarios. TiFlash is its extended analytical engine. This post introduces how TiFlash fuels TiDB to become a true HTAP database that lets users perform real-time analytics.

INSERT INTO tidb.hackathon_2019 VALUES ("Hack", "Fun", "TiDB Ecosystem")

This post introduces the top 3 winners at TiDB Hackathon 2019 and the cozy and friendly environment of this meeting.

Safety First! Common Safety Pitfalls in Distributed Databases Found by Jepsen Tests

This post introduces why Jepsen is important to the distributed database industry, how it works, common issues found, how we use Jepsen with TiDB, and a short summary of all problems Jepsen has found.

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.

Lesson Learned from Queries over 1.3 Trillion Rows of Data Within Milliseconds of Response Time at Zhihu.com

As the business boomed and massive data in applications accrued each month, Zhihu faced severe challenges in scaling the backend system. This post introduces how Zhihu managed to keep milliseconds of query response time over a large amount of data and how TiDB, an open source MySQL-compatible HTAP database, empowered Zhihu to get real-time insights into data.

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.

TiDB Operator 1.0 GA: Database Cluster Deployment and Management Made Easy with Kubernetes

Deploying transactional databases like TiDB in Kubernetes for production has always been challenging. Now, with TiDB Operator 1.0, running TiDB database clusters has never been easier.

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 3.0 Reaches GA, Delivers Stability at Scale and Performance Boost

TiDB 3.0 is released! This blog post introduces some highlights of TiDB 3.0, including major features focused on stability, significant performance improvements in Sysbench and TPC-C benchmarks, a newly introduced component, and important features and improvements.

Distributed Systems Training in Go and Rust

PingCAP has made a talent plan for training and/or evaluating students, new employees, and new contributors to TiDB and TiKV. This blog post gives a brief overview of training courses for this plan on writing distributed systems in Go and Rust.

Best Practices for Developing Applications with TiDB

This article shows how to efficiently develop high-quality applications with TiDB, an open-source NewSQL database that supports Hybrid Transactional and Analytical Processing (HTAP) workloads and can serve as a scale-out MySQL database without manual sharding.

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.

Percona Live Austin -- Summary and Reflection

In this post, Kevin Xu shares the PingCAP team's experience and activities at Percona Live in Austin, including several technical sharing sessions and boosting friendship with people inside and outside PingCAP.

Tutorial: Use TiDB DM to Migrate and Replicate Data from MySQL, MariaDB & Amazon Aurora

Learn to migrate and replicate data from MySQL, MariaDB and Amazon Aurora using TiDB Data Migration.

Design and Implementation of Golang Failpoints

This post introduces design and implementation of Golang Failpoint.

TiDB Binlog Tutorial

Learn to deploy TiDB Binlog with a simple TiDB cluster.

PingCAP Open-Sources TiDB Binlog to Reduce Migration Cost

Our team at PingCAP is excited to announce that we are open-sourcing our own binlog implementation, TiDB Binlog. TiDB Binlog is a tool we've been developing in-house (until now) to collect binary log data from TiDB server and provide real-time data backup and replication.

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.

PingCAPers at the First RustCon Asia!

PingCAP has been an active member in the Rust community and one of the first production users of Rust in building TiKV. As part of being a co-organizer for the first RustCon Asia, PingCAP also contributed several topics in both keynote sessions and workshops.

Titan: A RocksDB Plugin to Reduce Write Amplification

As a RocksDB plugin for key-value separation, inspired by WiscKey, Titan is available for preview in TiDB 3.0. This post introduces the design and implementation of Titan.

Powering the Xiaomi Mobile Lifestyle with TiDB

As sales of Xiaomi smartphones continue to climb and the MIUI user base continues to grow, the Database Administration team at Xiaomi was having an increasingly hard time managing their MySQL database infrastructure until they adopted TiDB, an open source distributed hybrid transactional and analytical processing database created and supported by PingCAP. Now they also have plans to migrate additional workloads to TiDB in the future.

Introduction to Analytics Queries for the MySQL DBA

This post introduces some simple use cases of analytics queries where a MySQL DBA can expand their repertoire and answer some basic business questions by writing SQL queries with window functions.

BookMyShow.com: More Uptime, 30% Less Operational Cost with TiDB

With TiDB, BookMyShow has experienced increased uptime and availability, since TiDB automatically partitions and distributes data across the cluster. Meanwhile, operational and maintenance cost has been reduced by 30%. No engineer needs to be fully dedicated to database operations anymore. This post will introduce why BookMyShow chose TiDB over Greenplum by illustrating how TiDB solved their pain points.

Shopping on Shopee, the TiDB Way

As our business boom, our team faced severe challenges in scaling our backend system to meet the demand until we found TiDB, a MySQL-compatible NewSQL hybrid transactional and analytical processing (HTAP) database, built and supported by PingCAP. Now we can provide better service and experience for our users without worrying about our database capacity.

FOSDEM 2019 Recap: Global Technology, Local Community

In this post, Kevin Xu shares the PingCAP team's experience and activities at FOSDEM 2019, including three talks they delivered at the conference -- the first one about TiDB and its architecture, horizontal scalability and MySQL compatibility, the second about improving development posture in Rust based on the work building TiKV, and the last about Rust implementation of Prometheus.

TiDB Tools (III): TiDB Data Migration Architecture Design and Implementation Principles

TiDB Data Migration is an integrated data transfer and replication management platform that supports full data migration or incremental data replication from MySQL or MariaDB instances into a TiDB cluster. This post introduces its architecture design and implementation principles.

TiDB Tools (II): Introducing TiDB Lightning

TiDB Lightning is an open source TiDB ecosystem tool that supports high speed full-import of a large SQL dump into a TiDB cluster. This post introduces its architecture and future improvements on the roadmap.

TiDB Tools (I): TiDB Binlog Architecture Evolution and Implementation Principles

TiDB Binlog is a tool used to collect the logical changes made to a TiDB cluster and provide incremental backup and replication. This post introduces its architecture evolution and implementation principles.

TiDB 3.0 Beta: Stability at Scale

This post introduces the key new features of TiDB 3.0 Beta.

PingCAP 2018 Year in Review

Thank you for a great 2018!

5 Key Differences Between MySQL and TiDB for Scaling in the Cloud

This post introduces the top five key differences between TiDB and MySQL.

Migrating from MySQL to a Scale-Out Database to Serve Our 290 Million Monthly Users

As our business grew quickly, we were overwhelmed trying to tackle the mounting data until we found TiDB, a MySQL-compatible NewSQL hybrid transactional and analytical processing (HTAP) database, built and supported by PingCAP. Now we can harness our data with more confidence than ever before and provide better services for our users to enjoy a better life.

TiDB 2.1 GA: Battle-Tested to Handle an Unpredictable World

PingCAP, a leading distributed database company that created the popular MySQL-compatible cloud-native NewSQL database TiDB, announces that TiDB 2.1 is ready for General Availability.

How TiKV Uses "Lease Read" to Guarantee High Performances, Strong Consistency and Linearizability

This post discusses Raft Log Read, `ReadIndex` Read, and Lease Read, and why TiKV adopts the Lease Read approach.

TiDB: Architecture and Use Cases of A Cloud-Native NewSQL Database

This post provides a macro-level overview of TiDB and is the main reference content for readers to orient and dig deeper into other TiDB subjects.

Announcing TiDB Cloud, Managed as a Service and in the Marketplace

This post announces that TiDB Cloud is now available for public preview.

Always Fun, Always On: How TiDB Helps iQiyi Deliver Streaming Videos

As our business grew exponentially, we were overwhelmed trying to handle the mounting data until we found TiDB, a MySQL-compatible NewSQL hybrid transactional and analytical processing (HTAP) database, built and supported by PingCAP. Now we no longer worry about data volume and can bring high-quality entertainment services to our users with more confidence than before.

Launching TiDB Academy, First Course-"Distributed Database with TiDB for MySQL DBAs"

Today, we are excited to launch TiDB Academy, a series of technical training courses and certifications on TiDB and distributed databases in general, taught by our senior technical team.

PingCAP Raises $50 Million in Series C Round, Sets Eyes on Global Expansion, Cross-Cloud Offering, and More Core Technology Investment

PingCAP, a leading distributed database company that created the popular cloud-native NewSQL database TiDB, announces a $50 million Series C funding round led by FOSUN and Morningside Venture Capital. All previous investors—China Growth Capital, Yunqi Partners, Matrix Partners China, and others—have also participated in this round. PingCAP plans to use this new capital to expand the TiDB ecosystem globally, build cross-cloud product offering, and invest in innovation of its core technology.

TiDB Reaches the 200 Contributors Milestone

TiDB recently added its 200th contributor. As CEO and co-founder of PingCAP who began building TiDB three years ago, I would like to thank the entire TiDB community for helping us reach this important milestone!

9 Why's to Ask When Evaluating a Distributed Database

Ed Huang, the CTO of PingCAP, has summarized into "9 why's" the most frequently asked questions by engineers when they look at a distributed database; he also gives his answers to these questions in this post to help make decision-making of engineers a bit easier.

Managing the Surging Data Volume of a Fast-Growing Marketplace with TiDB

With our fast-growing business, the surging data volume posed a serious challenge to our backend system and put the operations team under great pressure. How to tackle these challenges became a thorny problem until we found TiDB, a MySQL compatible distributed hybrid transactional and analytical processing (HTAP) database, built and supported by PingCAP. Finally, we do not have to worry about scaling databases and can focus on building better applications for our users.

Landing Your First Rust Pull Request in TiKV

This guide is intended to show how you can land your first Pull Request (PR) in Rust to contribute to TiKV in less than 30 minutes. But before we do that, here's some helpful background.

TiSpark: More Data Insights, Less ETL

The motivation behind building TiSpark was to enable real-time analytics on TiDB without the delay and challenges of ETL. Extract, transform, and load (ETL)--a process to extract data from operational databases, transform that data, then load it into a database designed to supporting analytics--has been one of the most complex, tedious, error-prone, and therefore disliked tasks for many data engineers. However, it was a necessary evil to make data useful, because there hasn't been good solutions on the market to render ETL obsolete--until now.

The Hybrid Database Capturing Perishable Insights at Yiguo

As the largest B2C fresh produce online marketplace in China, serving close to 5 million users and 1,000+ enterprise customers, Yiguo.com uses TiDB to capture real-time insights from fresh transactional data to make timely and accurate business decisions.

How To Spin Up an HTAP Database in 5 Minutes with TiDB + TiSpark

In this 5-minute tutorial for beginners, we will show you how to spin up a standard TiDB cluster using Docker Compose on your local computer, so you can get a taste of its hybrid power, before using it for work or your own project in production.

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.

TiDB 2.0 is Ready - Faster, Smarter, and Battle-Tested

TiDB 2.0 is released! We absorbed insights and feedbacks from our customers, listened to requests and issues from our community, and reflected internally on our ultimate vision of building a distributed hybrid transactional and analytical processing database that scales itself, heals itself, and lives in the cloud.

From Chaos to Order -- Tools and Techniques for Testing TiDB, A Distributed NewSQL Database

As an open source distributed NewSQL Hybrid Transactional/Analytical Processing (HTAP) database, TiDB contains the most important asset of our customers--their data. One of the fundamental and foremost requirements of our system is to be fault-tolerant. But how do you ensure fault tolerance in a distributed database? This article covers the top fault injection tools and techniques in Chaos Engineering, as well as how to execute Chaos practices in TiDB.

Blitzscaling the Largest Dockless Bikesharing Platform with TiDB's Help

Mobike has been using the TiDB database in the production environment since early 2017. Now they have deployed TiDB in multiple clusters with close to 100 nodes, handling dozens of TBs of data for different application scenarios. This post will provide a deep dive on why Mobike chose TiDB over MySQL and its sharding solutions by illustrating how TiDB solves their pain points.

How to Do Performance Tuning on TiDB, a Distributed NewSQL Database

Doing performance tuning on distributed systems is no joking matter. It's much more complicated than on a single node server, and bottlenecks can pop up anywhere, from system resources in a single node or subcomponent, to cooperation between nodes, to even network bandwidth. Performance tuning is a practice that aims to find these bottlenecks and address them, in order to reveal more bottlenecks and address them as well, until the system reaches an optimal performance level. In this article, I will share some best practices on how to tune "write" operations in TiDB to achieve maximum performance.

Bringing TiKV to Rust Devroom at FOSDEM 2018

At the crack of dawn on February 1, I landed in Brussels, Belgium, for the first time in my life. The goal of my trip wasn't to taste the local cuisine, tour world-famous museums, or grab a pint of the local brew. It was to deliver a talk three days later at FOSDEM 2018 Rust Devroom about our experience at PingCAP using Rust to build TiKV, a distributed transactional Key-Value storage engine.

TiDB DevCon 2018 Recap - News, Latest Development, and Roadmap

On January 20th, 2018, more than 200 coders, hackers, and techies streamed into Garage Café, a chic coffee shop in the heart of Beijing's techhub, Zhongguancun. They were there to be part of TiDB DevCon 2018, a technology party for the developers, by the developers!

2017 Reflection and Gratitude

Thank you all, our beloved contributors, customers, and partners, for an amazing 2017! Hello, 2018!

Tick or Tock? Keeping Time and Order in Distributed Databases

At re:Invent 2017, Amazon Web Services (AWS) announced Amazon Time Sync Service which is a highly accurate and reliable time reference that is natively accessible from Amazon EC2 instances. It is much like the Google TrueTime which was published in 2012. Why do Google and AWS both want to make efforts to provide global time service? Is there any inspiration for building distributed database? This topic is important to think about.

PingCAP Plants its Seed in Silicon Valley

PingCAP, a cutting-edge distributed Hybrid Transactional/Analytical Processing (HTAP) database company, is excited to announce the opening of its Silicon Valley office, located at the GSV Labs in Redwood City, California.

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.

PingCAP Launches TiDB 1.0

TiDB is compatible with MySQL, strong consistent and highly available.

Scale the Relational Database with NewSQL

This is the speech Li SHEN gave at the 3rd NEXTCON.

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.

RocksDB in TiKV

This is the speech Siddon Tang gave at the RocksDB meetup on August 28, 2017.

Futures and gRPC in Rust

This is the speech Siddon Tang gave at Bay Area Rust Meetup August 2017.

How We Found a Data Corruption Bug in RocksDB

Data was corrupted. A cluster panicked. The crime scene was compromised. What happened? Detective Huang went all lengths to locate the criminal and solved it once and for all.

When TiDB Meets Jepsen

What happens when TiDB meets Jepsen?

The Design and Implementation of Multi-raft

The goal of TiKV is to support 100 TB+ of data and it is impossible for one Raft group to make it, we need to use multiple Raft groups, which is called Multi-raft.

How TiDB tackles fast data growth and complex queries for yuanfudao.com

This document is a case study that details the reasons why yuanfudao.com chose TiDB as its backend database solution to tackle their fast data growth and complex queries.

A TiKV Source Code Walkthrough - Raft in TiKV

TiKV uses the Raft algorithm to implement the strong consistency of data in a distributed environment. This blog introduces the details how Raft is implemented.

TiDB Best Practices

This article summarizes some best practices in using TiDB, mainly including SQL usage, OLAP/OLTP optimization techniques and especially TiDB's exclusive optimization switches.

TiDB Internal (III) - Scheduling

This is the third one of three blogs to introduce TiDB internal.

TiDB Internal (II) - Computing

This is the second one of three blogs to introduce TiDB internal.

TiDB Internal (I) - Data Storage

This is the first one of three blogs to introduce TiDB internal.

Refactoring the Built-in Functions in TiDB

In order to accelerate expression evaluation, we recently refactored its framework. This tutorial will show you how to use the new computational framework to rewrite or add a built-in function in TiDB.

Rust in TiKV

This is the speech Siddon Tang gave at the 1st Rust Meetup in Beijing on April 16, 2017.

A Brief Introduction of TiDB

This is the speech Edward Huang gave at Percona Live Open Source Database Conference 2017.

Migration from MySQL to TiDB to handle tens of millions of rows of data per day

This document is a use case that details the performance of MySQL and TiDB with tens of millions of rows of data per day.

About the TiDB Source Code

The target audience of this document is the contributors in the TiDB community. The document aims to help them understand the TiDB project. It covers the system architecture, the code structure, and the execution process.

Adding Built-in Functions

TiDB code is updated and the procedure of adding built-in functions is greatly simplified. This document describes how to add built-in functions to TiDB.

Subquery Optimization in TiDB

Subquery optimization, especially rewriting the correlated subquery, is a very difficult part in SQL query optimization. To be compatible with MySQL, TiDB enables users to write subqueries anywhere they want. For those subqueries that are not correlated, which are also called uncorrelated subqueries, TiDB evaluates in advance; for those correlated subqueries, TiDB removes the correlations as much as possible. For example, TiDB can rewrite a correlated subquery to `SemiJoin`. This article is focused on introducing the correlated subquery optimization methods in TiDB.

MVCC in TiKV

This document gives an overview of MVCC implementation in TiKV.

Travelling Back in Time and Reclaiming the Lost Treasures

This document introduces the History Read feature in TiDB.

A Deep Dive into TiKV

This document introduces how TiKV works as a Key-Value database.

How we build TiDB

This is the speech Max Liu gave at Percona Live Open Source Database Conference 2016.

- Show More Articles -