replace 6.1 to dev. Add what"s new

Signed-off-by: pingyu <yuping@pingcap.com>
This commit is contained in:
pingyu 2022-11-02 20:23:35 +08:00
parent b17e381229
commit c39f5f462d
70 changed files with 332 additions and 233 deletions

View File

@ -2,10 +2,10 @@
title: CAS on RawKV
description: Compare And Swap
menu:
"6.1":
parent: Features-v6.1
"dev":
parent: Features-dev
weight: 4
identifier: CAS on RawKV-v6.1
identifier: CAS on RawKV-dev
---
This page walks you through a simple demonstration of performing compare-and-swap (CAS) in TiKV.

View File

@ -2,10 +2,10 @@
title: Distributed Transaction
description: How transaction works on TxnKV
menu:
"6.1":
parent: Features-v6.1
"dev":
parent: Features-dev
weight: 5
identifier: Distributed Transaction-v6.1
identifier: Distributed Transaction-dev
---
This chapter walks you through a simple demonstration of how TiKV's distributed transaction works.

View File

@ -2,10 +2,10 @@
title: Fault Tolerance and Recovery
description: Learn how TiKV recovers from failures.
menu:
"6.1":
parent: Features-v6.1
"dev":
parent: Features-dev
weight: 2
identifier: Fault Tolerance and Recovery-v6.1
identifier: Fault Tolerance and Recovery-dev
---
This document walks you through a demonstration of how TiKV recovers from failures and continues providing services when some nodes fail. You can follow the steps of this demonstration and perform operations on your own. In this way, you will have a hands-on experience of the fault tolerance feature of TiKV.

View File

@ -2,10 +2,10 @@
title: Features
description: The features of TiKV
menu:
"6.1":
parent: Get Started-v6.1
"dev":
parent: Get Started-dev
weight: 2
identifier: Features-v6.1
identifier: Features-dev
---
TiKV offers the following key features:

View File

@ -2,10 +2,10 @@
title: Replication and Rebalancing
description: Learn how TiKV replicates, distributes, and rebalances data.
menu:
"6.1":
parent: Features-v6.1
"dev":
parent: Features-dev
weight: 1
identifier: Replication and Rebalancing-v6.1
identifier: Replication and Rebalancing-dev
---
This document walks you through a simple demonstration of how TiKV replicates, distributes, and rebalances data. To start a 3-node local cluster, you need to perform the following operations:

View File

@ -2,10 +2,10 @@
title: TTL on RawKV
description: Time to Live
menu:
"6.1":
parent: Features-v6.1
"dev":
parent: Features-dev
weight: 3
identifier: TTL on RawKV-v6.1
identifier: TTL on RawKV-dev
---
This page walks you through a simple demonstration of how to use TTL (Time To Live) on RawKV. TTL is a data clearing mechanism that automatically deletes data after a specified period of time. For example:

View File

@ -2,9 +2,9 @@
title: Get Started
description: TiKV Introduction
menu:
"6.1":
"dev":
weight: 2
identifier: Get Started-v6.1
identifier: Get Started-dev
---
**TiKV** is a highly scalable, low latency, and easy to use key-value database that delivers performance less than 10 ms at any scale.

View File

@ -2,10 +2,10 @@
title: TiKV in 5 Minutes
description: Get started using TiKV in 5 Minutes
menu:
"6.1":
parent: Get Started-v6.1
"dev":
parent: Get Started-dev
weight: 1
identifier: TiKV in 5 Minutes-v6.1
identifier: TiKV in 5 Minutes-dev
---
This tutorial provides you a quick way to get started with TiKV, including the following operations:

View File

@ -2,10 +2,10 @@
title: What's Next
description:
menu:
"6.1":
parent: Get Started-v6.1
"dev":
parent: Get Started-dev
weight: 3
identifier: What's Next-v6.1
identifier: What's Next-dev
---
Depending on your role, the following resources are recommended to learn more about TiKV:

View File

@ -2,10 +2,10 @@
title: Coprocessor Config
description: Learn how to configure Coprocessor in TiKV.
menu:
"6.1":
parent: Configure TiKV-v6.1
"dev":
parent: Configure TiKV-dev
weight: 14
identifier: Coprocessor Config-v6.1
identifier: Coprocessor Config-dev
---
You can find all the configuration parameters related to Coprocessor [here](../tikv-configuration-file/#coprocessor).

View File

@ -2,10 +2,10 @@
title: gRPC Config
description: Learn how to configure gRPC in TiKV.
menu:
"6.1":
parent: Configure TiKV-v6.1
"dev":
parent: Configure TiKV-dev
weight: 13
identifier: gRPC Config-v6.1
identifier: gRPC Config-dev
---
You can find all the configuration parameters related to gRPC [here](../tikv-configuration-file/#server) (started with `grpc-`).

View File

@ -2,10 +2,10 @@
title: Configure TiKV
description: Configure a wide range of TiKV facets, including RocksDB, gRPC, the Placement Driver, and more.
menu:
"6.1":
parent: Deploy-v6.1
"dev":
parent: Deploy-dev
weight: 2
identifier: Configure TiKV-v6.1
identifier: Configure TiKV-dev
---
Although you are recommended to get started with TiKV using the default configuration, TiKV provides many configuration parameters to tweak its behavior, which allows you to configure the cluster to suit your special application requirements.

View File

@ -2,10 +2,10 @@
title: Scheduling Limit Config
description: Learn how to configure scheduling rate limit on stores.
menu:
"6.1":
parent: Configure TiKV-v6.1
"dev":
parent: Configure TiKV-dev
weight: 7
identifier: Scheduling Limit Config-v6.1
identifier: Scheduling Limit Config-dev
---
This document describes how to configure the scheduling rate limit at the store level.

View File

@ -2,10 +2,10 @@
title: PD Command Line Parameters
description: Learn configuration flags of PD
menu:
"6.1":
parent: Configure TiKV-v6.1
"dev":
parent: Configure TiKV-dev
weight: 1
identifier: PD Command Line Parameters-v6.1
identifier: PD Command Line Parameters-dev
---
PD is configurable using command-line flags and environment variables.

View File

@ -2,10 +2,10 @@
title: PD Config
description: Learn the PD configuration file
menu:
"6.1":
parent: Configure TiKV-v6.1
"dev":
parent: Configure TiKV-dev
weight: 2
identifier: PD Config-v6.1
identifier: PD Config-dev
---
The PD configuration file supports more options than command-line parameters. You can find the default configuration file [here](https://github.com/pingcap/pd/blob/release-5.0/conf/config.toml).

View File

@ -2,10 +2,10 @@
title: Raftstore Config
description: Learn how to configure Raftstore in TiKV.
menu:
"6.1":
parent: Configure TiKV-v6.1
"dev":
parent: Configure TiKV-dev
weight: 10
identifier: Raftstore Config-v6.1
identifier: Raftstore Config-dev
---
You can find all the configuration parameters related to Raftstore [here](../tikv-configuration-file/#raftstore).

View File

@ -2,10 +2,10 @@
title: Region Merge Config
description: Learn how to configure Region Merge in TiKV.
menu:
"6.1":
parent: Configure TiKV-v6.1
"dev":
parent: Configure TiKV-dev
weight: 7
identifier: Region Merge Config-v6.1
identifier: Region Merge Config-dev
---
TiKV shards continuous ranges of keys into Regions, and replicates Regions through the Raft protocol. When data size increases until reaching a threshold, a Region splits into multiple. Conversely, if the size of the Region shrinks due to data deletion, two adjacent Regions can be merged into one.

View File

@ -2,10 +2,10 @@
title: RocksDB Config
description: Learn how to configure RocksDB engine in TiKV.
menu:
"6.1":
parent: Configure TiKV-v6.1
"dev":
parent: Configure TiKV-dev
weight: 8
identifier: RocksDB Config-v6.1
identifier: RocksDB Config-dev
---
TiKV uses [RocksDB](https://rocksdb.org/) internally to store Raft logs and key-value pairs.

View File

@ -2,10 +2,10 @@
title: Security Config
description: Keep your TiKV secure
menu:
"6.1":
parent: Configure TiKV-v6.1
"dev":
parent: Configure TiKV-dev
weight: 5
identifier: Security Config-v6.1
identifier: Security Config-dev
---
This document describes how to use Transport Layer Security (TLS) to encrypt the connections between TiKV nodes.

View File

@ -2,10 +2,10 @@
title: Storage Config
description: Learn how to configure storage in TiKV.
menu:
"6.1":
parent: Configure TiKV-v6.1
"dev":
parent: Configure TiKV-dev
weight: 12
identifier: Storage Config-v6.1
identifier: Storage Config-dev
---

View File

@ -2,10 +2,10 @@
title: TiKV Command Line Parameters
description: Learn some configuration flags of TiKV
menu:
"6.1":
parent: Configure TiKV-v6.1
"dev":
parent: Configure TiKV-dev
weight: 3
identifier: TiKV Command Line Parameters-v6.1
identifier: TiKV Command Line Parameters-dev
---
TiKV supports readable units in command line parameters.

View File

@ -2,10 +2,10 @@
title: TiKV Config
description: Learn the TiKV configuration file
menu:
"6.1":
parent: Configure TiKV-v6.1
"dev":
parent: Configure TiKV-dev
weight: 4
identifier: TiKV Config-v6.1
identifier: TiKV Config-dev
---
The TiKV configuration file supports more options than command-line parameters. You can find the default configuration file in [etc/config-template.toml](https://github.com/tikv/tikv/blob/release-5.0/etc/config-template.toml) and rename it to `config.toml`.

View File

@ -2,10 +2,10 @@
title: RocksDB Titan Config
description: Learn how to enable Titan in TiKV.
menu:
"6.1":
parent: Configure TiKV-v6.1
"dev":
parent: Configure TiKV-dev
weight: 11
identifier: RocksDB Titan Config-v6.1
identifier: RocksDB Titan Config-dev
---
Titan is a RocksDB plugin developed by PingCAP to separate keys and values in RocksDB storage. The goal of Titan is to reduce the write amplification when storing large values.

View File

@ -2,10 +2,10 @@
title: Topology Label Config
description: Learn how to configure topology labels.
menu:
"6.1":
parent: Configure TiKV-v6.1
"dev":
parent: Configure TiKV-dev
weight: 6
identifier: Topology Label Config-v6.1
identifier: Topology Label Config-dev
---
TiKV uses topology labels (hereafter referred to as the labels) to declare its location information, and PD scheduler uses the labels to optimize TiKV's failure tolerance capability. This document describes how to configure the labels.

View File

@ -2,9 +2,9 @@
title: Deploy
description: Learn how to deploy and operate a TiKV cluster
menu:
"6.1":
"dev":
weight: 3
identifier: Deploy-v6.1
identifier: Deploy-dev
---
Learn to deploy, configure, monitor, and scale TiKV as you adopt the service into your project and infrastructure.

View File

@ -2,10 +2,10 @@
title: Install TiKV
description: TiKV deployment prerequisites and methods
menu:
"6.1":
parent: Deploy-v6.1
"dev":
parent: Deploy-dev
weight: 1
identifier: Install TiKV-v6.1
identifier: Install TiKV-dev
---
This section introduces how to deploy and verify a TiKV cluster in the production environment.

View File

@ -2,10 +2,10 @@
title: Prerequisites
description: Learn the software and hardware recommendations for deploying and running TiKV
menu:
"6.1":
parent: Install TiKV-v6.1
"dev":
parent: Install TiKV-dev
weight: 1
identifier: Prerequisites-v6.1
identifier: Prerequisites-dev
---
TiKV can be deployed in the Intel architecture server, ARM architecture server, and major virtualization environments and runs well. TiKV supports most of the major hardware networks and Linux operating systems.

View File

@ -2,10 +2,10 @@
title: Production Deployment
description: Deploy a TiKV Cluster for Production Using TiUP
menu:
"6.1":
parent: Install TiKV-v6.1
"dev":
parent: Install TiKV-dev
weight: 2
identifier: Production Deployment-v6.1
identifier: Production Deployment-dev
---
This guide describes how to install and deploy TiKV for production environment.

View File

@ -2,10 +2,10 @@
title: Test Deployment
description: Deploy a TiKV Cluster for Test
menu:
"6.1":
parent: Install TiKV-v6.1
"dev":
parent: Install TiKV-dev
weight: 4
identifier: Test Deployment-v6.1
identifier: Test Deployment-dev
---
This guide describes how to install and deploy TiKV for test using TiUP playground and binary installation.

View File

@ -2,10 +2,10 @@
title: Verify Cluster Status
description: Check the cluster status and connect to the cluster
menu:
"6.1":
parent: Install TiKV-v6.1
"dev":
parent: Install TiKV-dev
weight: 3
identifier: Verify Cluster Status-v6.1
identifier: Verify Cluster Status-dev
---
After a TiKV cluster is deployed, you need to check whether the cluster runs normally. This document introduces how to check the cluster status using TiUP commands and Grafana, and how to connect to the TiKV cluster using a TiKV client to perform the simple `put` and `get` operations.

View File

@ -2,10 +2,10 @@
title: TiKV Cluster Alert Rules
description: Learn the alert rules in a TiKV cluster.
menu:
"6.1":
parent: Monitor and Alert-v6.1
"dev":
parent: Monitor and Alert-dev
weight: 6
identifier: TiKV Cluster Alert Rules-v6.1
identifier: TiKV Cluster Alert Rules-dev
---
This document describes the alert rules for different components in a TiKV cluster, including the rule descriptions and solutions of the alert items in TiKV, PD, Node_exporter and Blackbox_exporter.

View File

@ -2,10 +2,10 @@
title: Monitoring API
description: Learn the API of TiKV monitoring services.
menu:
"6.1":
parent: Monitor and Alert-v6.1
"dev":
parent: Monitor and Alert-dev
weight: 2
identifier: Monitoring API-v6.1
identifier: Monitoring API-dev
---
You can use the following two types of interfaces to monitor the TiKV cluster state:

View File

@ -2,10 +2,10 @@
title: Deploy Monitoring Services
description: Learn how to deploy monitoring services for the TiKV cluster.
menu:
"6.1":
parent: Monitor and Alert-v6.1
"dev":
parent: Monitor and Alert-dev
weight: 3
identifier: Deploy Monitoring Services-v6.1
identifier: Deploy Monitoring Services-dev
---
This document is intended for users who want to manually deploy TiKV monitoring and alert services.

View File

@ -2,10 +2,10 @@
title: Monitoring Framework
description: Use Prometheus and Grafana to build the TiKV monitoring framework.
menu:
"6.1":
parent: Monitor and Alert-v6.1
"dev":
parent: Monitor and Alert-dev
weight: 1
identifier: Monitoring Framework-v6.1
identifier: Monitoring Framework-dev
---
The TiKV monitoring framework adopts two open-source projects: [Prometheus](https://github.com/prometheus/prometheus) and [Grafana](https://github.com/grafana/grafana). TiKV uses Prometheus to store the monitoring and performance metrics, and uses Grafana to visualize these metrics.

View File

@ -2,10 +2,10 @@
title: Export Grafana Snapshots
description: Learn how to export snapshots of Grafana Dashboard, and how to visualize these files.
menu:
"6.1":
parent: Monitor and Alert-v6.1
"dev":
parent: Monitor and Alert-dev
weight: 4
identifier: Export Grafana Snapshots-v6.1
identifier: Export Grafana Snapshots-dev
---
Metrics data is important in troubleshooting. When you request remote assistance, sometimes the support staff need to view the Grafana dashboards to diagnose problems. [MetricsTool](https://metricstool.pingcap.com/) can help export snapshots of Grafana dashboards as local files and visualize these snapshots. You can share these snapshots with outsiders and allow them to accurately read out the graphs, without giving out access to other sensitive information on the Grafana server.

View File

@ -2,10 +2,10 @@
title: Key Metrics
description: Learn some key metrics displayed on the Grafana Overview dashboard.
menu:
"6.1":
parent: Monitor and Alert-v6.1
"dev":
parent: Monitor and Alert-dev
weight: 5
identifier: Key Metrics-v6.1
identifier: Key Metrics-dev
---
If your TiKV cluster is deployed using TiUP, the monitoring system is deployed at the same time. For more details, see [Overview of the TiKV Monitoring Framework](https://pingcap.com/docs/stable/reference/key-monitoring-metrics/overview-dashboard/).

View File

@ -2,10 +2,10 @@
title: Monitor and Alert
description: Learn how to monitor a TiKV cluster.
menu:
"6.1":
parent: Deploy-v6.1
"dev":
parent: Deploy-dev
weight: 4
identifier: Monitor and Alert-v6.1
identifier: Monitor and Alert-dev
---
This section introduces how to monitor a TiKV cluster.

View File

@ -2,10 +2,10 @@
title: TiUP Common Operations
description: Learn the common operations to operate and maintain a TiKV cluster using TiUP
menu:
"6.1":
parent: Operate TiKV-v6.1
"dev":
parent: Operate TiKV-dev
weight: 3
identifier: TiUP Common Operations-v6.1
identifier: TiUP Common Operations-dev
---
This document describes the following common operations when you operate and maintain a TiKV cluster using TiUP.

View File

@ -2,10 +2,10 @@
title: Operate TiKV
description: Learn how to maintain and operate a TiKV cluster.
menu:
"6.1":
parent: Deploy-v6.1
"dev":
parent: Deploy-dev
weight: 5
identifier: Operate TiKV-v6.1
identifier: Operate TiKV-dev
---
This section introduces how to maintain and operate a TiKV cluster, including the following operations:

View File

@ -2,10 +2,10 @@
title: Scale
description: Learn how to scale out/in TiKV using TiUP
menu:
"6.1":
parent: Operate TiKV-v6.1
"dev":
parent: Operate TiKV-dev
weight: 2
identifier: Scale-v6.1
identifier: Scale-dev
---
The capacity of a TiKV cluster can be increased or decreased without interrupting online services.

View File

@ -2,10 +2,10 @@
title: Upgrade
description: Learn how to upgrade TiKV using TiUP
menu:
"6.1":
parent: Operate TiKV-v6.1
"dev":
parent: Operate TiKV-dev
weight: 1
identifier: Upgrade-v6.1
identifier: Upgrade-dev
---
This document is targeted for users who want to upgrade from TiKV 4.0 versions to TiKV 5.0 versions, or from TiKV 5.0 to a later version.

View File

@ -2,10 +2,10 @@
title: Benchmark Instructions
description: How to do a benchmark over a TiKV cluster
menu:
"6.1":
parent: Benchmark and Performance-v6.1
"dev":
parent: Benchmark and Performance-dev
weight: 6
identifier: Benchmark Instructions-v6.1
identifier: Benchmark Instructions-dev
---
TiKV delivers predictable throughput and latency at all scales on commodity hardware. This document provides a step-by-step tutorial on performing a benchmark test using the industry-standard benchmark tool [YCSB](https://github.com/brianfrankcooper/YCSB) on TiKV.

View File

@ -2,10 +2,10 @@
title: Performance Overview
description: An overview of TiKV performance
menu:
"6.1":
parent: Benchmark and Performance-v6.1
"dev":
parent: Benchmark and Performance-dev
weight: 5
identifier: Performance Overview-v6.1
identifier: Performance Overview-dev
---

View File

@ -2,10 +2,10 @@
title: Benchmark and Performance
description: Learn about the performance of TiKV.
menu:
"6.1":
parent: Deploy-v6.1
"dev":
parent: Deploy-dev
weight: 4
identifier: Benchmark and Performance-v6.1
identifier: Benchmark and Performance-dev
---
This section introduces an overview of TiKV performance and the instructions to do a benchmark.

View File

@ -2,10 +2,10 @@
title: C++ Client
description: Interact with TiKV using C++.
menu:
"6.1":
parent: TiKV Clients-v6.1
"dev":
parent: TiKV Clients-dev
weight: 5
identifier: C++ Client-v6.1
identifier: C++ Client-dev
---
{{< warning >}}

View File

@ -2,10 +2,10 @@
title: Go Client
description: Interact with TiKV using Go.
menu:
"6.1":
parent: TiKV Clients-v6.1
"dev":
parent: TiKV Clients-dev
weight: 2
identifier: Go Client-v6.1
identifier: Go Client-dev
---
TiKV Go Client is still in the proof-of-concept stage and under development. You can track the development at [tikv/client-go](https://github.com/tikv/client-go/) repository.

View File

@ -2,10 +2,10 @@
title: TiKV Clients
description: Interact with TiKV using the raw key-value API or the transactional key-value API.
menu:
"6.1":
parent: Develop-v6.1
"dev":
parent: Develop-dev
weight: 1
identifier: TiKV Clients-v6.1
identifier: TiKV Clients-dev
---
TiKV offers two APIs that you can interact with:

View File

@ -2,10 +2,10 @@
title: Java Client
description: Interact with TiKV using Java.
menu:
"6.1":
parent: TiKV Clients-v6.1
"dev":
parent: TiKV Clients-dev
weight: 1
identifier: Java Client-v6.1
identifier: Java Client-dev
---
This document guides you on how to use [Java Client](https://github.com/tikv/client-java) in TiKV.

View File

@ -2,10 +2,10 @@
title: Python Client
description: Interact with TiKV using Python.
menu:
"6.1":
parent: TiKV Clients-v6.1
"dev":
parent: TiKV Clients-dev
weight: 4
identifier: Python Client-v6.1
identifier: Python Client-dev
---
TiKV client for python is built on top of [TiKV Client in Rust](https://github.com/tikv/client-rust) via CFFI and [PyO3 Python binding](https://github.com/PyO3/pyo3).

View File

@ -2,10 +2,10 @@
title: Rust Client
description: Interact with TiKV using Rust.
menu:
"6.1":
parent: TiKV Clients-v6.1
"dev":
parent: TiKV Clients-dev
weight: 3
identifier: Rust Client-v6.1
identifier: Rust Client-dev
---
TiKV Rust Client is still in the proof-of-concept stage and under development. You can track the development at [tikv/client-rust](https://github.com/tikv/client-rust/) repository.

View File

@ -2,9 +2,9 @@
title: Develop
description: Learn how to use TiKV Clients for different languages
menu:
"6.1":
"dev":
weight: 3
identifier: Develop-v6.1
identifier: Develop-dev
---
Learn how to use TiKV Clients for different languages.

View File

@ -2,10 +2,10 @@
title: CAS
description: How to use RawKV's CAS API
menu:
"6.1":
parent: RawKV-v6.1
"dev":
parent: RawKV-dev
weight: 3
identifier: CAS-v6.1
identifier: CAS-dev
---
This document walks you through how to use RawKVs `CAS (Compare And Swap)` API.

View File

@ -2,10 +2,10 @@
title: Get, Put, and Delete
description: How to use RawKV's basic operations such as Get, Put, and Delete.
menu:
"6.1":
parent: RawKV-v6.1
"dev":
parent: RawKV-dev
weight: 1
identifier: Get, Put, and Delete-v6.1
identifier: Get, Put, and Delete-dev
---
This document walks you through how to use RawKV's basic operations such as `Get`, `Put`, and `Delete`.

View File

@ -2,10 +2,10 @@
title: RawKV
description: How to interact with TiKV using RawKV API.
menu:
"6.1":
parent: Develop-v6.1
"dev":
parent: Develop-dev
weight: 2
identifier: RawKV-v6.1
identifier: RawKV-dev
---
TiKV supports both transactional (TxnKV) API and non-transactional (RawKV) API. This chapter walks you through a few demonstrations about how to use RawKV API.

View File

@ -2,10 +2,10 @@
title: Scan
description: Learn how to use RawKV's Scan API.
menu:
"6.1":
parent: RawKV-v6.1
"dev":
parent: RawKV-dev
weight: 2
identifier: Scan-v6.1
identifier: Scan-dev
---
This document walks you through how to use RawKV's `Scan` API.

View File

@ -2,10 +2,10 @@
title: TTL
description: How to use TTL via RawKV API.
menu:
"6.1":
parent: RawKV-v6.1
"dev":
parent: RawKV-dev
weight: 4
identifier: TTL-v6.1
identifier: TTL-dev
---
TiKV provides the Time To Live (TTL) support via the RawKV API. This document provides two examples to show you how to set TTL via the RawKV API.

View File

@ -1,63 +1,162 @@
---
title: What's New
description: New features and improvements about TiKV 6.1
description: New features and improvements about TiKV since 6.2
menu:
"6.1":
"dev":
weight: 1
identifier: What's New-v6.1
identifier: What's New-dev
---
This document lists some significant features and improvements in **TiKV 6.1**.
This document lists some significant features and improvements since **TiKV 6.2**.
## Improve stability of TiKV flow control
## [TiKV 6.3.0]((https://docs.pingcap.com/tidb/v6.3/release-6.3.0))
TiKV introduces **a new flow control mechanism to replace the previous RocksDB write stall mechanism**. Compared with the write stall mechanism, this new mechanism **reduces the impact on the stability of foreground write**.
### Key new features and improvements
In specific, when the stress of RocksDB compaction accumulates, flow control is performed at the TiKV scheduler layer instead of the RocksDB layer, to avoid the following issues:
- TiKV supports encryption at rest using the SM4 algorithm.
- Raftstore is stuck, which is caused by RocksDB write stall.
### Security
- Raft election times out and, as a result, the node leader is transferred.
* TiKV supports the SM4 algorithm for encryption at rest [#13041](https://github.com/tikv/tikv/issues/13041) @[jiayang-zheng](https://github.com/jiayang-zheng)
**This new mechanism improves the flow control algorithm to mitigate QPS decrease when the write traffic is high**.
Add the [SM4 algorithm](/encryption-at-rest.md) for TiKV encryption at rest. When you configure encryption at rest, you can enable the SM4 encryption capacity by setting the value of the `data-encryption-method` configuration to `sm4-ctr`.
[Click here](https://docs.pingcap.com/tidb/stable/tikv-configuration-file#storageflow-control) to see user guide.
### Performance
## Improve Write latency
* TiKV supports log recycling [#214](https://github.com/tikv/raft-engine/issues/214) @[LykxSassinator](https://github.com/LykxSassinator)
**Reduce write latency by separating I/O operations from Raftstore thread pool** (disabled by default). For more information about tuning, see [Tune TiKV Thread Pool Performance](https://docs.pingcap.com/tidb/stable/tune-tikv-thread-performance).
TiKV supports [recycling log files](/tikv-configuration-file.md#enable-log-recycle-new-in-v630) in Raft Engine. This reduces the long tail latency in network disks during Raft log appending and improves performance under write workloads.
## Support Raft Engine
### Stability
Since v6.1, TiKV has used Raft Engine as the default storage engine for logs. Compared with RocksDB, **Raft Engine can reduce TiKV I/O write traffic by up to 40% and CPU usage by 10%, while improving foreground throughput by about 5% and reducing tail latency by 20% under certain loads**.
* Disabling Titan becomes GA @[tabokie](https://github.com/tabokie)
[Click here](https://docs.pingcap.com/tidb/stable/tikv-configuration-file#raft-engine) to see user guide.
You can [disable Titan](/storage-engine/titan-configuration.md#disable-titan) for online TiKV nodes.
## Support Continuous Profiling
### Compatibility changes
TiKV Dashboard introduces the Continuous Profiling feature, which is now generally available in v6.1. Continuous profiling is not enabled by default. **When enabled, the performance data of individual TiKV, and PD instances will be collected all the time, with negligible overhead**. With history performance data, technical experts can backtrack and pinpoint the root causes of issues like high memory consumption, even when the issues are difficult to reproduce. **In this way, the mean time to recovery (MTTR) can be reduced**.
### Configuration file parameters
[Click here](https://docs.pingcap.com/tidb/stable/continuous-profiling) to see user guide.
| Configuration file | Configuration | Change type | Description |
| --- | --- | --- | --- |
| TiKV | [`auto-adjust-pool-size`](/tikv-configuration-file.md#auto-adjust-pool-size-new-in-v630) | Newly added | Controls whether to automatically adjust the thread pool size. When it is enabled, the read performance of TiKV is optimized by automatically adjusting the UnifyReadPool thread pool size based on the current CPU usage.|
| TiKV | [`data-encryption-method`](/tikv-configuration-file.md#data-encryption-method) | Modified | Introduces a new value option `sm4-ctr`. When this configuration item is set to `sm4-ctr`, data is encrypted using SM4 before being stored. |
| TiKV | [`enable-log-recycle`](/tikv-configuration-file.md#enable-log-recycle-new-in-v630) | Newly added | Determines whether to recycle stale log files in Raft Engine. When it is enabled, logically purged log files will be reserved for recycling. This reduces the long tail latency on write workloads. This configuration item is only available when [format-version](/tikv-configuration-file.md#format-version-new-in-v630) is >= 2. |
| TiKV | [`format-version`](/tikv-configuration-file.md#format-version-new-in-v630) | Newly added | Specifies the version of log files in Raft Engine. The default log file version is `1` for TiKV earlier than v6.3.0. The log files can be read by TiKV >= v6.1.0. The default log file version is `2` for TiKV v6.3.0 and later. TiKV v6.3.0 and later can read the log files. |
| TiKV | [`log-backup.enable`](/tikv-configuration-file.md#enable-new-in-v620) | Modified | Since v6.3.0, the default value changes from `false` to `true`. |
| TiKV | [`log-backup.max-flush-interval`](/tikv-configuration-file.md#max-flush-interval-new-in-v620) | Modified | Since v6.3.0, the default value changes from `5min` to `3min`. |
| PD | [enable-diagnostic](/pd-configuration-file.md#enable-diagnostic-new-in-v630) | Newly added | Controls whether to enable the diagnostic feature. The default value is `false`. |
## Accelerate leader balancing after restarting TiKV nodes
### Improvements
After a restart of TiKV nodes, the unevenly scattered leaders must be redistributed for load balance. In large-scale clusters, leader balancing time is positively correlated with the number of Regions. For example, the leader balancing of 100K Regions can take 20-30 minutes, which is prone to performance issues and stability risks due to uneven load. **TiKV v6.1 provides a parameter to control the balancing concurrency and enlarges the default value to 4 times of the original, which greatly shortens the leader rebalancing time and accelerates business recovery after a restart of the TiKV nodes**.
- Support configuring the `unreachable_backoff` item to avoid Raftstore broadcasting too many messages after one peer becomes unreachable [#13054](https://github.com/tikv/tikv/issues/13054) @[5kbpers](https://github.com/5kbpers)
- Improve the fault tolerance of TSO service [#12794](https://github.com/tikv/tikv/issues/12794) @[pingyu](https://github.com/pingyu)
- Support dynamically modifying the number of sub-compaction operations performed concurrently in RocksDB (`rocksdb.max-sub-compactions`) [#13145](https://github.com/tikv/tikv/issues/13145) @[ethercflow](https://github.com/ethercflow)
- Optimize the performance of merging empty Regions [#12421](https://github.com/tikv/tikv/issues/12421) @[tabokie](https://github.com/tabokie)
- Support more regular expression functions [#13483](https://github.com/tikv/tikv/issues/13483) @[gengliqi](https://github.com/gengliqi)
- Support automatically adjusting the thread pool size based on the CPU usage [#13313](https://github.com/tikv/tikv/issues/13313) @[glorv](https://github.com/glorv)
[Click here](https://docs.pingcap.com/tidb/stable/pd-control#scheduler-config-balance-leader-scheduler) to see user guide.
### Bug fixes
+ TiKV
- Fix the issue that PD does not reconnect to TiKV after the Region heartbeat is interrupted [#12934](https://github.com/tikv/tikv/issues/12934) @[bufferflies](https://github.com/bufferflies)
- Fix the issue that Regions might be overlapped if Raftstore is busy [#13160](https://github.com/tikv/tikv/issues/13160) @[5kbpers](https://github.com/5kbpers)
- Fix the issue that the PD client might cause deadlocks [#13191](https://github.com/tikv/tikv/issues/13191) @[bufferflies](https://github.com/bufferflies) [#12933](https://github.com/tikv/tikv/issues/12933) @[BurtonQin](https://github.com/BurtonQin)
- Fix the issue that TiKV might panic when encryption is disabled [#13081](https://github.com/tikv/tikv/issues/13081) @[jiayang-zheng](https://github.com/jiayang-zheng)
- Fix the wrong expression of `Unified Read Pool CPU` in Dashboard [#13086](https://github.com/tikv/tikv/issues/13086) @[glorv](https://github.com/glorv)
- Fix the issue that the TiKV service is unavailable for several minutes when a TiKV instance is in an isolated network environment [#12966](https://github.com/tikv/tikv/issues/12966) @[cosven](https://github.com/cosven)
- Fix the issue that TiKV mistakenly reports a `PessimisticLockNotFound` error [#13425](https://github.com/tikv/tikv/issues/13425) @[sticnarf](https://github.com/sticnarf)
- Fix the issue that PITR might cause data loss in some situations [#13281](https://github.com/tikv/tikv/issues/13281) @[YuJuncen](https://github.com/YuJuncen)
- Fix the issue that causes checkpoint not advanced when there are some long pessimistic transactions [#13304](https://github.com/tikv/tikv/issues/13304) @[YuJuncen](https://github.com/YuJuncen)
- Fix the issue that TiKV does not distinguish the datetime type (`DATETIME`, `DATE`, `TIMESTAMP` and `TIME`) and `STRING` type in JSON [#13417](https://github.com/tikv/tikv/issues/13417) @[YangKeao](https://github.com/YangKeao)
- Fix incompatibility with MySQL of comparison between JSON bool and other JSON value [#13386](https://github.com/tikv/tikv/issues/13386) [#37481](https://github.com/pingcap/tidb/issues/37481) @[YangKeao](https://github.com/YangKeao)
+ PD
- Fix PD panics caused by the issue that gRPC handles errors inappropriately when `enable-forwarding` is enabled [#5373](https://github.com/tikv/pd/issues/5373) @[bufferflies](https://github.com/bufferflies)
- Fix the issue that unhealthy Region might cause PD panic [#5491](https://github.com/tikv/pd/issues/5491) @[nolouch](https://github.com/nolouch)
- Fix the issue that the TiFlash learner replica might not be created [#5401](https://github.com/tikv/pd/issues/5401) @[HunDunDM](https://github.com/HunDunDM)
## TiKV API V2 (experimental)
## [TiKV 6.2.0](https://docs.pingcap.com/tidb/v6.2/release-6.2.0)
Before v6.1, when TiKV is used as Raw Key Value storage, TiKV only provides basic Key Value read and write capability because it only stores the raw data passed in by the client.
### Key new feature and improvements
TiKV API V2 provides a new Raw Key Value storage format and access interface, including the following changes:
* TiKV supports [automatically tuning the CPU usage](https://docs.pingcap.com/tidb/v6.2/tikv-configuration-file#background-quota-limiter), thus ensuring stable and efficient database operations.
* [Cross-cluster RawKV replication](https://docs.pingcap.com/tidb/v6.2/tikv-configuration-file#api-version-new-in-v610) is now supported.
- **The data is stored in MVCC and the change timestamp of the data is recorded. This feature lays the foundation for implementing Change Data Capture and incremental backup and restore**.
- **Data is scoped according to different usage. Now you can run TiDB, Transactional KV, and RawKV applications within a single TiKV cluster**.
### Stability
{{< warning >}}
Due to significant changes in the underlying storage format, after enabling API V2, you cannot roll back a TiKV cluster to a version earlier than v6.1. Downgrading TiKV might result in data corruption.{{</ warning >}}
* TiKV supports automatically tuning the CPU usage (experimental)
[Click here](https://docs.pingcap.com/tidb/stable/tikv-configuration-file#api-version-new-in-v610) to see user guide.
Databases usually have background processes to perform internal operations. Statistical information can be collected to help identify performance problems, generate better execution plans, and improve the stability and performance of the database. However, how to more efficiently collect information, and how to balance the resource overhead of background operations and foreground operations without affecting the daily use have always been one of the headaches in the database industry.
Starting from v6.2.0, TiDB supports setting the CPU usage rate of background requests using the TiKV configuration file, thereby limiting the CPU usage ratio of background operations such as automatically collecting statistics in TiKV, and avoiding the resource preemption of user operations by background operations in extreme cases. This ensures that the operations of the database are stable and efficient.
At the same time, TiDB also supports automatically adjusting CPU usage. Then, TiKV will adaptively adjust the CPU resources occupied by background requests according to the CPU usage of the instance. This feature is disabled by default.
[User document](https://docs.pingcap.com/tidb/v6.2/tikv-configuration-file#background-quota-limiter) [#12503](https://github.com/tikv/tikv/issues/12503) @[BornChanger](https://github.com/BornChanger)
### Ease of use
* TiKV supports listing detailed configuration information using command-line flags
The TiKV configuration file can be used to manage TiKV instances. However, for instances that run for a long time and are managed by different users, it is difficult to know which configuration item has been modified and what the default value is. This might cause confusion when you upgrade the cluster or migrate data. Since TiDB v6.2.0, tikv-server supports a new command-line flag [`—-config-info`](https://docs.pingcap.com/tidb/v6.2/command-line-flags-for-tikv-configuration#--config-info-format) that lists default and current values of all TiKV configuration items, helps users to quickly verify the startup parameters of the TiKV process, and improves usability.
[User document](https://docs.pingcap.com/tidb/v6.2/command-line-flags-for-tikv-configuration#--config-info-format) [#12492](https://github.com/tikv/tikv/issues/12492) @[glorv](https://github.com/glorv)
### Compatibility changes
#### Configuration file parameters
| Configuration file | Configuration | Change type | Description |
| --- | --- | --- | --- |
| TiKV | [server.simplify-metrics](/tikv-configuration-file.md#simplify-metrics-new-in-v620) | Newly added | This configuration specifies whether to simplify the returned monitoring metrics. |
| TiKV | [quota.background-cpu-time](/tikv-configuration-file.md#background-cpu-time-new-in-v620) | Newly added | This configuration specifies the soft limit on the CPU resources used by TiKV background to process read and write requests. |
| TiKV | [quota.background-write-bandwidth](/tikv-configuration-file.md#background-write-bandwidth-new-in-v620) | Newly added | This configuration specifies the soft limit on the bandwidth with which background transactions write data (not effective currently). |
| TiKV | [quota.background-read-bandwidth](/tikv-configuration-file.md#background-read-bandwidth-new-in-v620) | Newly added | This configuration specifies the soft limit on the bandwidth with which background transactions and the Coprocessor read data (not effective currently). |
| TiKV | [quota.enable-auto-tune](/tikv-configuration-file.md#enable-auto-tune-new-in-v620) | Newly added | This configuration specifies whether to enable the auto-tuning of quota. If this configuration item is enabled, TiKV dynamically adjusts the quota for the background requests based on the load of TiKV instances. |
| TiKV | rocksdb.enable-pipelined-commit | Deleted | This configuration is no longer effective. |
| TiKV | gc-merge-rewrite | Deleted | This configuration is no longer effective. |
| TiKV | [log-backup.enable](/tikv-configuration-file.md#enable-new-in-v620) | Newly added | This configuration controls whether to enable log backup on TiKV. |
| TiKV | [log-backup.file-size-limit](/tikv-configuration-file.md#file-size-limit-new-in-v620) | Newly added | This configuration specifies the size limit on log backup data. Once this limit is reached, data is automatically flushed to external storage. |
| TiKV | [log-backup.initial-scan-pending-memory-quota](/tikv-configuration-file.md#initial-scan-pending-memory-quota-new-in-v620) | Newly added | This configuration specifies the quota of cache used for storing incremental scan data. |
| TiKV | [log-backup.max-flush-interval](/tikv-configuration-file.md#max-flush-interval-new-in-v620) | Newly added | This configuration specifies the maximum interval for writing backup data to external storage in log backup. |
| TiKV | [log-backup.initial-scan-rate-limit](/tikv-configuration-file.md#initial-scan-rate-limit-new-in-v620) | Newly added | This configuration specifies the rate limit on throughput in an incremental data scan in log backup. |
| TiKV | [log-backup.num-threads](/tikv-configuration-file.md#num-threads-new-in-v620) | Newly added | This configuration specifies the number of threads used in log backup. |
| TiKV | [log-backup.temp-path](/tikv-configuration-file.md#temp-path-new-in-v620) | Newly added | This configuration specifies temporary path to which log files are written before being flushed to external storage. |
| PD | replication-mode.dr-auto-sync.wait-async-timeout | Deleted | This configuration does not take effect and is deleted. |
| PD | replication-mode.dr-auto-sync.wait-sync-timeout | Deleted | This configuration does not take effect and is deleted. |
#### Others
- TiKV adds a configuration item `split.region-cpu-overload-threshold-ratio` that supports [online configuration](/dynamic-config.md#modify-tikv-configuration-online).
### Improvements
- Support compressing the metrics response using gzip to reduce the HTTP body size [#12355](https://github.com/tikv/tikv/issues/12355) @[glorv](https://github.com/glorv)
- Improve the readability of the TiKV panel in Grafana Dashboard [#12007](https://github.com/tikv/tikv/issues/12007) @[kevin-xianliu](https://github.com/kevin-xianliu)
- Optimize the commit pipeline performance of the Apply operator [#12898](https://github.com/tikv/tikv/issues/12898) @[ethercflow](https://github.com/ethercflow)
- Support dynamically modifying the number of sub-compaction operations performed concurrently in RocksDB (`rocksdb.max-sub-compactions`) [#13145](https://github.com/tikv/tikv/issues/13145) @[ethercflow](https://github.com/ethercflow)
### Bug fixes
+ TiKV
- Avoid reporting `WriteConflict` errors in pessimistic transactions [#11612](https://github.com/tikv/tikv/issues/11612) @[sticnarf](https://github.com/sticnarf)
- Fix the possible duplicate commit records in pessimistic transactions when async commit is enabled [#12615](https://github.com/tikv/tikv/issues/12615) @[sticnarf](https://github.com/sticnarf)
- Fix the issue that TiKV panics when modifying the `storage.api-version` from `1` to `2` [#12600](https://github.com/tikv/tikv/issues/12600) @[pingyu](https://github.com/pingyu)
- Fix the issue of inconsistent Region size configuration between TiKV and PD [#12518](https://github.com/tikv/tikv/issues/12518) @[5kbpers](https://github.com/5kbpers)
- Fix the issue that TiKV keeps reconnecting PD clients [#12506](https://github.com/tikv/tikv/issues/12506), [#12827](https://github.com/tikv/tikv/issues/12827) @[Connor1996](https://github.com/Connor1996)
- Fix the issue that TiKV panics when performing type conversion for an empty string [#12673](https://github.com/tikv/tikv/issues/12673) @[wshwsh12](https://github.com/wshwsh12)
- Fix the issue of time parsing error that occurs when the `DATETIME` values contain a fraction and `Z` [#12739](https://github.com/tikv/tikv/issues/12739) @[gengliqi](https://github.com/gengliqi)
- Fix the issue that the perf context written by the Apply operator to TiKV RocksDB is coarse-grained [#11044](https://github.com/tikv/tikv/issues/11044) @[LykxSassinator](https://github.com/LykxSassinator)
- Fix the issue that TiKV fails to start when the configuration of [backup](/tikv-configuration-file.md#backup)/[import](/tikv-configuration-file.md#import)/[cdc](/tikv-configuration-file.md#cdc) is invalid [#12771](https://github.com/tikv/tikv/issues/12771) @[3pointer](https://github.com/3pointer)
- Fix the panic issue that might occur when a peer is being split and destroyed at the same time [#12825](https://github.com/tikv/tikv/issues/12825) @[BusyJay](https://github.com/BusyJay)
- Fix the panic issue that might occur when the source peer catches up logs by snapshot in the Region merge process [#12663](https://github.com/tikv/tikv/issues/12663) @[BusyJay](https://github.com/BusyJay)
- Fix the panic issue caused by analyzing statistics when `max_sample_size` is set to `0` [#11192](https://github.com/tikv/tikv/issues/11192) @[LykxSassinator](https://github.com/LykxSassinator)
- Fix the issue that encryption keys are not cleaned up when Raft Engine is enabled [#12890](https://github.com/tikv/tikv/issues/12890) @[tabokie](https://github.com/tabokie)
- Fix the issue that the `get_valid_int_prefix` function is incompatible with TiDB. For example, the `FLOAT` type was incorrectly converted to `INT` [#13045](https://github.com/tikv/tikv/issues/13045) @[guo-shaoge](https://github.com/guo-shaoge)
- Fix the issue that the Commit Log Duration of a new Region is too high, which causes QPS to drop [#13077](https://github.com/tikv/tikv/issues/13077) @[Connor1996](https://github.com/Connor1996)
- Fix the issue that PD does not reconnect to TiKV after the Region heartbeat is interrupted [#12934](https://github.com/tikv/tikv/issues/12934) @[bufferflies](https://github.com/bufferflies)

View File

@ -2,10 +2,10 @@
title: CLI
description: Command-line interface tools used to administrate TiKV clusters
menu:
"6.1":
parent: Reference-v6.1
"dev":
parent: Reference-dev
weight: 4
identifier: CLI-v6.1
identifier: CLI-dev
---
You can use the following command-line interface tools to administrate TiKV clusters:

View File

@ -2,10 +2,10 @@
title: pd-ctl
description: Use PD Control to obtain the state information of a cluster and tune a cluster.
menu:
"6.1":
parent: CLI-v6.1
"dev":
parent: CLI-dev
weight: 2
identifier: pd-ctl-v6.1
identifier: pd-ctl-dev
---
As a command-line tool of PD, pd-ctl (PD Control) obtains the state information of the cluster and tunes the cluster.

View File

@ -2,10 +2,10 @@
title: pd-recover
description: Use PD Recover to recover a PD cluster which cannot start or provide services normally.
menu:
"6.1":
parent: CLI-v6.1
"dev":
parent: CLI-dev
weight: 3
identifier: pd-recover-v6.1
identifier: pd-recover-dev
---
PD Recover is a disaster recovery tool of PD, used to recover the PD cluster from disaster, e.g.

View File

@ -2,10 +2,10 @@
title: tikv-ctl
description: Use TiKV Control to manage a TiKV cluster.
menu:
"6.1":
parent: CLI-v6.1
"dev":
parent: CLI-dev
weight: 1
identifier: tikv-ctl-v6.1
identifier: tikv-ctl-dev
---
TiKV Control (`tikv-ctl`) is a command-line tool of TiKV, used to manage the cluster.

View File

@ -2,10 +2,10 @@
title: TiUP
description: TiUP documentation
menu:
"6.1":
parent: Reference-v6.1
"dev":
parent: Reference-dev
weight: 3
identifier: TiUP-v6.1
identifier: TiUP-dev
---
Starting with TiKV 4.0, TiUP, as the package manager, makes it easier to manage different cluster components in the TiKV ecosystem.

View File

@ -2,10 +2,10 @@
title: Architecture
description: How TiKV works and how it is built.
menu:
"6.1":
parent: Reference-v6.1
"dev":
parent: Reference-dev
weight: 1
identifier: Architecture-v6.1
identifier: Architecture-dev
---
This chapter introduces how TiKV works and how it is built:

View File

@ -2,10 +2,10 @@
title: Overview
description: Core concepts and architecture behind TiKV.
menu:
"6.1":
parent: Architecture-v6.1
"dev":
parent: Architecture-dev
weight: 1
identifier: Overview-v6.1
identifier: Overview-dev
---
This page provides an overview of the TiKV architecture.

View File

@ -2,10 +2,10 @@
title: Scheduling
description: Introduces the PD scheduling component in a TiKV cluster.
menu:
"6.1":
parent: Architecture-v6.1
"dev":
parent: Architecture-dev
weight: 4
identifier: Scheduling-v6.1
identifier: Scheduling-dev
---
The Placement Driver ([PD](https://github.com/tikv/pd)) works as the manager in a TiKV cluster, and it also schedules Regions in the cluster. This article introduces the design and core concepts of the PD scheduling component.

View File

@ -2,10 +2,10 @@
title: Storage
description: Understand the storage layer of a TiKV cluster.
menu:
"6.1":
parent: Architecture-v6.1
"dev":
parent: Architecture-dev
weight: 3
identifier: Storage-v6.1
identifier: Storage-dev
---
This document introduces some design ideas and key concepts of TiKV storage.

View File

@ -2,10 +2,10 @@
title: Terminologies
description: Explain TiKV and PD terminologies.
menu:
"6.1":
parent: Architecture-v6.1
"dev":
parent: Architecture-dev
weight: 4
identifier: Terminologies-v6.1
identifier: Terminologies-dev
---
This document explains some important terminologies of TiKV and PD.

View File

@ -2,10 +2,10 @@
title: FAQs
description: Frequently asked questions about TiKV
menu:
"6.1":
parent: Reference-v6.1
"dev":
parent: Reference-dev
weight: 10
identifier: FAQs-v6.1
identifier: FAQs-dev
---
## What is TiKV?

View File

@ -2,9 +2,9 @@
title: Reference
description: Learn about technical details of TiKV
menu:
"6.1":
"dev":
weight: 3
identifier: Reference-v6.1
identifier: Reference-dev
---
This chapter describes some technical details of TiKV:

View File

@ -2,10 +2,10 @@
title: Query Layers
description: Extend TiKV using stateless query layers
menu:
"6.1":
parent: Reference-v6.1
"dev":
parent: Reference-dev
weight: 2
identifier: Query Layers-v6.1
identifier: Query Layers-dev
---
TiKV works as storage engines for the following projects: