TiDB 4.0.14 Release Notes
Release date: July 27, 2021
TiDB version: 4.0.14
Compatibility changes
TiDB
- Change the default value of
tidb_multi_statement_mode
fromWARN
toOFF
in v4.0. It is recommended to use the multi-statement feature of your client library instead. See the documentation ontidb_multi_statement_mode
for details. #25749 - Upgrade Grafana dashboard from v6.1.16 to v7.5.7 to solve two security vulnerabilities. See the Grafana blog post for details.
- Change the default value of the
tidb_stmt_summary_max_stmt_count
variable from200
to3000
#25872
- Change the default value of
TiKV
- Change the default value of
merge-check-tick-interval
from10
to2
to speed up the Region merge process #9676
- Change the default value of
Feature enhancements
TiKV
TiDB Dashboard
- Support OIDC SSO. By setting the OIDC-compatible SSO services (such as Okta and Auth0), users can log into TiDB Dashboard without entering the SQL password. #960
- Add the Debug API UI, which is an alternative method to the command line to call several common TiDB and PD internal APIs for advanced debugging #927
Improvements
TiDB
- Change the
LOCK
record into thePUT
record for the index keys usingpoint get
orbatch point get
forUPDATE
reads #26223 - Support the MySQL system variable
init_connect
and its associated features #26031 - Support the stable result mode to make the query results more stable #26003
- Support pushing down the built-in function
json_unquote()
to TiKV #25721 - Make the SQL Plan Management (SPM) not affected by the character set #23295
- Change the
TiKV
- Shutdown the status server first to make sure that the client can correctly check the shutdown status #10504
- Always respond to stale peers to make sure that these peers are cleared quicker #10400
- Limit the TiCDC sink's memory consumption #10147
- When a Region is too large, use the even split to speed up the split process #10275
PD
TiDB Dashboard
Tools
Backup & Restore (BR)
- Speed up restore by merging small backup files #655
Dumpling
- Always split tables using
_tidb_rowid
when the upstream is a TiDB v3.x cluster, which helps reduce TiDB's memory usage #306
- Always split tables using
TiCDC
- Improve the error message returned when a PD endpoint misses the certificate #1973
- Make the sorter I/O errors more user-friendly #1976
- Add a concurrency limit on the Region incremental scan in the KV client to reduce the pressure of TiKV #1926
- Add metrics for the table memory consumption #1884
- Add
capture-session-ttl
to the TiCDC server configuration #2169
Bug fixes
TiDB
- Fix the issue that the
SELECT
result is incompatible with MySQL when joining a subquery with aWHERE
clause evaluated tofalse
#24865 - Fix the calculation error of the
ifnull
function that occurs when the argument is theENUM
orSET
type #24944 - Fix the wrong aggregate pruning in some cases #25202
- Fix the incorrect result of the merge join operation that might occur when the column is the
SET
type #25669 - Fix the issue that TiDB returns wrong results for cartesian join #25591
- Fix the panic issue that occurs when
SELECT ... FOR UPDATE
works on a join operation and the join uses a partitioned table #20028 - Fix the issue that the cached
prepared
plan is incorrectly used forpoint get
#24741 - Fix the issue that the
LOAD DATA
statement can abnormally import non-utf8 data #25979 - Fix a potential memory leak issue that occurs when accessing the statistics via an HTTP API #24650
- Fix a security issue that occurs when executing the
ALTER USER
statement #25225 - Fix a bug that the
TIKV_REGION_PEERS
table cannot correctly handle theDOWN
status #24879 - Fix the issue that invalid strings are not truncated when parsing
DateTime
#22231 - Fix the issue that the
select into outfile
statement might have no result when the column type isYEAR
#22159 - Fix the issue that the query result might be wrong when
NULL
is in theUNION
subquery #26532 - Fix the issue that the projection operator in execution might cause panic in some cases #26534
- Fix the issue that the
TiKV
- Fix the issue that the duration calculation might panic on certain platforms #related-issue
- Fix the wrong function that casts
DOUBLE
toDOUBLE
#25200 - Fix the issue that the panic log might be lost when using the async logger #8998
- Fix the panic issue that occurs when building a snapshot twice if encryption is enabled #9786 #10407
- Fix the wrong arguments type of the
json_unquote()
function in the coprocessor #10176 - Fix the issues of suspicious warnings during shutdown and the non-deterministic response from Raftstore #10353 #10307
- Fix the issue of backup threads leak #10287
- Fix the issue that Region split might panic and corrupt the metadata if the split process is too slow and Region merge is on-going #8456 #8783
- Fix the issue that the Region heartbeats prevent TiKV from splitting large Regions in some situations #10111
- Fix the wrong statistics caused by the format inconsistency of CM Sketch between TiKV and TiDB #25638
- Fix the wrong statistics of the
apply wait duration
metric #9893 - Fix the "Missing Blob" error after using
delete_files_in_range
in Titan #10232
PD
- Fix a bug that the scheduler might reappear after executing the delete operation #2572
- Fix the data race issue that might occur when the scheduler is started before the temporary configuration is loaded #3771
- Fix a PD panic issue that might occur during the Region scattering operation #3761
- Fix the issue that the priority of some operators is not set correctly #3703
- Fix a PD panic issue that might occur when deleting the
evict-leader
scheduler from a non-existent store #3660 - Fix the issue that the PD Leader re-election is slow when there are many stores #3697
TiDB Dashboard
TiFlash
- Fix the potential panic issue that occurs when compiling DAG requests
- Fix the panic issue that occurs when the read load is heavy
- Fix the issue that TiFlash keeps restarting because of the split failure in column storage
- Fix a potential bug that TiFlash cannot delete the delta data
- Fix the incorrect results that occur when cloning the shared delta index concurrently
- Fix a bug that TiFlash fails to restart in the case of incomplete data
- Fix the issue that the old dm files cannot be removed automatically
- Fix the panic issue that occurs when executing the
SUBSTRING
function with specific arguments - Fix the issue of incorrect results when casting the
INTEGER
type to theTIME
type
Tools
Backup & Restore (BR)
- Fix the issue that the data restore from the
mysql
schema might fail #1142
- Fix the issue that the data restore from the
TiDB Lightning
- Fix the issue that TiDB Lightning fails to parse the
DECIMAL
type data in Parquet files #1276 - Fix the EOF error reported when TiDB Lightning splits the imported large CSV files #1133
- Fix a bug that an excessively large base value is generated when TiDB Lightning imports tables with the
auto_increment
column of theFLOAT
orDOUBLE
type #1185 - Fix the issue of TiDB Lightning panic that occurs when generating KV data larger than 4 GB #1128
- Fix the issue that TiDB Lightning fails to parse the
Dumpling
- When using Dumpling to export data to the S3 storage, the
s3:ListBucket
permission is no longer required on the entire bucket. The permission is required only on the data source prefix. #898
- When using Dumpling to export data to the S3 storage, the
TiCDC
- Fix the issue of extra partition dispatching after adding new table partitions #2205
- Fix the panic issue that occurs when TiCDC fails to read
/proc/meminfo
#2023 - Reduce TiCDC's runtime memory consumption #2011 #1957
- Fix a bug that some MySQL connection might leak after MySQL sink meets the error and pauses #1945
- Fix the issue that TiCDC changefeed cannot be created when start TS is less than current TS minus GC TTL #1839
- Reduce memory
malloc
in sort heap to avoid too much CPU overhead #1853 - Fix a bug that the replication task might stop when moving a table #1827