TiDB 8.1.1 Release Notes
Release date: August 27, 2024
TiDB version: 8.1.1
Quick access: Quick start | Production deployment
Compatibility changes
- When using TiDB Lightning to import a CSV file, if you set
strict-format = trueto split a large CSV file into multiple small CSV files to improve concurrency and import performance, you need to explicitly specifyterminator. The values can be\r,\nor\r\n. Failure to specify a line terminator might result in an exception when parsing the CSV file data. #37338 @lance6716 - When using
IMPORT INTOto import a CSV file, if you specify theSPLIT_FILEparameter to split a large CSV file into multiple small CSV files to improve concurrency and import performance, you need to explicitly specify the line terminatorLINES_TERMINATED_BY. The values can be\r,\nor\r\n. Failure to specify a line terminator might result in an exception when parsing the CSV file data. #37338 @lance6716 - Change the default value of the
tidb_enable_parallel_hashagg_spillvariable fromONtoOFFto avoid incorrect query results caused by disk spill during parallel calculation. For clusters upgraded to v8.1.1 from v8.0.0 or v8.1.0, this variable will remain at its previous default value ofONafter the upgrade, and it is recommended to manually change it toOFF. #55290 @xzhangxian1008
Offline package changes
In v8.1.1, arbiter is removed from the TiDB-community-toolkit binary package.
Improvements
TiDB
- By batch deleting TiFlash placement rules, improve the processing speed of data GC after performing the
TRUNCATEorDROPoperation on partitioned tables #54068 @Lloyd-Pottiger - Remove stores without Regions during MPP load balancing #52313 @xzhangxian1008
- Temporarily adjust the priority of statistics synchronously loading tasks to high to avoid widespread timeouts during TiKV high loads, as these timeouts might result in statistics not being loaded #50332 @winoros
- The
EXPLAINstatement supports applying thetidb_redact_logsetting and further optimizes the log handling logic. - Support applying the
tidb_redact_logsetting to the output ofEXPLAINstatements and further optimize the logic in processing logs #54565 @hawkingrei
- By batch deleting TiFlash placement rules, improve the processing speed of data GC after performing the
PD
TiFlash
- Mitigate the issue that TiFlash might panic due to updating certificates after TLS is enabled #8535 @windtalker
- Reduce lock conflicts under highly concurrent data read operations and optimize short query performance #9125 @JinheLin
Tools
Backup & Restore (BR)
- Support encryption of temporary files generated during log backup #15083 @YuJuncen
- Except for the
br log restoresubcommand, all otherbr logsubcommands support skipping the loading of the TiDBdomaindata structure to reduce memory consumption #52088 @Leavrth - Support setting Alibaba Cloud access credentials through environment variables #45551 @RidRisR
- Support checking whether the disk space in TiKV is sufficient before TiKV downloads each SST file. If the space is insufficient, BR terminates the restore and returns an error #17224 @RidRisR
TiCDC
- Support sending BOOTSTRAP messages of all tables to the downstream in one go when a changefeed using Simple Protocol starts #11315 @asddongmen
- Support directly outputting raw events when the downstream is a Message Queue (MQ) or cloud storage #11211 @CharlesCheung96
Bug fixes
TiDB
- Fix the issue that the disk spill for the HashAgg operator causes incorrect query results during parallel calculation #55290 @xzhangxian1008
- Fix the issue that
INDEX_HASH_JOINcannot exit properly when SQL is abnormally interrupted #54688 @wshwsh12 - Fix the issue that RANGE partitioned tables that are not strictly self-incrementing can be created #54829 @Defined2014
- Fix the issue that
PointGetexecution plans for_tidb_rowidcan be generated #54583 @Defined2014 - Fix the issue that internal SQL statements in the slow log are redacted to null by default #54190 #52743 #53264 @lcwangchao
- Fix the issue that the
UPDATEoperation can cause TiDB OOM in multi-table scenarios #53742 @hawkingrei - Fix the issue that the Window function might panic when there is a related subquery in it #42734 @hi-rustin
- Fix the issue that the
LENGTH()condition is unexpectedly removed when the collation isutf8_binorutf8mb4_bin#53730 @elsa0520 - Fix the issue that after a statement within a transaction is killed by OOM, if TiDB continues to execute the next statement within the same transaction, you might get an error
Trying to start aggressive locking while it's already startedand a panic occurs #53540 @MyonKeminta - Fix the issue that
PREPARE/EXECUTEstatements with theCONVexpression containing a?argument might result in incorrect query results when executed multiple times #53505 @qw4990 - Fix the issue that the recursive CTE operator incorrectly tracks memory usage #54181 @guo-shaoge
- Fix the issue that using
SHOW WARNINGS;to obtain warnings might cause a panic #48756 @xhebox - Fix the issue that the TopN operator might be pushed down incorrectly #37986 @qw4990
- Fix the issue that TiDB panics when executing the
SHOW ERRORSstatement with a predicate that is alwaystrue#46962 @elsa0520 - Fix the issue that the
STATEfield in theINFORMATION_SCHEMA.TIDB_TRXtable is empty due to thesizeof theSTATEfield not being defined #53026 @cfzjywxk - Fix the issue that executing the
SELECT DISTINCT CAST(col AS DECIMAL), CAST(col AS SIGNED) FROM ...query might return incorrect results #53726 @hawkingrei - Fix the issue that DDL statements incorrectly use etcd and cause tasks to queue up #52335 @wjhuang2016
- Fix the issue that the
Distinct_countinformation in GlobalStats might be incorrect #53752 @hawkingrei - Fix the issue that the
tidb_enable_async_merge_global_statsandtidb_analyze_partition_concurrencysystem variables do not take effect during automatic statistics collection #53972 @hi-rustin - Fix the issue that the
TIMESTAMPADD()function goes into an infinite loop when the first argument ismonthand the second argument is negative #54908 @xzhangxian1008 - Fix the issue that the Connection Count monitoring metric in Grafana is incorrect when some connections exit before the handshake is complete #54428 @YangKeao
- Fix the issue that the Connection Count of each resource group is incorrect when using TiProxy and resource groups #54545 @YangKeao
- Fix the issue that using a view does not work in recursive CTE #49721 @hawkingrei
- Fix the issue that the
finalAggMode and thenon-finalAggMode cannot coexist in Massively Parallel Processing (MPP) #51362 @AilinKid - Fix the issue of incorrect WARNINGS information when using Optimizer Hints #53767 @hawkingrei
- Fix the issue of abnormally high memory usage caused by
memTrackernot being detached when theHashJoinorIndexLookUpoperator is the driven side sub-node of theApplyoperator #54005 @XuHuaiyu - Fix the issue that the illegal column type
DECIMAL(0,0)can be created in some cases #53779 @tangenta - Fix the issue of potential data races during the execution of
(*PointGetPlan).StatsInfo()#49803 #43339 @qw4990 - Fix the issue that improper use of metadata locks might lead to writing anomalous data when using the plan cache under certain circumstances #53634 @zimulala
- Fix the issue that JSON-related functions return errors inconsistent with MySQL in some cases #53799 @dveeden
- Fix the issue that TiDB does not create corresponding statistics metadata (
stats_meta) when creating a table with foreign keys #53652 @hawkingrei - Fix the issue that the
memory_quotahint might not work in subqueries #53834 @qw4990 - Fix the issue that TiDB might report an error due to GC when loading statistics at startup #53592 @you06
- Fix the issue that executing
CREATE OR REPLACE VIEWconcurrently might result in thetable doesn't existerror #53673 @tangenta - Fix the issue that the query latency of stale reads increases, caused by information schema cache misses #53428 @crazycs520
- Fix the issue that
SELECT INTO OUTFILEdoes not work when clustered indexes are used as predicates #42093 @qw4990 - Fix the issue that comparing a column of
YEARtype with an unsigned integer that is out of range causes incorrect results #50235 @qw4990 - Fix the issue that TiDB might return incorrect query results when you query tables with virtual columns in transactions that involve data modification operations #53951 @qw4990
- Fix the issue that TiDB fails to reject unauthenticated user connections in some cases when using the
auth_socketauthentication plugin #54031 @lcwangchao - Fix the issue that when queries contain non-correlated subqueries and
LIMITclauses, column pruning might be incomplete, resulting in a less optimal plan #54213 @qw4990 - Fix the issue that non-BIGINT unsigned integers might produce incorrect results when compared with strings/decimals #41736 @LittleFall
- Fix the issue that setting
max-index-lengthcauses TiDB to panic when adding indexes using the Distributed eXecution Framework (DXF) #53281 @zimulala - Fix the issue that certain filter conditions in queries might cause the planner module to report an
invalid memory address or nil pointer dereferenceerror #53582 #53580 #53594 #53603 @YangKeao - Fix the issue that recursive CTE queries might result in invalid pointers #54449 @hawkingrei
- Fix the overflow issue of the
Longlongtype in predicates #45783 @hawkingrei - Fix the issue that indirect placeholder
?references in aGROUP BYstatement cannot find columns #53872 @qw4990 - Fix the issue that the memory used by transactions might be tracked multiple times #53984 @ekexium
- Fix the issue that using
CURRENT_DATE()as the default value for a column results in incorrect query results #53746 @tangenta - Fix the issue that the performance is unstable when adding indexes using Global Sort #54147 @tangenta
- Fix the issue that
SHOW IMPORT JOBSreports an errorUnknown column 'summary'after upgrading from v7.1 #54241 @tangenta - Fix the issue that
rootuser cannot querytidb_mdl_view#53292 @tangenta - Fix the issue that the network partition during adding indexes using the Distributed eXecution Framework (DXF) might cause inconsistent data indexes #54897 @tangenta
- Fix the issue that the error occurred during initialization of the TiDB Lightning physical import mode might cause resource leaks #53659 @D3Hunter
- Fix the issue that obtaining the column information using
information_schema.columnsreturns warning 1356 when a subquery is used as a column definition in a view definition #54343 @lance6716 - Fix the issue that using index acceleration to add a unique index might cause a
Duplicate entryerror when the owner is switched #49233 @lance6716 - Fix the unclear error message when setting
global.tidb_cloud_storage_uri#54096 @lance6716 - Fix the issue that the Sync Load QPS monitoring metric is incorrect #53558 @hawkingrei
- Fix the issue that some statistics information might be missed when loading initial statistics concurrently #53607 @hawkingrei
- Fix the issue of reusing wrong point get plans for
SELECT ... FOR UPDATE#54652 @qw4990
TiKV
- Fix the issue that CDC and log-backup do not limit the timeout of
check_leaderusing theadvance-ts-intervalconfiguration, causing theresolved_tslag to be too large when TiKV restarts normally in some cases #17107 @MyonKeminta - Fix the issue that setting the gRPC message compression method via
grpc-compression-typedoes not take effect on messages sent from TiKV to TiDB #17176 @ekexium - Fix the failure of
make dockerandmake docker_test#17075 @shunki-fujita - Fix the issue that the gRPC request sources duration metric is displayed incorrectly in the monitoring dashboard #17133 @King-Dylan
- Fix the issue that the output of the
raft regioncommand in tikv-ctl does not include the Region status information #17037 @glorv - Fix the issue that changing the
raftstore.periodic-full-compact-start-timesconfiguration item online might cause TiKV to panic #17066 @SpadeA-Tang - Fix the issue that TiKV might repeatedly panic when applying a corrupted Raft data snapshot #15292 @LykxSassinator
- Fix the issue that releasing cache entries before they are persisted causes TiKV to panic #17040 @glorv
- Fix the issue that CDC and log-backup do not limit the timeout of
PD
- Fix the issue that an incorrect PD API is called when you retrieve table attributes #55188 @JmPotato
- Fix the issue that the time data type in the
INFORMATION_SCHEMA.RUNAWAY_WATCHEStable is incorrect #54770 @HuSharp - Fix the issue that some logs are not redacted #8419 @rleungx
- Fix the issue of missing data in the
Filtermonitoring metric #8098 @nolouch - Fix the issue that the HTTP client might panic when TLS is enabled #8237 @okJiang
- Fix the issue that the encryption manager is not initialized before use #8384 @rleungx
- Fix the issue that resource groups could not effectively limit resource usage under high concurrency #8435 @nolouch
- Fix the data race issue related to
store limit#8253 @lhy1024 - Fix the issue that the scaling progress is displayed incorrectly after the
schedulingmicroservice is enabled #8331 @rleungx - Fix the issue that the TSO node is not dynamically updated after the
tsomicroservice is enabled #8154 @rleungx - Fix the data race issue of resource groups #8267 @HuSharp
- Fix the issue that a resource group encounters quota limits when requesting tokens for more than 500 ms #8349 @nolouch
- Fix the issue that manually transferring the PD leader might fail #8225 @HuSharp
- Fix the issue that deleted nodes still appear in the candidate connection list in etcd client #8286 @JmPotato
- Fix the issue that
ALTER PLACEMENT POLICYcannot modify the placement policy #52257 #51712 @jiyfhust - Fix the issue that the scheduling of write hotspots might break placement policy constraints #7848 @lhy1024
- Fix the issue that down peers might not recover when using Placement Rules #7808 @rleungx
- Fix the issue that a large number of retries occur when canceling resource groups queries #8217 @nolouch
- Fix the data race issue that PD encounters during operator checks #8263 @lhy1024
- Fix the issue that no error is reported when binding a role to a resource group #54417 @JmPotato
- Fix the issue that setting the TiKV configuration item
coprocessor.region-split-sizeto a value less than 1 MiB causes PD panic #8323 @JmPotato
TiFlash
- Fix the issue that a network partition (network disconnection) between TiFlash and any PD might cause read request timeout errors #9243 @Lloyd-Pottiger
- Fix the issue that the
SUBSTRING_INDEX()function might cause TiFlash to crash in some corner cases #9116 @wshwsh12 - Fix the issue that a large number of duplicate rows might be read in FastScan mode after importing data via BR or TiDB Lightning #9118 @JinheLin
- Fix the issue that TiFlash might panic when a database is deleted shortly after creation #9266 @JaySon-Huang
- Fix the issue that setting the SSL certificate configuration to an empty string in TiFlash incorrectly enables TLS and causes TiFlash to fail to start #9235 @JaySon-Huang
- Fix the issue that in the disaggregated storage and compute architecture, null values might be incorrectly returned in queries after adding non-null columns in DDL operations #9084 @Lloyd-Pottiger
- Fix the issue that TiFlash might panic after executing
RENAME TABLE ... TO ...on a partitioned table with empty partitions across databases #9132 @JaySon-Huang - Fix the issue of query timeout when executing queries on partitioned tables that contain empty partitions #9024 @JinheLin
- Fix the issue that some queries might report a column type mismatch error after late materialization is enabled #9175 @JinheLin
- Fix the issue that queries with virtual generated columns might return incorrect results after late materialization is enabled #9188 @JinheLin
Tools
Backup & Restore (BR)
- Fix the issue that the backup performance during checkpoint backups is affected due to interruptions in seeking Region leaders #17168 @Leavrth
- Fix the inefficiency issue in scanning DDL jobs during incremental backups #54139 @3pointer
- Fix the issue that BR fails to correctly identify errors due to multiple nested retries during the restore process #54053 @RidRisR
- Fix the issue that BR fails to restore a transactional KV cluster due to an empty
EndKey#52574 @3pointer - Fix the issue that log backup might be paused after the advancer owner migration #53561 @RidRisR
- Fix the issue that DDLs requiring backfilling, such as
ADD INDEXandMODIFY COLUMN, might not be correctly recovered during incremental restore #54426 @3pointer - Fix the issue that a PD connection failure could cause the TiDB instance where the log backup advancer owner is located to panic #52597 @YuJuncen
TiCDC
- Fix the issue that Region changes cause downstream panic #17233 @hicqu
- Fix the issue that TiCDC fails to decode primary keys in clustered index tables correctly when the new collation is disabled in the upstream #11371 @lidezhu
- Fix the issue that the checksum is not correctly set to
0after splittingUPDATEevents #11402 @3AceShowHand - Fix the issue that data inconsistency might occur when restarting Changefeed repeatedly when performing a large number of
UPDATEoperations in a multi-node environment #11219 @lidezhu - Fix the issue that the Processor module might get stuck when the downstream Kafka is inaccessible #11340 @asddongmen
TiDB Data Migration (DM)
- Fix the issue that
SETstatements cause DM to panic during the migration of MariaDB data #10206 @dveeden - Fix the connection blocking issue by upgrading
go-mysql#11041 @D3Hunter - Fix the issue that data replication is interrupted when the index length exceeds the default value of
max-index-length#11459 @michaelmdeng - Fix the issue that schema tracker incorrectly handles LIST partition tables, causing DM errors #11408 @lance6716
- Fix the issue that
TiDB Lightning
Dumpling
TiDB Binlog