diff --git a/tikv-configuration-file.md b/tikv-configuration-file.md index e24f9c4c8222..b0a5d01765fa 100644 --- a/tikv-configuration-file.md +++ b/tikv-configuration-file.md @@ -636,6 +636,34 @@ I/O rate limiter 相关的配置项。 + 可选值:`"read-only"`,`"write-only"`,`"all-io"` + 默认值:`"write-only"` +## storage.max-ts + +`max-ts` 相关的配置项。 + +`max-ts` 是当前 TiKV 节点已知的最大读时间戳,用于保证异步提交 (Async Commit) 和一阶段提交 (1PC) 事务的线性一致性以及事务并发控制语义。 + +### `action-on-invalid-update` 从 v8.5.7 版本开始引入 + ++ 指定当检测到非法的 `max-ts` 更新请求时,TiKV 的处理方式。如果某个读写请求使用的 TS 超过了 TiKV 缓存的 PD TSO + [`max-drift`](#max-drift-从-v857-版本开始引入),TiKV 会将其视为非法的 `max-ts` 更新请求。非法的 `max-ts` 更新请求可能破坏 TiDB 集群的线性一致性和事务并发控制语义。 ++ 可选值: + + `"panic"`:TiKV 会 panic。如果 TiKV 缓存的 PD TSO 没有及时更新,TiKV 会使用近似方法进行判断,此时被判定为非法的请求不会导致 TiKV panic。 + + `"error"`:TiKV 会返回错误,并终止对该请求的处理。 + + `"log"`:TiKV 会打印错误日志,并继续执行该请求。 ++ 默认值:`"error"` + +### `cache-sync-interval` 从 v8.5.7 版本开始引入 + ++ 控制 TiKV 更新本地 PD TSO 缓存的时间间隔。TiKV 定期从 PD 获取最新的时间戳,并将其缓存到本地,以便检查 `max-ts` 的合法性。 ++ 默认值:`"15s"` + +### `max-drift` 从 v8.5.7 版本开始引入 + ++ 定义当读写请求使用的 TS 超过 TiKV 缓存的 PD TSO 时,所允许的最长超出时间。 ++ 如果某个读写请求使用的 TS 超过了 TiKV 缓存的 PD TSO + `max-drift`,TiKV 会将其视为非法的 `max-ts` 更新请求,并根据 [`action-on-invalid-update`](#action-on-invalid-update-从-v857-版本开始引入) 的配置进行处理。 ++ 默认值:`"60s"` ++ 该值必须大于 [`cache-sync-interval`](#cache-sync-interval-从-v857-版本开始引入),否则 TiKV 校验配置会失败并拒绝启动。 ++ 建议设置为 [`cache-sync-interval`](#cache-sync-interval-从-v857-版本开始引入) 的 3 倍以上。 + ## pd ### `enable-forwarding` 从 v5.0.0 版本开始引入