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 = true
to 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
,\n
or\r\n
. Failure to specify a line terminator might result in an exception when parsing the CSV file data. #37338 @lance6716 - When using
IMPORT INTO
to import a CSV file, if you specify theSPLIT_FILE
parameter 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
,\n
or\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_spill
variable fromON
toOFF
to 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 ofON
after 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
TRUNCATE
orDROP
operation 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
EXPLAIN
statement supports applying thetidb_redact_log
setting and further optimizes the log handling logic. - Support applying the
tidb_redact_log
setting to the output ofEXPLAIN
statements 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 restore
subcommand, all otherbr log
subcommands support skipping the loading of the TiDBdomain
data 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_JOIN
cannot 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
PointGet
execution plans for_tidb_rowid
can 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
UPDATE
operation 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_bin
orutf8mb4_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 started
and a panic occurs #53540 @MyonKeminta - Fix the issue that
PREPARE
/EXECUTE
statements with theCONV
expression 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 ERRORS
statement with a predicate that is alwaystrue
#46962 @elsa0520 - Fix the issue that the
STATE
field in theINFORMATION_SCHEMA.TIDB_TRX
table is empty due to thesize
of theSTATE
field 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_count
information in GlobalStats might be incorrect #53752 @hawkingrei - Fix the issue that the
tidb_enable_async_merge_global_stats
andtidb_analyze_partition_concurrency
system 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 ismonth
and 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
final
AggMode and thenon-final
AggMode 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
memTracker
not being detached when theHashJoin
orIndexLookUp
operator is the driven side sub-node of theApply
operator #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_quota
hint 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 VIEW
concurrently might result in thetable doesn't exist
error #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 OUTFILE
does not work when clustered indexes are used as predicates #42093 @qw4990 - Fix the issue that comparing a column of
YEAR
type 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_socket
authentication plugin #54031 @lcwangchao - Fix the issue that when queries contain non-correlated subqueries and
LIMIT
clauses, 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-length
causes 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 dereference
error #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
Longlong
type in predicates #45783 @hawkingrei - Fix the issue that indirect placeholder
?
references in aGROUP BY
statement 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 JOBS
reports an errorUnknown column 'summary'
after upgrading from v7.1 #54241 @tangenta - Fix the issue that
root
user 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.columns
returns 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 entry
error 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_leader
using theadvance-ts-interval
configuration, causing theresolved_ts
lag 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-type
does not take effect on messages sent from TiKV to TiDB #17176 @ekexium - Fix the failure of
make docker
andmake 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 region
command in tikv-ctl does not include the Region status information #17037 @glorv - Fix the issue that changing the
raftstore.periodic-full-compact-start-times
configuration 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_WATCHES
table is incorrect #54770 @HuSharp - Fix the issue that some logs are not redacted #8419 @rleungx
- Fix the issue of missing data in the
Filter
monitoring 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
scheduling
microservice is enabled #8331 @rleungx - Fix the issue that the TSO node is not dynamically updated after the
tso
microservice 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 POLICY
cannot 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-size
to 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 INDEX
andMODIFY 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
0
after splittingUPDATE
events #11402 @3AceShowHand - Fix the issue that data inconsistency might occur when restarting Changefeed repeatedly when performing a large number of
UPDATE
operations 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
SET
statements 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