From c6a7f8de2adf20f6d756758736901bc6ac30721c Mon Sep 17 00:00:00 2001 From: qiancai Date: Thu, 13 Aug 2026 16:23:02 +0800 Subject: [PATCH 1/2] Create release-8.5.8.md --- releases/release-8.5.8.md | 132 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 releases/release-8.5.8.md diff --git a/releases/release-8.5.8.md b/releases/release-8.5.8.md new file mode 100644 index 0000000000000..6370acfd13f74 --- /dev/null +++ b/releases/release-8.5.8.md @@ -0,0 +1,132 @@ +--- +title: TiDB 8.5.8 Release Notes +summary: Learn about the improvements and bug fixes in TiDB 8.5.8. +--- + +# TiDB 8.5.8 Release Notes + +Release date: TBD + +TiDB version: 8.5.8 + +Quick access: [Quick start](https://docs.pingcap.com/tidb/v8.5/quick-start-with-tidb) | [Production deployment](https://docs.pingcap.com/tidb/v8.5/production-deployment-using-tiup) + +## Improvements + ++ TiDB + + - Improve memory efficiency for joins and `UPDATE`/`DELETE` statements by reducing excessive initial chunk allocation, especially in high-concurrency workloads and when processing wide rows [#68545](https://github.com/pingcap/tidb/issues/68545) @[solotzg](https://github.com/solotzg) + - Improve optimizer row count estimation for composite indexes that include virtual columns by falling back to index statistics when column statistics are unavailable, helping TiDB choose indexes more accurately [#69134](https://github.com/pingcap/tidb/issues/69134) @[qw4990](https://github.com/qw4990) + ++ TiKV + + - Add the optional TiKV configuration parameter `server.end-point-max-bg-concurrency` to limit background `ANALYZE` task concurrency independently of ordinary coprocessor requests, preventing `ANALYZE` from occupying shared coprocessor concurrency and reducing performance degradation and request latency under high concurrency [#19623](https://github.com/tikv/tikv/issues/19623) [#19969](https://github.com/tikv/tikv/issues/19969) @[LykxSassinator](https://github.com/LykxSassinator) + - Reduce CPU overhead in TiKV raftstore peer and store FSM message handling by avoiding eager slow-log message formatting for fast message batches [#19861](https://github.com/tikv/tikv/issues/19861) @[pingyu](https://github.com/pingyu) + ++ Tools + + + TiCDC + + - Add the TiCDC architecture mode (`newarch` or `oldarch`) to build information metrics and Grafana dashboards to help you identify how each TiCDC instance is running [#4265](https://github.com/pingcap/ticdc/issues/4265) @[wlwilliamx](https://github.com/wlwilliamx) + - Improve TiCDC Grafana dashboards to show titles based on the selected datasource instead of a hardcoded cluster name, and add validation to prevent generating inconsistent next-generation dashboard files [#4764](https://github.com/pingcap/ticdc/issues/4764) @[tenfyzhong](https://github.com/tenfyzhong) + - Improve the TiCDC build process by failing early when the installed Go version is incompatible with the version required by the project, avoiding startup panics caused by mismatched toolchains [#5415](https://github.com/pingcap/ticdc/issues/5415) @[lidezhu](https://github.com/lidezhu) + - Improve TiCDC changefeed scan performance when delete events are ignored, reducing unnecessary DML decoding during historical catch-up for delete-heavy workloads [#5430](https://github.com/pingcap/ticdc/issues/5430) @[asddongmen](https://github.com/asddongmen) + - Add a TiCDC metric and Grafana panel to show the downstream type of each changefeed [#4250](https://github.com/pingcap/ticdc/issues/4250) @[wlwilliamx](https://github.com/wlwilliamx) + - Improve TiCDC Kafka sink behavior by separating the changefeed `max-message-bytes` batching threshold from Kafka's actual message size limit, so large row events that are within the Kafka topic or broker limit can be sent without changing the changefeed configuration [#1405](https://github.com/pingcap/ticdc/issues/1405) @[3AceShowHand](https://github.com/3AceShowHand) + - Add Prometheus metrics for TiCDC event store KV entry types to distinguish insert, update, and delete operations for better observability [#5448](https://github.com/pingcap/ticdc/issues/5448) @[lidezhu](https://github.com/lidezhu) + - Support configuring TiCDC event collector batching by both event count and total bytes for changefeeds, so you can tune batch size more consistently across different workloads and sinks [#3237](https://github.com/pingcap/ticdc/issues/3237) @[3AceShowHand](https://github.com/3AceShowHand) + - Improve TiCDC event service stability and throughput under memory pressure by introducing an adaptive scan window algorithm, reducing dispatcher starvation and reset events during DDL and sync point workloads [#4172](https://github.com/pingcap/ticdc/issues/4172) @[asddongmen](https://github.com/asddongmen) + - Add the `ignore-update-only-columns` event filter option for TiCDC Kafka sinks to skip `UPDATE` events when only the specified columns change, reducing unnecessary downstream traffic [#5269](https://github.com/pingcap/ticdc/issues/5269) @[lidezhu](https://github.com/lidezhu) + +## Bug fixes + ++ TiDB + + - Fix the issue that multi-schema changes containing `MODIFY COLUMN` on release-8.5 fall back to transactional backfill instead of using ingest or distributed backfill [#70136](https://github.com/pingcap/tidb/issues/70136) @[joechenrh](https://github.com/joechenrh) + - Fix the issue that the progress of adding an index on a partitioned table might move backward during reorganization [#62496](https://github.com/pingcap/tidb/issues/62496) @[GMHDBJD](https://github.com/GMHDBJD) + - Fix the issue that `ADMIN ALTER DDL JOBS` cannot dynamically adjust the thread or batch size of a running transaction-mode backfill [#70138](https://github.com/pingcap/tidb/issues/70138) @[joechenrh](https://github.com/joechenrh) + - Fix the issue that TiDB might panic and terminate the user session when a query uses an `IN` subquery as an operand of a nested `NOT IN` expression [#64854](https://github.com/pingcap/tidb/issues/64854) @[hawkingrei](https://github.com/hawkingrei) + - Fix the issue that otherwise cache-safe queries using `JSON_EXTRACT()` cannot use the prepared or non-prepared plan cache [#69522](https://github.com/pingcap/tidb/issues/69522) @[winoros](https://github.com/winoros) + - Fix the issue that statistics for virtual generated columns added with `ALTER TABLE ADD COLUMN` might be initialized incorrectly, causing inaccurate `SHOW STATS_HISTOGRAMS` output and unnecessary loading of placeholder statistics [#69160](https://github.com/pingcap/tidb/issues/69160) @[qw4990](https://github.com/qw4990) + - Fix the issue that TiDB might consume unbounded connection memory when receiving repeated `COM_STMT_SEND_LONG_DATA` requests for prepared statements without executing or resetting them [#70349](https://github.com/pingcap/tidb/issues/70349) @[djshow832](https://github.com/djshow832) + - Fix the issue that TiDB might crash when parsing SQL statements or optimizer hints with excessively deep nested parentheses by rejecting them with a parser error before a stack overflow occurs [#70192](https://github.com/pingcap/tidb/issues/70192) @[Debra-He](https://github.com/Debra-He) + - Fix the issue that parsing TiDB runtime traces might fail during batched TSO requests because the PD client emits invalid nested runtime trace regions [#69743](https://github.com/pingcap/tidb/issues/69743) @[YangKeao](https://github.com/YangKeao) + - Fix the issue that `COM_CHANGE_USER` authentication failure might leave the connection in an inconsistent session state [#69691](https://github.com/pingcap/tidb/issues/69691) @[bb7133](https://github.com/bb7133) + - Fix the issue that `COM_STMT_SEND_LONG_DATA` can accumulate unbounded prepared-statement parameter data and increase connection memory usage; TiDB now enforces the session `max_allowed_packet` limit and returns a packet-too-large error when the accumulated size exceeds the limit [#69693](https://github.com/pingcap/tidb/issues/69693) @[bb7133](https://github.com/bb7133) + - Fix the issue that `UNCOMPRESS()` might consume excessive untracked memory and exceed the query memory quota when processing specially crafted compressed input [#70198](https://github.com/pingcap/tidb/issues/70198) @[Debra-He](https://github.com/Debra-He) + - Fix the issue that normal users can read other users' attributes through `INFORMATION_SCHEMA.USER_ATTRIBUTES` [#70277](https://github.com/pingcap/tidb/issues/70277) @[djshow832](https://github.com/djshow832) + - Fix the issue that recording OOM diagnostic goroutine profiles might increase stop-the-world latency and affect query latency when memory usage frequently exceeds the alarm ratio [#62080](https://github.com/pingcap/tidb/issues/62080) @[YangKeao](https://github.com/YangKeao) + - Fix the issue that `LOAD DATA LOCAL INFILE` in a pessimistic transaction might retry internally after a retryable lock conflict, desynchronize the client connection, and return an invalid sequence error instead of the original deadlock error [#69793](https://github.com/pingcap/tidb/issues/69793) @[lance6716](https://github.com/lance6716) + ++ TiKV + + - Fix the issue that BR log backup leaves stale GC safepoints after a log backup task is stopped, which might affect cleanup and safepoint management [#19832](https://github.com/tikv/tikv/issues/19832) @[Leavrth](https://github.com/Leavrth) + - Fix the issue that BR cannot update the SST download rate limit correctly when multiple restore tasks run concurrently, which might cause one task's limit change not to take effect [#19454](https://github.com/tikv/tikv/issues/19454) @[Leavrth](https://github.com/Leavrth) + - Fix the issue that TiKV might panic when its coprocessor evaluates pushed-down `LIKE` expressions that involve malformed UTF-8 input or patterns, `BIT` values, or certain collations [#66597](https://github.com/pingcap/tidb/issues/66597) [#67082](https://github.com/pingcap/tidb/issues/67082) [#19811](https://github.com/tikv/tikv/issues/19811) @[jebter](https://github.com/jebter) + - Fix the issue that TiKV might generate inconsistent MVCC state during external SST ingestion when ingestion races with foreground writes, which might cause a panic in transaction status checks [#19891](https://github.com/tikv/tikv/issues/19891) @[gengliqi](https://github.com/gengliqi) + - Fix the issue that TiKV cannot be built with `ENABLE_FIPS=1` in FIPS environments [#19743](https://github.com/tikv/tikv/issues/19743) @[LykxSassinator](https://github.com/LykxSassinator) + - Fix the issue that enabling only background task resource control might cause a 5% to 10% performance regression in write-heavy workloads because TiKV unnecessarily switches the transaction scheduler to priority scheduling [#19858](https://github.com/tikv/tikv/issues/19858) @[glorv](https://github.com/glorv) + - Fix the issue that TiKV might crash with a null pointer dereference during TiDB Lightning data import in `tidb` mode [#18671](https://github.com/tikv/tikv/issues/18671) @[Dog-Du](https://github.com/Dog-Du) + - Fix the issue that the TiKV In-Memory Engine region label watch might retry forever from a stale revision after an etcd compaction error is returned as a raw gRPC `UNKNOWN` status, and recover automatically by reloading all region labels and restarting the watch from a fresh revision [#19792](https://github.com/tikv/tikv/issues/19792) @[akashchakrabortymsc-cmd](https://github.com/akashchakrabortymsc-cmd) + - Fix the issue that Region leader transfer might be blocked indefinitely when in-memory engine cache warmup is stuck and repeated transfer requests arrive before the ACK deadline [#19776](https://github.com/tikv/tikv/issues/19776) @[overvenus](https://github.com/overvenus) + - Fix the issue that TiKV applies unnecessary flow control during RocksDB base-level transitions because transient pending compaction bytes spikes are treated as sustained compaction pressure [#19667](https://github.com/tikv/tikv/issues/19667) @[hbisheng](https://github.com/hbisheng) + ++ PD + + - Fix the issue that PD `/metric/query` and `/metric/query_range` might expose upstream response details or access invalid metric-storage targets by validating HTTP or HTTPS destinations, rejecting redirects, sanitizing proxy failures, and applying a 30-second timeout; malformed forwarded PD leader URLs with nested HTTP or HTTPS schemes are also rejected [#11081](https://github.com/tikv/pd/issues/11081) @[rleungx](https://github.com/rleungx) + - Fix the issue that RU tokens might be allocated unevenly among TiDB instances in the same resource group when request rates are uneven, causing high RU wait duration and increased latency on high-demand instances [#9605](https://github.com/tikv/pd/issues/9605) @[JmPotato](https://github.com/JmPotato) + - Fix the issue that PD GlobalConfig gRPC APIs might access etcd keys outside the intended namespace when a client specifies an arbitrary `ConfigPath` or a path-like configuration name [#11079](https://github.com/tikv/pd/issues/11079) @[rleungx](https://github.com/rleungx) + - Fix the issue that PD accepts `pd-forwarded-host` gRPC forwarding targets that are not advertised by the current PD leader and attempts to connect to them [#11070](https://github.com/tikv/pd/issues/11070) @[rleungx](https://github.com/rleungx) + - Fix the issue that the resource group client might permanently send `NaN` token requests when a newly created resource group controller races with the periodic state update [#11022](https://github.com/tikv/pd/issues/11022) @[JmPotato](https://github.com/JmPotato) + ++ Tools + + + Backup & Restore (BR) + + - Fix the issue that BR log restore does not enforce the configured rate limit during point-in-time recovery, causing log apply download speed to exceed the limit [#63505](https://github.com/pingcap/tidb/issues/63505) @[Leavrth](https://github.com/Leavrth) + - Fix the issue that BR point-in-time restore for tables with `AUTO_ID_CACHE=1` might cause duplicate-key errors on the first `INSERT` after restore [#69485](https://github.com/pingcap/tidb/issues/69485) @[vldmit](https://github.com/vldmit) + + + TiCDC + + - Fix the issue that TiCDC might create duplicate dispatchers during maintainer failover, causing downstream write conflicts [#5083](https://github.com/pingcap/ticdc/issues/5083) @[hongyunyan](https://github.com/hongyunyan) + - Fix the issue that TiCDC might produce inconsistent data between upstream and downstream after a Kafka controller failure [#5437](https://github.com/pingcap/ticdc/issues/5437) @[3AceShowHand](https://github.com/3AceShowHand) + - Fix the issue that changefeeds might disappear after upgrading TiCDC when existing changefeed ID metadata uses the legacy `namespace` field instead of `keyspace` in JSON [#4079](https://github.com/pingcap/ticdc/issues/4079) @[wlwilliamx](https://github.com/wlwilliamx) + - Fix the issue that TiCDC checkpoint advancement gets stuck when replicating `CREATE TABLE ... LIKE ...` and the referenced source table is filtered out by the changefeed [#5150](https://github.com/pingcap/ticdc/issues/5150) @[lidezhu](https://github.com/lidezhu) + - Fix the issue that TiCDC owner checkpoint timestamp and lag metrics remain stale after a changefeed is finished, stopped, removed, or moved to another owner [#5490](https://github.com/pingcap/ticdc/issues/5490) @[asddongmen](https://github.com/asddongmen) + - Fix the issue that a changefeed can stall after TiCDC failover or dispatcher reset in the new architecture [#5553](https://github.com/pingcap/ticdc/issues/5553) @[asddongmen](https://github.com/asddongmen) + - Fix the issue that a removing TiCDC maintainer might still reschedule or recreate dispatchers after shutdown handoff starts [#4827](https://github.com/pingcap/ticdc/issues/4827) @[wlwilliamx](https://github.com/wlwilliamx) + - Fix the issue that TiCDC stale-lock resolving might fail for async-commit residual locks because the `ScanLock` target timestamp can advance TiKV local MaxTS beyond the latest PD TSO [#5418](https://github.com/pingcap/ticdc/issues/5418) @[tenfyzhong](https://github.com/tenfyzhong) + - Fix the issue that next-gen `cdc cli` might show an empty `Error:` output when `--keyspace` or `-k` is missing, and now provides actionable guidance for missing or non-existent keyspaces [#2669](https://github.com/pingcap/ticdc/issues/2669) @[tenfyzhong](https://github.com/tenfyzhong) + - Fix the issue that TiCDC EventService might repeatedly scan the same raw event after a table is deleted, causing scan progress to stall [#5040](https://github.com/pingcap/ticdc/issues/5040) @[asddongmen](https://github.com/asddongmen) + - Fix the issue that maintainer failover might leave in-flight scheduling or merge operators inconsistent and prevent TiCDC table scheduling from converging automatically [#4763](https://github.com/pingcap/ticdc/issues/4763) @[wlwilliamx](https://github.com/wlwilliamx) + - Fix the issue that TiCDC might hang during graceful shutdown when region event pushing is paused by flow control [#5608](https://github.com/pingcap/ticdc/issues/5608) @[lidezhu](https://github.com/lidezhu) + - Fix the issue that a TiCDC table-trigger checkpoint might advance past an add-table DDL before the maintainer acknowledgment arrives, causing newly added table dispatchers to skip subsequent table DDLs [#5401](https://github.com/pingcap/ticdc/issues/5401) @[hongyunyan](https://github.com/hongyunyan) + - Fix the issue that TiCDC might ignore unretryable changefeed errors when checkpoint progress advances in the same maintainer heartbeat, causing the changefeed to remain normal instead of entering the failed state [#5246](https://github.com/pingcap/ticdc/issues/5246) @[3AceShowHand](https://github.com/3AceShowHand) + - Fix the issue that TiCDC changefeeds using Avro or Debezium-Avro might remain healthy-looking when the Schema Registry returns HTTP 500 errors, and now report a warning status with the registry error in `last_warning` [#5653](https://github.com/pingcap/ticdc/issues/5653) @[wk989898](https://github.com/wk989898) + - Fix multiple issues in TiCDC Kafka sink verification, including unexpected topic creation or other startup-only side effects, skipped Schema Registry checks for existing topics, and incorrect `replication-factor` validation for topics that TiCDC does not create [#5618](https://github.com/pingcap/ticdc/issues/5618) [#5720](https://github.com/pingcap/ticdc/issues/5720) @[3AceShowHand](https://github.com/3AceShowHand) + - Fix the issue that enabling claim-check causes a TiCDC Kafka sink to create a separate storage client for each encoder, increasing resource usage [#5719](https://github.com/pingcap/ticdc/issues/5719) @[3AceShowHand](https://github.com/3AceShowHand) + - Fix the issue that TiCDC Kafka sink errors might be inconsistently classified or wrapped, making retry classification and troubleshooting more difficult [#5790](https://github.com/pingcap/ticdc/issues/5790) @[3AceShowHand](https://github.com/3AceShowHand) + - Fix the issue that TiCDC might spike memory and CPU usage when bulk-creating many idle changefeeds because the coordinator does not honor the configured scheduler concurrency limit [#4831](https://github.com/pingcap/ticdc/issues/4831) @[wlwilliamx](https://github.com/wlwilliamx) + - Fix the issue that a TiCDC changefeed checkpoint might stall after capture replacement when a dropped view is incorrectly scheduled as a physical table and leaves an orphan dispatcher [#5710](https://github.com/pingcap/ticdc/issues/5710) @[asddongmen](https://github.com/asddongmen) + - Fix the issue that TiCDC might incorrectly reject newer PD, TiKV, or TiCDC versions in the new architecture because of hard-coded maximum compatible versions [#4681](https://github.com/pingcap/ticdc/issues/4681) @[wlwilliamx](https://github.com/wlwilliamx) + - Fix the issue that TiCDC Kafka changefeeds might create topics with broker default partition settings when a consumer starts immediately after changefeed creation, causing message delivery failures and increasing replication lag [#5896](https://github.com/pingcap/ticdc/issues/5896) @[3AceShowHand](https://github.com/3AceShowHand) + - Fix the issue that a stale TiCDC capture might continue writing downstream after losing its etcd session, which might cause duplicate or unsafe downstream writes during failover [#5202](https://github.com/pingcap/ticdc/issues/5202) @[asddongmen](https://github.com/asddongmen) + - Fix the issue that the TiCDC MySQL sink might hang when DDL and metadata operations are blocked by DML sessions after the shared downstream connection pool is exhausted [#5360](https://github.com/pingcap/ticdc/issues/5360) @[hongyunyan](https://github.com/hongyunyan) + - Fix the issue that TiCDC might mark a subscription span as initialized before all underlying Regions finish the initial scan, which might trigger initialization-dependent operations too early [#5658](https://github.com/pingcap/ticdc/issues/5658) @[lidezhu](https://github.com/lidezhu) + - Fix the issue that `cdc cli changefeed resume` reports success for running changefeeds and creates unnecessary temporary resume GC guards for invalid resume requests [#4893](https://github.com/pingcap/ticdc/issues/4893) @[wlwilliamx](https://github.com/wlwilliamx) + - Fix the issue that TiCDC might expose sensitive sink URI information in OpenAPI error messages and logs when sink URI validation fails [#5094](https://github.com/pingcap/ticdc/issues/5094) @[asddongmen](https://github.com/asddongmen) + - Fix the issue that the TiCDC Kafka, Pulsar, and storage consumers might ignore out-of-order replayed DML events after the checkpoint advances, causing downstream data inconsistency [#5713](https://github.com/pingcap/ticdc/issues/5713) @[wk989898](https://github.com/wk989898) + - Fix the issue that TiCDC downstream consumers might apply DML events before the corresponding DDL is processed during failover or message reordering, causing errors such as `Unknown column` [#5587](https://github.com/pingcap/ticdc/issues/5587) @[wk989898](https://github.com/wk989898) + - Fix the issue that TiCDC schema store initialization might retry forever when the initial schema snapshot has been lost by upstream GC, causing a changefeed to remain stuck after recovery from failures such as a network partition [#3249](https://github.com/pingcap/ticdc/issues/3249) @[asddongmen](https://github.com/asddongmen) + - Fix the issue that TiCDC might leak changefeed scan quota or panic when it receives malformed heartbeat or congestion-control messages [#5642](https://github.com/pingcap/ticdc/issues/5642) @[lidezhu](https://github.com/lidezhu) + - Fix the issue that TiCDC in DR Auto-Sync scenarios might trigger a TiKV panic during network partitions because of outdated tiflow dependencies [#5774](https://github.com/pingcap/ticdc/issues/5774) @[wk989898](https://github.com/wk989898) + - Fix the issue that TiCDC might run out of memory when redo apply is executed multiple times by supporting event collector batching based on both event count and total bytes and allowing batch overrides in changefeed configuration [#5950](https://github.com/pingcap/ticdc/issues/5950) @[3AceShowHand](https://github.com/3AceShowHand) + - Fix the issue that TiCDC changefeeds might stall after `TRUNCATE TABLE` on partitioned tables when the event-service scan window is pinned and the DDL barrier cannot make progress [#4365](https://github.com/pingcap/ticdc/issues/4365) @[asddongmen](https://github.com/asddongmen) + - Fix the issue that TiCDC event service scan progress might stall when the global scan window is pinned and a dispatcher has pending syncpoint barriers [#5546](https://github.com/pingcap/ticdc/issues/5546) @[asddongmen](https://github.com/asddongmen) + + + TiDB Lightning + + - Fix the issue that `IMPORT INTO` might report success with inconsistent indexes after a transient conflict-deletion commit error [#69792](https://github.com/pingcap/tidb/issues/69792) @[D3Hunter](https://github.com/D3Hunter) + - Fix the issue that `IMPORT INTO` might fail with the `lock held by current process` error after an import error or retry when local engine files are not cleaned up correctly [#65645](https://github.com/pingcap/tidb/issues/65645) @[D3Hunter](https://github.com/D3Hunter) + - Fix the issue that `IMPORT INTO` silently writes incorrect values for repeated dictionary-encoded Parquet `DECIMAL` columns [#70365](https://github.com/pingcap/tidb/issues/70365) @[joechenrh](https://github.com/joechenrh) + - Fix the issue that `IMPORT INTO` or related local backend ingest tasks might hang when job generation is canceled [#69240](https://github.com/pingcap/tidb/issues/69240) @[D3Hunter](https://github.com/D3Hunter) From ae146f9bc56d265697370e5899a4fdc6d3fca452 Mon Sep 17 00:00:00 2001 From: lidezhu <47731263+lidezhu@users.noreply.github.com> Date: Fri, 14 Aug 2026 16:37:51 +0800 Subject: [PATCH 2/2] Apply suggestions from code review Co-authored-by: lidezhu <47731263+lidezhu@users.noreply.github.com> --- releases/release-8.5.8.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/releases/release-8.5.8.md b/releases/release-8.5.8.md index 6370acfd13f74..d17b0e78c41cf 100644 --- a/releases/release-8.5.8.md +++ b/releases/release-8.5.8.md @@ -27,13 +27,8 @@ Quick access: [Quick start](https://docs.pingcap.com/tidb/v8.5/quick-start-with- + TiCDC - - Add the TiCDC architecture mode (`newarch` or `oldarch`) to build information metrics and Grafana dashboards to help you identify how each TiCDC instance is running [#4265](https://github.com/pingcap/ticdc/issues/4265) @[wlwilliamx](https://github.com/wlwilliamx) - - Improve TiCDC Grafana dashboards to show titles based on the selected datasource instead of a hardcoded cluster name, and add validation to prevent generating inconsistent next-generation dashboard files [#4764](https://github.com/pingcap/ticdc/issues/4764) @[tenfyzhong](https://github.com/tenfyzhong) - - Improve the TiCDC build process by failing early when the installed Go version is incompatible with the version required by the project, avoiding startup panics caused by mismatched toolchains [#5415](https://github.com/pingcap/ticdc/issues/5415) @[lidezhu](https://github.com/lidezhu) - Improve TiCDC changefeed scan performance when delete events are ignored, reducing unnecessary DML decoding during historical catch-up for delete-heavy workloads [#5430](https://github.com/pingcap/ticdc/issues/5430) @[asddongmen](https://github.com/asddongmen) - - Add a TiCDC metric and Grafana panel to show the downstream type of each changefeed [#4250](https://github.com/pingcap/ticdc/issues/4250) @[wlwilliamx](https://github.com/wlwilliamx) - Improve TiCDC Kafka sink behavior by separating the changefeed `max-message-bytes` batching threshold from Kafka's actual message size limit, so large row events that are within the Kafka topic or broker limit can be sent without changing the changefeed configuration [#1405](https://github.com/pingcap/ticdc/issues/1405) @[3AceShowHand](https://github.com/3AceShowHand) - - Add Prometheus metrics for TiCDC event store KV entry types to distinguish insert, update, and delete operations for better observability [#5448](https://github.com/pingcap/ticdc/issues/5448) @[lidezhu](https://github.com/lidezhu) - Support configuring TiCDC event collector batching by both event count and total bytes for changefeeds, so you can tune batch size more consistently across different workloads and sinks [#3237](https://github.com/pingcap/ticdc/issues/3237) @[3AceShowHand](https://github.com/3AceShowHand) - Improve TiCDC event service stability and throughput under memory pressure by introducing an adaptive scan window algorithm, reducing dispatcher starvation and reset events during DDL and sync point workloads [#4172](https://github.com/pingcap/ticdc/issues/4172) @[asddongmen](https://github.com/asddongmen) - Add the `ignore-update-only-columns` event filter option for TiCDC Kafka sinks to skip `UPDATE` events when only the specified columns change, reducing unnecessary downstream traffic [#5269](https://github.com/pingcap/ticdc/issues/5269) @[lidezhu](https://github.com/lidezhu)