From af257196dc9a990d662db48b3fe628198bacf5a2 Mon Sep 17 00:00:00 2001 From: Ziqian Qin Date: Mon, 18 May 2026 18:42:57 +0800 Subject: [PATCH] cloud: document Essential and Premium transaction limits --- follower-read.md | 8 ++++++++ pipelined-dml.md | 8 ++++++++ system-variables.md | 28 ++++++++++++++++------------ tidb-configuration-file.md | 2 +- 4 files changed, 33 insertions(+), 13 deletions(-) diff --git a/follower-read.md b/follower-read.md index 0f47fbced6fe7..32b151fa9b21f 100644 --- a/follower-read.md +++ b/follower-read.md @@ -46,6 +46,14 @@ To enable TiDB's Follower Read feature, modify the value of the `tidb_replica_re set [session | global] tidb_replica_read = ''; ``` + + +> **Note:** +> +> For [{{{ .essential }}}](https://docs.pingcap.com/tidbcloud/select-cluster-tier#essential) and [{{{ .premium }}}](https://docs.pingcap.com/tidbcloud/select-cluster-tier/#premium), `tidb_replica_read` is read-only and fixed to `leader`. Other read modes are not supported. + + + Scope: SESSION | GLOBAL Default: leader diff --git a/pipelined-dml.md b/pipelined-dml.md index 858cae7b27ae9..1833e17715d9f 100644 --- a/pipelined-dml.md +++ b/pipelined-dml.md @@ -46,6 +46,14 @@ Currently, Pipelined DML has the following limitations: - When [foreign key constraints](/foreign-key.md) are enabled (`foreign_key_checks = ON`), target tables must not include foreign key relationships. - When executing `INSERT IGNORE ... ON DUPLICATE KEY UPDATE` statements, conflicting updates might result in `Duplicate entry` errors. + + +> **Note:** +> +> Pipelined DML is not supported for [{{{ .essential }}}](https://docs.pingcap.com/tidbcloud/select-cluster-tier#essential) and [{{{ .premium }}}](https://docs.pingcap.com/tidbcloud/select-cluster-tier/#premium). You cannot enable Pipelined DML by setting [`tidb_dml_type`](/system-variables.md#tidb_dml_type-new-in-v800) to `"bulk"` or by using the [`SET_VAR`](/optimizer-hints.md#set_varvar_namevar_value) hint. + + + ## Usage This section describes how to enable Pipelined DML and verify whether it takes effect. diff --git a/system-variables.md b/system-variables.md index 3df4ec239a6af..4a5d4a1491d9d 100644 --- a/system-variables.md +++ b/system-variables.md @@ -1934,9 +1934,21 @@ Assume that you have a cluster with 4 TiDB nodes and multiple TiKV nodes. In thi > > The bulk DML execution mode (`tidb_dml_type = "bulk"`) is an experimental feature. It is not recommended that you use it in the production environment. This feature might be changed or removed without prior notice. If you find a bug, you can report an [issue](https://github.com/pingcap/tidb/issues). In the current version, when TiDB performs large transactions using the bulk DML mode, it might affect the memory usage and execution efficiency of TiCDC, TiFlash, and the resolved-ts module of TiKV, and might cause OOM issues. Additionally, BR might be blocked and fail to process when encountering locks. Therefore, it is not recommended to use this mode when these components or features are enabled. + + > **Note:** > -> This variable is read-only for [{{{ .starter }}}](https://docs.pingcap.com/tidbcloud/select-cluster-tier#starter) and [{{{ .essential }}}](https://docs.pingcap.com/tidbcloud/select-cluster-tier#essential). +> This variable is read-only for [{{{ .starter }}}](https://docs.pingcap.com/tidbcloud/select-cluster-tier#starter). + + + + + +> **Note:** +> +> This variable is read-only for [{{{ .essential }}}](https://docs.pingcap.com/tidbcloud/select-cluster-tier#essential) and [{{{ .premium }}}](https://docs.pingcap.com/tidbcloud/select-cluster-tier/#premium). The value is fixed to `"standard"`, so Pipelined DML cannot be enabled by setting this variable to `"bulk"`. + + - Scope: SESSION - Applies to hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value): Yes @@ -5598,19 +5610,11 @@ SHOW WARNINGS; ### tidb_replica_read New in v4.0 - - -> **Note:** -> -> This variable is read-only for [{{{ .starter }}}](https://docs.pingcap.com/tidbcloud/select-cluster-tier#starter) and [{{{ .essential }}}](https://docs.pingcap.com/tidbcloud/select-cluster-tier#essential). - - - - + > **Note:** > -> This variable is read-only for [{{{ .premium }}}](https://docs.pingcap.com/tidbcloud/select-cluster-tier/#premium). +> This variable is read-only for [{{{ .starter }}}](https://docs.pingcap.com/tidbcloud/select-cluster-tier#starter), [{{{ .essential }}}](https://docs.pingcap.com/tidbcloud/select-cluster-tier#essential), and [{{{ .premium }}}](https://docs.pingcap.com/tidbcloud/select-cluster-tier/#premium). For [{{{ .essential }}}](https://docs.pingcap.com/tidbcloud/select-cluster-tier#essential) and [{{{ .premium }}}](https://docs.pingcap.com/tidbcloud/select-cluster-tier/#premium), the value is fixed to `leader`, and other read modes are not supported. @@ -6625,7 +6629,7 @@ For details, see [Identify Slow Queries](/identify-slow-queries.md). - Persists to cluster: Yes - Applies to hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value): No - Type: Enumeration -- Default value: `FAST` +- Default value: `STRICT` for [{{{ .essential }}}](https://docs.pingcap.com/tidbcloud/select-cluster-tier#essential) and [{{{ .premium }}}](https://docs.pingcap.com/tidbcloud/select-cluster-tier/#premium); `FAST` for other deployment options - Possible values: `OFF`, `FAST`, `STRICT` - This variable is used to control the assertion level. Assertion is a consistency check between data and indexes, which checks whether a key being written exists in the transaction commit process. For more information, see [Troubleshoot Inconsistency Between Data and Indexes](/troubleshoot-data-inconsistency-errors.md). diff --git a/tidb-configuration-file.md b/tidb-configuration-file.md index 1ed50cd4abb6d..32cdf81857e06 100644 --- a/tidb-configuration-file.md +++ b/tidb-configuration-file.md @@ -882,7 +882,7 @@ For pessimistic transaction usage, refer to [TiDB Pessimistic Transaction Mode]( + For scenarios with conflicts, after enabling this configuration, TiDB includes auto-commit transactions into the global lock-waiting management, which avoids deadlocks and mitigates the latency spike brought by deadlock-causing conflicts. + For scenarios with no conflicts, if there are many auto-commit transactions (the specific number is determined by the real scenarios. For example, the number of auto-commit transactions accounts for more than half of the total number of applications), and a single transaction operates a large data volume, enabling this configuration causes performance regression. For example, the auto-commit `INSERT INTO SELECT` statement. + When the session-level system variable [`tidb_dml_type`](/system-variables.md#tidb_dml_type-new-in-v800) is set to `"bulk"`, the effect of this configuration in the session is equivalent to setting it to `false`. -+ Default value: `false` ++ Default value: `true` for [{{{ .essential }}}](https://docs.pingcap.com/tidbcloud/select-cluster-tier#essential) and [{{{ .premium }}}](https://docs.pingcap.com/tidbcloud/select-cluster-tier/#premium); `false` for other deployment options ### constraint-check-in-place-pessimistic New in v6.4.0