TiDB 7.1.4 Release Notes
Release date: March 11, 2024
TiDB version: 7.1.4
Quick access: Quick start | Production deployment
Compatibility changes
- To reduce the overhead of log printing, TiFlash changes the default value of
logger.levelfrom"debug"to"info"#8641 @JaySon-Huang - Introduce the TiKV configuration item
gc.num-threadsto set the number of GC threads whenenable-compaction-filterisfalse#16101 @tonyxuqqi
Improvements
TiDB
- Enhance the ability to convert
OUTER JOINtoINNER JOINin specific scenarios #49616 @qw4990 - When
force-init-statsis set totrue, TiDB waits for statistics initialization to finish before providing services during TiDB startup. This setting no longer blocks the startup of HTTP servers, which enables users to continue monitoring #50854 @hawkingrei
- Enhance the ability to convert
TiKV
PD
TiFlash
- Reduce the impact of background GC tasks on read and write task latency #8650 @JaySon-Huang
- Reduce the impact of disk performance jitter on read latency #8583 @JaySon-Huang
Tools
Backup & Restore (BR)
- Support creating databases in batch during data restore #50767 @Leavrth
- Improve the table creation performance of the
RESTOREstatement in scenarios with large datasets #48301 @Leavrth - Improve the speed of merging SST files during data restore by using a more efficient algorithm #50613 @Leavrth
- Support ingesting SST files in batch during data restore #16267 @3pointer
- Print the information of the slowest Region that affects global checkpoint advancement in logs and metrics during log backups #51046 @YuJuncen
- Remove an outdated compatibility check when using Google Cloud Storage (GCS) as the external storage #50533 @lance6716
- Implement a lock mechanism to avoid executing multiple log backup truncation tasks (
br log truncate) simultaneously #49414 @YuJuncen
TiCDC
- When the downstream is Kafka, the topic expression allows
schemato be optional and supports specifying a topic name directly #9763 @3AceShowHand - Support querying the downstream synchronization status of a changefeed, which helps you determine whether the upstream data changes received by TiCDC have been synchronized to the downstream system completely #10289 @hongyunyan
- Support searching TiCDC logs in the TiDB Dashboard #10263 @CharlesCheung96
- When the downstream is Kafka, the topic expression allows
TiDB Lightning
Bug fixes
TiDB
- Fix the issue that the
DELETEandUPDATEstatements using index lookup might report an error whentidb_multi_statement_modemode is enabled #50012 @tangenta - Fix the issue that CTE queries might report an error
type assertion for CTEStorageMap failedduring the retry process #46522 @tiancaiamao - Fix the issue of excessive statistical error in constructing statistics caused by Golang's implicit conversion algorithm #49801 @qw4990
- Fix the issue that errors might be returned during the concurrent merging of global statistics for partitioned tables #48713 @hawkingrei
- Fix the issue of wrong query results due to TiDB incorrectly eliminating constant values in
group by#38756 @hi-rustin - Fix the issue that
BITtype columns might cause query errors due to decode failures when they are involved in calculations of some functions #49566 #50850 #50855 @jiyfhust - Fix the issue that
LIMITin multi-level nestedUNIONqueries might become ineffective #49874 @Defined2014 - Fix the issue that the auto-increment ID allocation reports an error due to concurrent conflicts when using an auto-increment column with
AUTO_ID_CACHE=1#50519 @tiancaiamao - Fix the
Column ... in from clause is ambiguouserror that might occur when a query usesNATURAL JOIN#32044 @AilinKid - Fix the issue that enforced sorting might become ineffective when a query uses optimizer hints (such as
STREAM_AGG()) that enforce sorting and its execution plan containsIndexMerge#49605 @AilinKid - Fix the issue that query results are incorrect due to
STREAM_AGG()incorrectly handling CI #49902 @wshwsh12 - Fix the goroutine leak issue that might occur when the
HashJoinoperator fails to spill to disk #50841 @wshwsh12 - Fix the issue that hints cannot be used in
REPLACE INTOstatements #34325 @YangKeao - Fix the issue that executing queries containing the
GROUP_CONCAT(ORDER BY)syntax might return errors #49986 @AilinKid - Fix the issue that using a multi-valued index to access an empty JSON array might return incorrect results #50125 @YangKeao
- Fix the goroutine leak issue that occurs when the memory usage of CTE queries exceeds limits #50337 @guo-shaoge
- Fix the issue that using old interfaces might cause inconsistent metadata for tables #49751 @hawkingrei
- Fix the issue that executing
UNIQUEindex lookup with anORDER BYclause might cause an error #49920 @jackysp - Fix the issue that common hints do not take effect in
UNION ALLstatements #50068 @hawkingrei - Fix the issue that a query containing the IndexHashJoin operator gets stuck when memory exceeds
tidb_mem_quota_query#49033 @XuHuaiyu - Fix the issue that
UPDATEorDELETEstatements containingWITH RECURSIVECTEs might produce incorrect results #48969 @winoros - Fix the issue that histogram statistics might not be parsed into readable strings when the histogram boundary contains
NULL#49823 @AilinKid - Fix the issue that TiDB might panic when a query contains the Apply operator and the
fatal error: concurrent map writeserror occurs #50347 @SeaRise - Fix the
Can't find column ...error that might occur when aggregate functions are used for group calculations #50926 @qw4990 - Fix the issue that TiDB returns wrong query results when processing
ENUMorSETtypes by constant propagation #49440 @winoros - Fix the issue that the completion times of two DDL tasks with dependencies are incorrectly sequenced #49498 @tangenta
- Fix the issue that TiDB might panic when using the
EXECUTEstatement to executePREPARE STMTafter thetidb_enable_prepared_plan_cachesystem variable is enabled and then disabled #49344 @qw4990 - Fix the issue that
LIMITandOPRDERBYmight be invalid in nestedUNIONqueries #49377 @AilinKid - Fix the issue that the
LEADINGhint does not take effect inUNION ALLstatements #50067 @hawkingrei - Fix the issue that the
COMMITorROLLBACKoperation executed throughCOM_STMT_EXECUTEfails to terminate transactions that have timed out #49151 @zyguan - Fix the issue that illegal optimizer hints might cause valid hints to be ineffective #49308 @hawkingrei
- Fix the issue that Daylight Saving Time is displayed incorrectly in some time zones #49586 @overvenus
- Fix the issue that executing
SELECT INTO OUTFILEusing thePREPAREmethod incorrectly returns a success message instead of an error #49166 @qw4990 - Fix the issue that TiDB might panic when performing a rolling upgrade using
tiup cluster upgrade/startdue to an interaction issue with PD #50152 @zimulala - Fix the issue that the expected optimization does not take effect when adding an index to an empty table #49682 @zimulala
- Fix the issue that TiDB might OOM when a large number of tables or partitions are created #50077 @zimulala
- Fix the issue that adding an index might cause inconsistent index data when the network is unstable #49773 @tangenta
- Fix the execution order of DDL jobs to prevent TiCDC from receiving out-of-order DDLs #49498 @tangenta
- Fix the issue that the
tidb_gogc_tuner_thresholdsystem variable is not adjusted accordingly after thetidb_server_memory_limitvariable is modified #48180 @hawkingrei - Fix the issue that the query result of a range partitioned table is incorrect in some cases due to wrong partition pruning #50082 @Defined2014
- Fix the issue that DDL operations such as renaming tables are stuck when the
CREATE TABLEstatement contains specific partitions or constraints #50972 @lcwangchao - Fix the issue that getting the default value of a column returns an error if the column default value is dropped #50043 #51324 @crazycs520
- Fix the issue that the monitoring metric
tidb_statistics_auto_analyze_totalon Grafana is not displayed as an integer #51051 @hawkingrei - Fix the issue that the
tidb_merge_partition_stats_concurrencyvariable does not take effect whenauto analyzeis processing partitioned tables #47594 @hawkingrei - Fix the issue that the
index out of rangeerror might occur when a query involves JOIN operations #42588 @AilinKid - Fix the issue that wrong results might be returned when TiFlash late materialization processes associated columns #49241 #51204 @Lloyd-Pottiger
- Fix the issue that parallel
Applymight generate incorrect results when the table has a clustered index #51372 @guo-shaoge
- Fix the issue that the
TiKV
- Fix the issue that hibernated Regions are not promptly awakened in exceptional circumstances #16368 @LykxSassinator
- Fix the issue that the entire Region becomes unavailable when one replica is offline, by checking the last heartbeat time of all replicas of the Region before taking a node offline #16465 @tonyxuqqi
- Fix the issue that table properties stored in RocksDB might be inaccurate when Titan is enabled #16319 @hicqu
- Fix the issue that executing
tikv-ctl compact-clusterfails when a cluster has TiFlash nodes #16189 @frew - Fix the issue that TiKV might panic when gRPC threads are checking
is_shutdown#16236 @pingyu - Fix the issue that TiDB and TiKV might produce inconsistent results when processing
DECIMALarithmetic multiplication truncation #16268 @solotzg - Fix the issue that
cast_duration_as_timemight return incorrect results #16211 @gengliqi - Fix the issue that TiKV converts the time zone incorrectly for Brazil and Egypt #16220 @overvenus
- Fix the issue that JSON integers greater than the maximum
INT64value but less than the maximumUINT64value are parsed asFLOAT64by TiKV, resulting in inconsistency with TiDB #16512 @YangKeao
PD
- Fix the issue that slots are not fully deleted in a resource group client, which causes the number of the allocated tokens to be less than the specified value #7346 @guo-shaoge
- Fix the issue that some TSO logs do not print the error cause #7496 @CabinfeverB
- Fix the issue that the default resource group accumulates unnecessary tokens when
BURSTABLEis enabled #7206 @CabinfeverB - Fix the issue that there is no output when the
evict-leader-schedulerinterface is called #7672 @CabinfeverB - Fix the memory leak issue that occurs when
watch etcdis not turned off correctly #7807 @rleungx - Fix the issue that data race occurs when the
MergeLabelsfunction is called #7535 @lhy1024 - Fix the issue that TiDB Dashboard fails to get the TiKV profile when TLS is enabled #7561 @Connor1996
- Fix the issue that the orphan peer is deleted when the number of replicas does not meet the requirements #7584 @bufferflies
- Fix the issue that
available_storesis calculated incorrectly for clusters adopting the Data Replication Auto Synchronous (DR Auto-Sync) mode #7221 @disksing - Fix the issue that
canSyncandhasMajoritymight be calculated incorrectly for clusters adopting the Data Replication Auto Synchronous (DR Auto-Sync) mode when the configuration of Placement Rules is complex #7201 @disksing - Fix the issue that the primary AZ cannot add TiKV nodes when the secondary AZ is down for clusters adopting the Data Replication Auto Synchronous (DR Auto-Sync) mode #7218 @disksing
- Fix the issue that querying resource groups in batch might cause PD to panic #7206 @nolouch
- Fix the issue that querying a Region without a leader using
pd-ctlmight cause PD to panic #7630 @rleungx - Fix the issue that the PD monitoring item
learner-peer-countdoes not synchronize the old value after a leader switch #7728 @CabinfeverB - Fix the issue that PD cannot read resource limitations when it is started with
systemd#7628 @bufferflies
TiFlash
- Fix the issue that TiFlash might panic due to unstable network connections with PD during replica migration #8323 @JaySon-Huang
- Fix the issue that TiFlash incorrectly handles
ENUMwhen theENUMvalue is 0 #8311 @solotzg - Fix the random invalid memory access issue that might occur with
GREATESTorLEASTfunctions containing constant string parameters #8604 @windtalker - Fix the issue that the
lowerUTF8andupperUTF8functions do not allow characters in different cases to occupy different bytes #8484 @gengliqi - Fix the issue that short queries executed successfully print excessive info logs #8592 @windtalker
- Fix the issue that the memory usage increases significantly due to slow queries #8564 @JinheLin
- Fix the issue that TiFlash panics after executing
ALTER TABLE ... MODIFY COLUMN ... NOT NULL, which changes nullable columns to non-nullable #8419 @JaySon-Huang - Fix the issue that after terminating a query, TiFlash crashes due to concurrent data conflicts when a large number of tasks on TiFlash are canceled at the same time #7432 @SeaRise
- Fix the issue that TiFlash might crash during remote reads #8685 @zanmato1984
- Fix the issue that TiFlash Anti Semi Join might return incorrect results when the join includes non-equivalent conditions #8791 @windtalker
Tools
Backup & Restore (BR)
- Fix the issue that stopping a log backup task causes TiDB to crash #50839 @YuJuncen
- Fix the issue that data restore is slowed down due to absence of a leader on a TiKV node #50566 @Leavrth
- Fix the issue that log backup gets stuck after changing the TiKV IP address on the same node #50445 @3pointer
- Fix the issue that BR cannot retry when encountering an error while reading file content from S3 #49942 @Leavrth
- Fix the issue that the
Unsupported collationerror is reported when you restore data from backups of an old version #49466 @3pointer
TiCDC
- Fix the issue that the changefeed reports an error after
TRUNCATE PARTITIONis executed on the upstream table #10522 @sdojjy - Fix the issue that the changefeed
resolved tsdoes not advance in extreme cases #10157 @sdojjy - Fix the issue that the Syncpoint table might be incorrectly replicated #10576 @asddongmen
- Fix the issue that after filtering out
add table partitionevents is configured inignore-event, TiCDC does not replicate other types of DML changes for related partitions to the downstream #10524 @CharlesCheung96 - Fix the issue that the file sequence number generated by the storage service might not increment correctly when using the storage sink #10352 @CharlesCheung96
- Fix the issue that TiCDC returns the
ErrChangeFeedAlreadyExistserror when concurrently creating multiple changefeeds #10430 @CharlesCheung96 - Fix the issue that
snapshot lost caused by GCis not reported in time when resuming a changefeed and thecheckpoint-tsof the changefeed is smaller than the GC safepoint of TiDB #10463 @sdojjy - Fix the issue that TiCDC fails to validate
TIMESTAMPtype checksum due to time zone mismatch after data integrity validation for single-row data is enabled #10573 @3AceShowHand
- Fix the issue that the changefeed reports an error after
TiDB Data Migration (DM)
TiDB Lightning