From cb755665372be33aca79c4f605f531eed56e1d02 Mon Sep 17 00:00:00 2001 From: ekexium Date: Wed, 25 Dec 2024 11:15:49 +0800 Subject: [PATCH 1/3] doc: configs of max-ts checker Signed-off-by: ekexium --- tikv-configuration-file.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tikv-configuration-file.md b/tikv-configuration-file.md index 966d2daef630..dd8f79cb44d9 100644 --- a/tikv-configuration-file.md +++ b/tikv-configuration-file.md @@ -503,6 +503,26 @@ TiKV 配置文件比命令行参数支持更多的选项。你可以在 [etc/con > - 由于 API V1 和 API V2 底层存储格式不同,因此**仅当** TiKV 中只有 TiDB 数据时,可以平滑启用或关闭 API V2。其他情况下,需要新建集群,并使用 [TiKV Backup & Restore](https://tikv.org/docs/latest/concepts/explore-tikv-features/backup-restore-cn/) 工具进行数据迁移。 > - 启用 API V2 后,**不能**将 TiKV 集群回退到 v6.1.0 之前的版本,否则可能导致数据损坏。 +### `max-ts-drift-allowance` + ++ 读写请求更新 max-ts 时允许超过 TiKV 缓存的 PD TSO 的最大值。 ++ 如果尝试更新的 max-ts 超过 TiKV 缓存的 PD TSO + allowance,认为该请求的来源不合法,会执行 [`action-on-invalid-max-ts`](#action-on-invalid-max-ts) 规定的行为。 ++ 默认值:60s + +### `max-ts-sync-interval` + ++ TiKV 更新 PD TSO 缓存的时间间隔。该缓存用于检查 max-ts 更新的合法性。 ++ 默认值:15s + +### `action-on-invalid-max-ts` + ++ 当 TiKV 认为更新的 max-ts 不合法时,TiKV 会执行的操作。 ++ 可选值: + + `"panic"`:TiKV 会 panic。 + + `"error"`:TiKV 会将错误返回。 + + `"log"`:TiKV 会打印 error 日志并继续执行。 ++ 默认值:`"panic"` + ## storage.block-cache RocksDB 多个 CF 之间共享 block cache 的配置选项。 From d834ba90931bf8b07b480da1c75200473b0aa726 Mon Sep 17 00:00:00 2001 From: ekexium Date: Wed, 25 Dec 2024 16:20:27 +0800 Subject: [PATCH 2/3] refine Signed-off-by: ekexium --- tikv-configuration-file.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tikv-configuration-file.md b/tikv-configuration-file.md index dd8f79cb44d9..a1f155a990fc 100644 --- a/tikv-configuration-file.md +++ b/tikv-configuration-file.md @@ -506,8 +506,9 @@ TiKV 配置文件比命令行参数支持更多的选项。你可以在 [etc/con ### `max-ts-drift-allowance` + 读写请求更新 max-ts 时允许超过 TiKV 缓存的 PD TSO 的最大值。 -+ 如果尝试更新的 max-ts 超过 TiKV 缓存的 PD TSO + allowance,认为该请求的来源不合法,会执行 [`action-on-invalid-max-ts`](#action-on-invalid-max-ts) 规定的行为。 ++ 如果尝试更新的 max-ts 超过 TiKV 缓存的 PD TSO + allowance,认为该请求的来源不合法,会执行 [`action-on-invalid-max-ts`](#action-on-invalid-max-ts) 规定的行为。如果 TiKV 的缓存 PD TSO 没有及时更新,会使用近似方法判断,此时被判定为非法的情况不会导致 panic。 + 默认值:60s ++ 建议设置为[`max-ts-sync-interval`](#max-ts-sync-interval)的 3 倍以上。 ### `max-ts-sync-interval` From cb11250ff1937069a5779a75d64deaa79eed655b Mon Sep 17 00:00:00 2001 From: ekexium Date: Fri, 27 Dec 2024 18:20:01 +0800 Subject: [PATCH 3/3] Update tikv-configuration-file.md Co-authored-by: cfzjywxk --- tikv-configuration-file.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tikv-configuration-file.md b/tikv-configuration-file.md index a1f155a990fc..83ad26f872fe 100644 --- a/tikv-configuration-file.md +++ b/tikv-configuration-file.md @@ -517,7 +517,7 @@ TiKV 配置文件比命令行参数支持更多的选项。你可以在 [etc/con ### `action-on-invalid-max-ts` -+ 当 TiKV 认为更新的 max-ts 不合法时,TiKV 会执行的操作。 ++ 当 TiKV 认为更新的 max-ts 不合法时,TiKV 会执行的操作。非法的 `max-ts` 可能导致 TiDB 集群线性一致性和事务并发控制语义被破坏。 + 可选值: + `"panic"`:TiKV 会 panic。 + `"error"`:TiKV 会将错误返回。