From 537f5d05930e0a0437a79f833b24dd6c7975fac7 Mon Sep 17 00:00:00 2001 From: cfzjywxk Date: Mon, 30 Nov 2020 16:55:39 +0800 Subject: [PATCH 1/3] Update system-variables.md add documentation for tidb_enable_amend_pessimistic_txn. --- system-variables.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/system-variables.md b/system-variables.md index df0033c2b553..d938fbc60e38 100644 --- a/system-variables.md +++ b/system-variables.md @@ -394,6 +394,18 @@ SET GLOBAL tidb_distsql_scan_concurrency = 10; - 默认值: 1 - 这个变量用于动态地控制 TiDB 遥测功能是否开启。设置为 `0` 可以关闭 TiDB 遥测功能。当所有 TiDB 实例都设置 [`enable-telemetry`](/tidb-configuration-file.md#enable-telemetry-从-v402-版本开始引入) 为 `false` 时将忽略该系统变量并总是关闭 TiDB 遥测功能。参阅[遥测](/telemetry.md)了解该功能详情。 +### `tidb_enable_amend_pessimistic_txn` 从 v4.0.7 版本开始引入 + +- 作用域:SESSION | GLOBAL +- 默认值: 0 +- 这个变量用于控制是否开启 `AMEND TRANSACTION` 特性。开启该特性之后,在[悲观事务模式](/pessimistic-transaction.md)下,事务两阶段提交之前,如果该事务相关的表存在并发 DDL 操作和 SCHEMA VERSION 变更,TiDB 会尝试对于该事务进行 amend 操作修正该事务提交内容,使其和最新有效的 SCHEMA VERSION 保持一致,进而提交该事务而不返回 `Information schema is changed` 报错。该特性对于如下并发 DDL 变更生效: + + - add/drop column 类型的 DDL 操作。 + - modify/change column 类型的 DDL 操作。 + - add/drop index 类型的 DDL 操作,且操作的索引列不是在事务开启之后新创建。 + +目前该特性可能造成事务语义的变化,且与 TiDB Binlog 存在部分兼容的场景,可以参考[事务语义行为区别](https://github.com/pingcap/tidb/issues/21069)和[与 Binlog 兼容问题汇总](https://github.com/pingcap/tidb/issues/20996)了解更多关于该特性的使用注意事项。 + ### `tidb_enable_vectorized_expression` 从 v4.0 版本开始引入 - 作用域:SESSION | GLOBAL From 8df077f6098be070c0742716bea368c172baa265 Mon Sep 17 00:00:00 2001 From: cfzjywxk Date: Wed, 2 Dec 2020 14:36:41 +0800 Subject: [PATCH 2/3] Update system-variables.md --- system-variables.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/system-variables.md b/system-variables.md index d938fbc60e38..c20886107d14 100644 --- a/system-variables.md +++ b/system-variables.md @@ -309,6 +309,18 @@ SET GLOBAL tidb_distsql_scan_concurrency = 10; - 这个变量的值大于 `0` 时,TiDB 会将 `INSERT` 或 `LOAD DATA` 等语句在更小的事务中批量提交。这样可减少内存使用,确保大批量修改时事务大小不会达到 `txn-total-size-limit` 限制。 - 只有变量值为 `0` 时才符合 ACID 要求。否则无法保证 TiDB 的原子性和隔离性要求。 +### `tidb_enable_amend_pessimistic_txn` 从 v4.0.7 版本开始引入 + +- 作用域:SESSION | GLOBAL +- 默认值: 0 +- 这个变量用于控制是否开启 `AMEND TRANSACTION` 特性。开启该特性之后,在[悲观事务模式](/pessimistic-transaction.md)下,事务两阶段提交之前,如果该事务相关的表存在并发 DDL 操作和 SCHEMA VERSION 变更,TiDB 会尝试对于该事务进行 amend 操作修正该事务的提交内容,使其和最新有效的 SCHEMA VERSION 保持一致,进而成功提交该事务而不返回 `Information schema is changed` 报错。该特性对于如下并发 DDL 变更生效: + + - add/drop column 类型的 DDL 操作。 + - modify/change column 类型的 DDL 操作,只对增大字段长度生效。 + - add/drop index 类型的 DDL 操作,且操作的索引列不是在事务开启之后新创建。 + +目前该特性可能造成事务语义的变化,且与 TiDB Binlog 存在部分兼容的场景,可以参考[事务语义行为区别](https://github.com/pingcap/tidb/issues/21069)和[与 Binlog 兼容问题汇总](https://github.com/pingcap/tidb/issues/20996)了解更多关于该特性的使用注意事项。 + ### `tidb_enable_cascades_planner` - 作用域:SESSION | GLOBAL @@ -394,18 +406,6 @@ SET GLOBAL tidb_distsql_scan_concurrency = 10; - 默认值: 1 - 这个变量用于动态地控制 TiDB 遥测功能是否开启。设置为 `0` 可以关闭 TiDB 遥测功能。当所有 TiDB 实例都设置 [`enable-telemetry`](/tidb-configuration-file.md#enable-telemetry-从-v402-版本开始引入) 为 `false` 时将忽略该系统变量并总是关闭 TiDB 遥测功能。参阅[遥测](/telemetry.md)了解该功能详情。 -### `tidb_enable_amend_pessimistic_txn` 从 v4.0.7 版本开始引入 - -- 作用域:SESSION | GLOBAL -- 默认值: 0 -- 这个变量用于控制是否开启 `AMEND TRANSACTION` 特性。开启该特性之后,在[悲观事务模式](/pessimistic-transaction.md)下,事务两阶段提交之前,如果该事务相关的表存在并发 DDL 操作和 SCHEMA VERSION 变更,TiDB 会尝试对于该事务进行 amend 操作修正该事务提交内容,使其和最新有效的 SCHEMA VERSION 保持一致,进而提交该事务而不返回 `Information schema is changed` 报错。该特性对于如下并发 DDL 变更生效: - - - add/drop column 类型的 DDL 操作。 - - modify/change column 类型的 DDL 操作。 - - add/drop index 类型的 DDL 操作,且操作的索引列不是在事务开启之后新创建。 - -目前该特性可能造成事务语义的变化,且与 TiDB Binlog 存在部分兼容的场景,可以参考[事务语义行为区别](https://github.com/pingcap/tidb/issues/21069)和[与 Binlog 兼容问题汇总](https://github.com/pingcap/tidb/issues/20996)了解更多关于该特性的使用注意事项。 - ### `tidb_enable_vectorized_expression` 从 v4.0 版本开始引入 - 作用域:SESSION | GLOBAL From 6682251480a6337caa78b34a9e5373394861ea32 Mon Sep 17 00:00:00 2001 From: cfzjywxk Date: Thu, 10 Dec 2020 17:55:21 +0800 Subject: [PATCH 3/3] Update system-variables.md Address comments --- system-variables.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/system-variables.md b/system-variables.md index 5f7e81cd7ad0..c5f49f70590b 100644 --- a/system-variables.md +++ b/system-variables.md @@ -313,13 +313,13 @@ SET GLOBAL tidb_distsql_scan_concurrency = 10; - 作用域:SESSION | GLOBAL - 默认值: 0 -- 这个变量用于控制是否开启 `AMEND TRANSACTION` 特性。开启该特性之后,在[悲观事务模式](/pessimistic-transaction.md)下,事务两阶段提交之前,如果该事务相关的表存在并发 DDL 操作和 SCHEMA VERSION 变更,TiDB 会尝试对于该事务进行 amend 操作修正该事务的提交内容,使其和最新有效的 SCHEMA VERSION 保持一致,进而成功提交该事务而不返回 `Information schema is changed` 报错。该特性对于如下并发 DDL 变更生效: +- 这个变量用于控制是否开启 `AMEND TRANSACTION` 特性。在[悲观事务模式](/pessimistic-transaction.md)下开启该特性后,如果该事务相关的表存在并发 DDL 操作和 SCHEMA VERSION 变更,TiDB 会尝试对该事务进行 amend 操作,修正该事务的提交内容,使其和最新的有效 SCHEMA VERSION 保持一致,从而成功提交该事务而不返回 `Information schema is changed` 报错。该特性对以下并发 DDL 变更生效: - - add/drop column 类型的 DDL 操作。 - - modify/change column 类型的 DDL 操作,只对增大字段长度生效。 - - add/drop index 类型的 DDL 操作,且操作的索引列不是在事务开启之后新创建。 + - `ADD COLUMN` 或 `DROP COLUMN` 类型的 DDL 操作。 + - `MODIFY COLUMN` 或 `CHANGE COLUMN` 类型的 DDL 操作,且只对增大字段长度的操作生效。 + - `ADD INDEX` 或 `DROP INDEX` 类型的 DDL 操作,且操作的索引列须在事务开启之前创建。 -目前该特性可能造成事务语义的变化,且与 TiDB Binlog 存在部分兼容的场景,可以参考[事务语义行为区别](https://github.com/pingcap/tidb/issues/21069)和[与 Binlog 兼容问题汇总](https://github.com/pingcap/tidb/issues/20996)了解更多关于该特性的使用注意事项。 +目前该特性可能造成事务语义的变化,且与 TiDB Binlog 存在部分不兼容的场景,可以参考[事务语义行为区别](https://github.com/pingcap/tidb/issues/21069)和[与 TiDB Binlog 兼容问题汇总](https://github.com/pingcap/tidb/issues/20996)了解更多关于该特性的使用注意事项。 ### `tidb_enable_cascades_planner` @@ -984,4 +984,4 @@ explain select * from t where age=5; - 作用域:SESSION - 默认值:0.8 - TiDB 内存使用占总内存的比例超过一定阈值时会报警。该功能的详细介绍和使用方法可以参考 [`memory-usage-alarm-ratio`](/tidb-configuration-file.md#memory-usage-alarm-ratio)。 -- 该变量的初始值可通过 [`memory-usage-alarm-ratio`](/tidb-configuration-file.md#memory-usage-alarm-ratio) 进行配置。 \ No newline at end of file +- 该变量的初始值可通过 [`memory-usage-alarm-ratio`](/tidb-configuration-file.md#memory-usage-alarm-ratio) 进行配置。