Skip to content

Commit

Permalink
*: remove related document of amend transaction (pingcap#12623)
Browse files Browse the repository at this point in the history
  • Loading branch information
wjhuang2016 authored Feb 10, 2023
1 parent d06b8c9 commit d0d15e6
Show file tree
Hide file tree
Showing 6 changed files with 6 additions and 30 deletions.
2 changes: 1 addition & 1 deletion latency-breakdown.md
Original file line number Diff line number Diff line change
Expand Up @@ -468,7 +468,7 @@ Diagram(
Sequence(
Comment("2pc"),
NonTerminal("Get commit-ts"),
NonTerminal("Check schema, try to amend if needed"),
NonTerminal("Check schema"),
NonTerminal("Commit PK mutation"),
),
Sequence(
Expand Down
1 change: 0 additions & 1 deletion releases/release-5.0.0-rc.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,6 @@ DBA 通过 `ALTER INDEX` 语句来修改某个索引的可见性。修改后优

悲观事务模式下,如果事务所涉及到的表存在并发 DDL 操作和 `SCHEMA VERSION` 变更,系统会自动将该事务的 `SCHEMA VERSION` 更新到最新版本,确保事务会提交成功,避免事务因 DDL 操作而中断。事务中断时客户端会收到 `Information schema is changed` 的错误信息。

+ [用户文档](/system-variables.md#tidb_enable_amend_pessimistic_txn-从-v407-版本开始引入)
+ 相关 issue:[#18005](https://github.com/pingcap/tidb/issues/18005)

## 字符集和排序规则
Expand Down
6 changes: 3 additions & 3 deletions releases/release-5.0.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ TiDB 版本:5.0.0
+ 临时表的语法兼容性受到 [`tidb_enable_noop_functions`](/system-variables.md#tidb_enable_noop_functions-从-v40-版本开始引入) 系统变量的控制:当 `tidb_enable_noop_functions``OFF` 时,`CREATE TEMPORARY TABLE` 语法将会报错。
+ 新增 [`tidb_gc_concurrency`](/system-variables.md#tidb_gc_concurrency-从-v50-版本开始引入)[`tidb_gc_enable`](/system-variables.md#tidb_gc_enable-从-v50-版本开始引入)[`tidb_gc_life_time`](/system-variables.md#tidb_gc_life_time-从-v50-版本开始引入)[`tidb_gc_run_interval`](/system-variables.md#tidb_gc_run_interval-从-v50-版本开始引入)[`tidb_gc_scan_lock_mode`](/system-variables.md#tidb_gc_scan_lock_mode-从-v50-版本开始引入) 系统变量,用于直接通过系统变量调整垃圾回收相关参数。
+ 系统变量 [`enable-joint-consensus`](/pd-configuration-file.md#enable-joint-consensus-从-v50-版本开始引入) 默认值由 `false` 改成 `true`,默认开启 Joint consensus 功能。
+ 系统变量 [`tidb_enable_amend_pessimistic_txn`](/system-variables.md#tidb_enable_amend_pessimistic_txn-从-v407-版本开始引入) 的值由数字 0 或者 1 变更成 ON 或者 OFF。
+ 系统变量 `tidb_enable_amend_pessimistic_txn` 的值由数字 0 或者 1 变更成 ON 或者 OFF。
+ 系统变量 [`tidb_enable_clustered_index`](/system-variables.md#tidb_enable_clustered_index-从-v50-版本开始引入) 默认值由 OFF 改成 INT_ONLY 且含义有如下变化:
+ ON:开启聚簇索引,支持添加或者删除非聚簇索引。
+ OFF:关闭聚簇索引,支持添加或者删除非聚簇索引。
Expand Down Expand Up @@ -106,11 +106,11 @@ DBA 通过 `ALTER INDEX` 语句可以修改某个索引的可见性。修改后

### 事务

[用户文档](/system-variables.md#tidb_enable_amend_pessimistic_txn-从-v407-版本开始引入)[#18005](https://github.com/pingcap/tidb/issues/18005)
[#18005](https://github.com/pingcap/tidb/issues/18005)

悲观事务模式下,如果事务所涉及到的表存在并发的 DDL 操作或者 SCHEMA VERSION 变更,系统自动将该事务的 SCHEMA VERSION 更新到最新版本,以此确保事务会提交成功,避免事务因并发的 DDL 操作或者 SCHEMA VERSION 变更而中断时客户端收到 `Information schema is changed` 的错误信息。

系统默认关闭此功能,你可以通过修改 [`tidb_enable_amend_pessimistic_txn`](/system-variables.md#tidb_enable_amend_pessimistic_txn-从-v407-版本开始引入) 系统变量开启此功能,此功能从 4.0.7 版本开始提供,5.0 版本主要修复了以下问题:
系统默认关闭此功能,你可以通过修改 `tidb_enable_amend_pessimistic_txn` 系统变量开启此功能,此功能从 4.0.7 版本开始提供,5.0 版本主要修复了以下问题:

+ TiDB Binlog 在执行 Add column 操作的兼容性问题
+ 与唯一索引一起使用时存在的数据不一致性的问题
Expand Down
4 changes: 2 additions & 2 deletions releases/release-6.5.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -300,7 +300,7 @@ TiDB 6.5.0 为长期支持版本 (Long-Term Support Release, LTS)。

| 变量名 | 修改类型 | 描述 |
|--------|------------------------------|------|
|[`tidb_enable_amend_pessimistic_txn`](/system-variables.md#tidb_enable_amend_pessimistic_txn-从-v407-版本开始引入)| 废弃 | 从 v6.5.0 起,该变量被废弃,TiDB 会默认使用[元数据锁](/metadata-lock.md)机制解决 `Information schema is changed` 报错的问题。|
|`tidb_enable_amend_pessimistic_txn` | 废弃 | 从 v6.5.0 起,该变量被废弃,TiDB 会默认使用[元数据锁](/metadata-lock.md)机制解决 `Information schema is changed` 报错的问题。|
| [`tidb_enable_outer_join_reorder`](/system-variables.md#tidb_enable_outer_join_reorder-从-v610-版本开始引入) | 修改 | 经进一步的测试后,该变量默认值从 `OFF` 修改为 `ON`,表示默认启用 Outer Join 的 [Join Reorder 算法](/join-reorder.md)。|
| [`tidb_cost_model_version`](/system-variables.md#tidb_cost_model_version-从-v620-版本开始引入) | 修改 | 经进一步的测试后,该变量默认值从 `1` 修改为 `2`,表示默认使用 Cost Model Version 2 进行索引选择和算子选择。 |
| [`tidb_enable_gc_aware_memory_track`](/system-variables.md#tidb_enable_gc_aware_memory_track) | 修改 | 该变量默认值由 `ON` 修改为 `OFF`。由于在测试中发现 GC-Aware memory track 不准确,导致 Analyze 追踪到的内存过大的情况,因此先关闭内存追踪。在 Golang 1.19 下,GC-Aware memory track 追踪的内存对整体内存的影响变小。|
Expand Down Expand Up @@ -361,7 +361,7 @@ TiDB 6.5.0 为长期支持版本 (Long-Term Support Release, LTS)。

## 废弃功能

v6.5.0 起,废弃 v4.0.7 版本引入的 [`AMEND TRANSACTION`](/system-variables.md#tidb_enable_amend_pessimistic_txn-从-v407-版本开始引入) 机制,并使用[元数据锁](/metadata-lock.md)替代。
v6.5.0 起,废弃 v4.0.7 版本引入的 `AMEND TRANSACTION` 机制,并使用[元数据锁](/metadata-lock.md)替代。

## 改进提升

Expand Down
19 changes: 0 additions & 19 deletions system-variables.md
Original file line number Diff line number Diff line change
Expand Up @@ -1074,25 +1074,6 @@ MPP 是 TiFlash 引擎提供的分布式计算框架,允许节点之间的数
> - 启用 TiDB Binlog 后,开启该选项无法获得性能提升。要获得性能提升,建议使用 [TiCDC](/ticdc/ticdc-overview.md) 替代 TiDB Binlog。
> - 启用该参数仅意味着一阶段提交成为可选的事务提交模式,实际由 TiDB 自行判断选择最合适的提交模式进行事务提交。
### `tidb_enable_amend_pessimistic_txn` <span class="version-mark">从 v4.0.7 版本开始引入</span>
> **警告:**
>
> 该变量从 v6.5.0 开始废弃,并计划将从 v6.6.0 移除。TiDB 默认使用[元数据锁](/metadata-lock.md)机制解决 `Information schema is changed` 报错的问题。
- 作用域:SESSION | GLOBAL
- 是否持久化到集群:是
- 默认值:`OFF`
- 这个变量用于控制是否开启 `AMEND TRANSACTION` 特性。在[悲观事务模式](/pessimistic-transaction.md)下开启该特性后,如果该事务相关的表存在并发 DDL 操作和 SCHEMA VERSION 变更,TiDB 会尝试对该事务进行 amend 操作,修正该事务的提交内容,使其和最新的有效 SCHEMA VERSION 保持一致,从而成功提交该事务而不返回 `Information schema is changed` 报错。该特性对以下并发 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)和[与 TiDB Binlog 兼容问题汇总](https://github.com/pingcap/tidb/issues/20996)了解更多关于该特性的使用注意事项。
### `tidb_enable_analyze_snapshot` <span class="version-mark">从 v6.2.0 版本开始引入</span>
- 作用域:SESSION | GLOBAL
Expand Down
4 changes: 0 additions & 4 deletions tidb-binlog/tidb-binlog-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,10 +64,6 @@ TiDB Binlog 集群主要分为 Pump 和 Drainer 两个组件,以及 binlogctl
- TiDB 系统变量 [tidb_enable_async_commit](/system-variables.md#tidb_enable_async_commit-从-v50-版本开始引入):启用 TiDB Binlog 后,开启该选项无法获得性能提升。要获得性能提升,建议使用 [TiCDC](/ticdc/ticdc-overview.md) 替代 TiDB Binlog。
- TiDB 系统变量 [tidb_enable_1pc](/system-variables.md#tidb_enable_1pc-从-v50-版本开始引入):启用 TiDB Binlog 后,开启该选项无法获得性能提升。要获得性能提升,建议使用 [TiCDC](/ticdc/ticdc-overview.md) 替代 TiDB Binlog。

* TiDB Binlog 与 TiDB v4.0.7 版本开始引入的以下特性不兼容,无法一起使用:

- TiDB 系统变量 [tidb_enable_amend_pessimistic_txn](/system-variables.md#tidb_enable_amend_pessimistic_txn-从-v407-版本开始引入):两个功能存在兼容性问题,一起使用会造成 TiDB Binlog 复制数据不一致的正确性问题。

* Drainer 支持将 Binlog 同步到 MySQL、TiDB、Kafka 或者本地文件。如果需要将 Binlog 同步到其他 Drainer 不支持的类型的系统中,可以设置 Drainer 将 Binlog 同步到 Kafka,然后根据 binlog consumer protocol 进行定制处理,参考 [Binlog Consumer Client 用户文档](/tidb-binlog/binlog-consumer-client.md)

* 如果 TiDB Binlog 用于增量恢复,可以设置配置项 `db-type="file"`,Drainer 会将 binlog 转化为指定的 [proto buffer 格式](https://github.com/pingcap/tidb-binlog/blob/master/proto/pb_binlog.proto)的数据,再写入到本地文件中。这样就可以使用 [Reparo](/tidb-binlog/tidb-binlog-reparo.md) 恢复增量数据。
Expand Down

0 comments on commit d0d15e6

Please sign in to comment.