From e8efb574f68e9c19868f1135d7fa25d9023c4458 Mon Sep 17 00:00:00 2001 From: Frank945946 Date: Tue, 12 Nov 2024 11:18:33 +0800 Subject: [PATCH 1/7] Update schema-cache.md --- schema-cache.md | 1 + 1 file changed, 1 insertion(+) diff --git a/schema-cache.md b/schema-cache.md index a61543a0520a..ae0a71a27a1d 100644 --- a/schema-cache.md +++ b/schema-cache.md @@ -36,3 +36,4 @@ summary: TiDB 对于 schema 信息采用基于 LRU 的缓存机制,在大量 - `SHOW FULL TABLES` - `FLASHBACK` - `ALTER TABLE ... SET TIFLASH MODE ...` +- 一些使用 "AUTO_INCREMENT" 或 "AUTO_RANDOM" 的表,在使用 Schema 缓存时,如果缓存设置较小,这些表可能会频繁被缓存和淘汰(可通过监控面板中的 Schema 缓存命中率和大小来判断)。这种情况可能导致已分配的 ID 段未用完便失效,从而引发 ID 段跳变。在写入量较大的场景中,甚至可能导致 ID 段耗尽。因此,建议增大 Schema 缓存的大小,避免频繁淘汰;或者设置 AUTO_ID_CACHE=1,以防止 ID 跳变。同时,避免设置过小的 AUTO_RANDOM 范围,建议使用默认值。 \ No newline at end of file From 620afe9f5971e6e6b1c7f552e394402d4775c01a Mon Sep 17 00:00:00 2001 From: Frank945946 <108602632+Frank945946@users.noreply.github.com> Date: Tue, 12 Nov 2024 14:08:38 +0800 Subject: [PATCH 2/7] Update schema-cache.md Co-authored-by: tangenta --- schema-cache.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/schema-cache.md b/schema-cache.md index ae0a71a27a1d..89ecbd090d65 100644 --- a/schema-cache.md +++ b/schema-cache.md @@ -36,4 +36,4 @@ summary: TiDB 对于 schema 信息采用基于 LRU 的缓存机制,在大量 - `SHOW FULL TABLES` - `FLASHBACK` - `ALTER TABLE ... SET TIFLASH MODE ...` -- 一些使用 "AUTO_INCREMENT" 或 "AUTO_RANDOM" 的表,在使用 Schema 缓存时,如果缓存设置较小,这些表可能会频繁被缓存和淘汰(可通过监控面板中的 Schema 缓存命中率和大小来判断)。这种情况可能导致已分配的 ID 段未用完便失效,从而引发 ID 段跳变。在写入量较大的场景中,甚至可能导致 ID 段耗尽。因此,建议增大 Schema 缓存的大小,避免频繁淘汰;或者设置 AUTO_ID_CACHE=1,以防止 ID 跳变。同时,避免设置过小的 AUTO_RANDOM 范围,建议使用默认值。 \ No newline at end of file +- 一些使用 "AUTO_INCREMENT" 或 "AUTO_RANDOM" 的表,在使用 Schema 缓存时,如果缓存设置较小,这些表可能会频繁被缓存和淘汰(可通过监控面板中的 Schema 缓存命中率和大小来判断)。这种情况可能导致已分配的 ID 段未用完便失效,从而引发 ID 段跳变。在写入量较大的场景中,甚至可能导致 ID 段耗尽。因此,建议增大 Schema 缓存的大小,避免频繁淘汰;或者设置 AUTO_ID_CACHE=1,以防止 ID 跳变。同时,建议合理设置 AUTO_RANDOM 分片位和保留位,避免可分配 ID 范围过小。 \ No newline at end of file From 47a95c95be257a78d6d1008d7405df523be93ac7 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 12 Nov 2024 15:53:19 +0800 Subject: [PATCH 3/7] Update schema-cache.md --- schema-cache.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/schema-cache.md b/schema-cache.md index 89ecbd090d65..19ac4e93cb4a 100644 --- a/schema-cache.md +++ b/schema-cache.md @@ -36,4 +36,8 @@ summary: TiDB 对于 schema 信息采用基于 LRU 的缓存机制,在大量 - `SHOW FULL TABLES` - `FLASHBACK` - `ALTER TABLE ... SET TIFLASH MODE ...` -- 一些使用 "AUTO_INCREMENT" 或 "AUTO_RANDOM" 的表,在使用 Schema 缓存时,如果缓存设置较小,这些表可能会频繁被缓存和淘汰(可通过监控面板中的 Schema 缓存命中率和大小来判断)。这种情况可能导致已分配的 ID 段未用完便失效,从而引发 ID 段跳变。在写入量较大的场景中,甚至可能导致 ID 段耗尽。因此,建议增大 Schema 缓存的大小,避免频繁淘汰;或者设置 AUTO_ID_CACHE=1,以防止 ID 跳变。同时,建议合理设置 AUTO_RANDOM 分片位和保留位,避免可分配 ID 范围过小。 \ No newline at end of file +- 当使用 `AUTO_INCREMENT` 或 `AUTO_RANDOM` 的表时,如果 Schema 缓存设置过小,可能会导致这些表在缓存中频繁进出(可通过监控面板中的 Schema 缓存命中率和大小进行观察)。这可能导致分配的 ID 段在未使用完前失效,进而引发 ID 跳变。在高写入量的场景下,甚至可能出现 ID 段耗尽的问题。为有效减少 ID 分配中的异常行为,提升系统的稳定性,建议采取以下措施: + + - 增大 Schema 缓存大小,以减少频繁的缓存淘汰。 + - 将 [`AUTO_ID_CACHE`](/auto-increment.md#auto_id_cache) 设置为 `1`,以防止 ID 跳变。 + - 合理设置 `AUTO_RANDOM` 的分片位和保留位,避免可分配 ID 范围过小。 \ No newline at end of file From 6f7ab569a9c30a761661afe7893fa15d9134d69d Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 12 Nov 2024 16:39:19 +0800 Subject: [PATCH 4/7] Update schema-cache.md --- schema-cache.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/schema-cache.md b/schema-cache.md index 19ac4e93cb4a..8323bb630fed 100644 --- a/schema-cache.md +++ b/schema-cache.md @@ -36,7 +36,7 @@ summary: TiDB 对于 schema 信息采用基于 LRU 的缓存机制,在大量 - `SHOW FULL TABLES` - `FLASHBACK` - `ALTER TABLE ... SET TIFLASH MODE ...` -- 当使用 `AUTO_INCREMENT` 或 `AUTO_RANDOM` 的表时,如果 Schema 缓存设置过小,可能会导致这些表在缓存中频繁进出(可通过监控面板中的 Schema 缓存命中率和大小进行观察)。这可能导致分配的 ID 段在未使用完前失效,进而引发 ID 跳变。在高写入量的场景下,甚至可能出现 ID 段耗尽的问题。为有效减少 ID 分配中的异常行为,提升系统的稳定性,建议采取以下措施: +- 对于设置了 [`AUTO_INCREMENT`](/auto-increment.md) 或 [`AUTO_RANDOM`](/auto-random.md) 的表,如果 Schema 缓存设置过小,可能会导致这些表在缓存中频繁进出(可通过监控面板中的 Schema 缓存命中率和大小进行观察)。这可能导致分配的 ID 段在未使用完前失效,进而引发 ID 跳变。在高写入量的场景下,甚至可能出现 ID 段耗尽的问题。为有效减少 ID 分配中的异常行为,提升系统的稳定性,建议采取以下措施: - 增大 Schema 缓存大小,以减少频繁的缓存淘汰。 - 将 [`AUTO_ID_CACHE`](/auto-increment.md#auto_id_cache) 设置为 `1`,以防止 ID 跳变。 From 283bce03258ae1506fb82553e874bf0894b7e0d0 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 12 Nov 2024 16:51:17 +0800 Subject: [PATCH 5/7] Update schema-cache.md --- schema-cache.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/schema-cache.md b/schema-cache.md index 8323bb630fed..a322f6cff1e1 100644 --- a/schema-cache.md +++ b/schema-cache.md @@ -36,7 +36,7 @@ summary: TiDB 对于 schema 信息采用基于 LRU 的缓存机制,在大量 - `SHOW FULL TABLES` - `FLASHBACK` - `ALTER TABLE ... SET TIFLASH MODE ...` -- 对于设置了 [`AUTO_INCREMENT`](/auto-increment.md) 或 [`AUTO_RANDOM`](/auto-random.md) 的表,如果 Schema 缓存设置过小,可能会导致这些表在缓存中频繁进出(可通过监控面板中的 Schema 缓存命中率和大小进行观察)。这可能导致分配的 ID 段在未使用完前失效,进而引发 ID 跳变。在高写入量的场景下,甚至可能出现 ID 段耗尽的问题。为有效减少 ID 分配中的异常行为,提升系统的稳定性,建议采取以下措施: +- 对于设置了 [`AUTO_INCREMENT`](/auto-increment.md) 或 [`AUTO_RANDOM`](/auto-random.md) 属性的表,如果 Schema 缓存设置过小,可能会导致这些表在缓存中频繁进出(可通过监控面板中的 Schema 缓存命中率和大小进行观察)。这可能导致分配的 ID 段在未使用完前失效,进而引发 ID 跳变。在高写入量的场景下,甚至可能出现 ID 段耗尽的问题。为有效减少 ID 分配中的异常行为,提升系统的稳定性,建议采取以下措施: - 增大 Schema 缓存大小,以减少频繁的缓存淘汰。 - 将 [`AUTO_ID_CACHE`](/auto-increment.md#auto_id_cache) 设置为 `1`,以防止 ID 跳变。 From c4c9029f0a9131994d8fcf0e1139e9ac4fae5a28 Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Tue, 12 Nov 2024 16:56:21 +0800 Subject: [PATCH 6/7] Update wording and format --- schema-cache.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/schema-cache.md b/schema-cache.md index a322f6cff1e1..a3b41f039f00 100644 --- a/schema-cache.md +++ b/schema-cache.md @@ -36,8 +36,8 @@ summary: TiDB 对于 schema 信息采用基于 LRU 的缓存机制,在大量 - `SHOW FULL TABLES` - `FLASHBACK` - `ALTER TABLE ... SET TIFLASH MODE ...` -- 对于设置了 [`AUTO_INCREMENT`](/auto-increment.md) 或 [`AUTO_RANDOM`](/auto-random.md) 属性的表,如果 Schema 缓存设置过小,可能会导致这些表在缓存中频繁进出(可通过监控面板中的 Schema 缓存命中率和大小进行观察)。这可能导致分配的 ID 段在未使用完前失效,进而引发 ID 跳变。在高写入量的场景下,甚至可能出现 ID 段耗尽的问题。为有效减少 ID 分配中的异常行为,提升系统的稳定性,建议采取以下措施: +- 对于设置了 [`AUTO_INCREMENT`](/auto-increment.md) 或 [`AUTO_RANDOM`](/auto-random.md) 属性的表,如果 schema 缓存设置过小,这些表可能会在缓存中频繁进出。你可以通过监控面板中的 schema 缓存命中率和大小进行观察。这可能导致分配的 ID 段在未使用完前失效,进而引发 ID 跳变。在高写入量的场景下,甚至可能出现 ID 段耗尽的问题。为有效减少 ID 分配中的异常行为,提升系统的稳定性,建议采取以下措施: - - 增大 Schema 缓存大小,以减少频繁的缓存淘汰。 + - 增大 schema 缓存大小,以减少频繁的缓存淘汰。 - 将 [`AUTO_ID_CACHE`](/auto-increment.md#auto_id_cache) 设置为 `1`,以防止 ID 跳变。 - 合理设置 `AUTO_RANDOM` 的分片位和保留位,避免可分配 ID 范围过小。 \ No newline at end of file From 4b8a5db7a3beaa75ee18ba8002b3a42c89a6ec61 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 12 Nov 2024 17:47:27 +0800 Subject: [PATCH 7/7] Apply suggestions from code review Co-authored-by: Frank945946 <108602632+Frank945946@users.noreply.github.com> --- schema-cache.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/schema-cache.md b/schema-cache.md index a3b41f039f00..c61694eea672 100644 --- a/schema-cache.md +++ b/schema-cache.md @@ -36,8 +36,8 @@ summary: TiDB 对于 schema 信息采用基于 LRU 的缓存机制,在大量 - `SHOW FULL TABLES` - `FLASHBACK` - `ALTER TABLE ... SET TIFLASH MODE ...` -- 对于设置了 [`AUTO_INCREMENT`](/auto-increment.md) 或 [`AUTO_RANDOM`](/auto-random.md) 属性的表,如果 schema 缓存设置过小,这些表可能会在缓存中频繁进出。你可以通过监控面板中的 schema 缓存命中率和大小进行观察。这可能导致分配的 ID 段在未使用完前失效,进而引发 ID 跳变。在高写入量的场景下,甚至可能出现 ID 段耗尽的问题。为有效减少 ID 分配中的异常行为,提升系统的稳定性,建议采取以下措施: +- 对于设置了 [`AUTO_INCREMENT`](/auto-increment.md) 或 [`AUTO_RANDOM`](/auto-random.md) 属性的表,如果 schema 缓存设置过小,这些表的元信息可能会在内存中被频繁地缓存和淘汰。这种频繁的缓存变动可能导致未使用完的 ID 段失效,从而引发 ID 跳变。在写入量较大的场景下,甚至可能导致 ID 段耗尽。为减少此类问题并提升系统稳定性,建议采取以下措施: - - 增大 schema 缓存大小,以减少频繁的缓存淘汰。 + - 通过监控面板查看 schema 缓存的命中率和大小,以评估缓存设置是否合理。并适当调大 schema 缓存大小,以减少频繁的缓存淘汰。 - 将 [`AUTO_ID_CACHE`](/auto-increment.md#auto_id_cache) 设置为 `1`,以防止 ID 跳变。 - 合理设置 `AUTO_RANDOM` 的分片位和保留位,避免可分配 ID 范围过小。 \ No newline at end of file