TiDB 4.0 Beta Release Notes
Release date: January 17, 2020
TiDB version: 4.0.0-beta
TiDB Ansible version: 4.0.0-beta
TiDB
- Print the log or cancel the SQL execution when the memory used during the execution of
INSERT/REPLACE/DELETE/UPDATEexceeds the limit specified by theMemQuotaQueryconfiguration item. The actual behavior depends on theOOMActionconfiguration. #14179 #14289 #14299 - Increase the accuracy of calculating the cost of
Index Joinby considering the row counts of both driving tables and driven tables #12085 - Add 15 SQL hints to control the behavior of the optimizer and make the optimizer more stable
- Improve the performance when the columns involved in a query can be fully covered by indexes #12022
- Improve the performance of table query by supporting the Index Merge feature #10121 #10512 #11245 #12225 #12248 #12305 #12843
- Improve the performance of Range calculation and reduce the CPU overhead by caching index results and eliminating duplicate results #12856
- Decouple the level of slow logs from the level of ordinary logs #12359
- Add the
oom-use-tmp-storageparameter (trueby default) to control whether to use temporary files to cache intermediate results when the memory usage for the execution of a single SQL statement exceedsmem-quota-queryand the SQL containsHash Join#11832 #11937 #12116 #12067 - Support using
create index/alter tableto create expression index and usingdrop indexto drop expression index #14117 - Increase the default value of the
query-log-max-lenparameter to4096to reduce the number of truncated SQL outputs. This parameter can be adjusted dynamically. #12491 - Support adding the
AutoRandomkeyword in the column attribute to control whether the system automatically assigns a random integer to the primary key, which avoids the hotspot problem caused by theAUTO_INCREMENTprimary key #13127 - Support Table Locks #11038
- Support using the
LIKEorWHEREclause inADMIN SHOW DDL JOBSfor conditional filtering #12484 - Add the
TIDB_ROW_ID_SHARDING_INFOcolumn in theinformation_schema.tablestable to output theRowIDscattering information (for example, the value of theSHARD_ROW_ID_BITScolumn in tableAis"SHARD_BITS={bit_number}") #13418 - Optimize the error code of SQL error messages to avoid the situation that the
ERROR 1105 (HY000)code is used for multiple error messages (theUnknown Errortype) - Convert a narrow data range of the discrete type into
point setand use CM-Sketch to improve the estimation accuracy when estimating the number of rows #11524 - Extract the
TopNinformation from CM-Sketch for normalAnalyzeand separately maintain the frequently occurring values #11409 - Support dynamically adjusting the depth and width of CM-Sketch and the number of
TopNinformation #11278 - Support automatically capturing and evolving SQL Binding #13199 #12434
- Optimize the encoding format of communication with TiKV by using
Chunkto improve communication performance #12023 #12536 #12613 #12621 #12899 #13060 #13349 - Support the new row store format to improve the performance of the wide table #12634
- Optimize the
Recover Binloginterface to ensure waiting all transactions to be committed before returning to the client #13740 - Support querying the binlog statuses enabled by TiDB servers in the cluster through the HTTP
info/allinterface #13025 - Support the MySQL-compatible
Read Committedtransaction isolation level when using the pessimistic transaction mode #14087 - Support large-sized transactions. The transaction size is limited by the size of the physical memory.
- Improve the stability of
Kill#10841 - Support hexadecimal and binary expressions as separators in
LOAD DATA#11029 - Improve the performance of
IndexLookupJoinand reduce memory consumption during execution by splittingIndexLookupJoinintoIndexHashJoinandIndexMergeJoin#8861 #12139 #12349 #13238 #13451 #13714 - Fix several issues relating to RBAC #13896 #13820 #13940 #14090 #13940 #13014
- Fix the issue that
VIEWcannot be created because theSELECTstatement containsunion#12595 - Fix several issues relating to the
CASTfunction - Output the detailed
backoffinformation of TiKV RPC in the slow log to facilitate troubleshooting #13770 - Optimize and unify the format of the memory statistics in the expensive log #12809
- Optimize the explicit format of
EXPLAINand support outputting information about the operator's usage of memory and disk #13914 #13692 #13686 #11415 #13927 #13764 #13720 - Optimize the check for duplicate values in
LOAD DATAbased on the transaction size and support setting the transaction size by configuring thetidb_dml_batch_sizeparameter #11132 - Optimize the performance of
LOAD DATAby separating the data preparing routine and the commit routine and assigning the workload to different Workers #11533 #11284
TiKV
- Upgrade the RocksDB version to 6.4.6
- Fix the issue that the system cannot perform the compaction task normally when the disk space is used up by automatically creating a 2GB empty file when TiKV is started #6321
- Support quick backup and restoration
- Support reading data from Follower replicas
- Improve the performance of TiDB reading data through index #5682
- Fix the issue that the
CASTfunction behaves inconsistently in TiKV and in TiDB
PD
- Support optimizing hotspot scheduling according to the load information of storage nodes
- Add the Placement Rules feature that supports controlling the number of replicas of any data range, the storage location, the storage host type and roles by combining different scheduling rules
- Support using plugins (experimental) #1799
- Add the feature that the schedulers support the customized configuration and key ranges (experimental) #1735 #1783 #1791
- Support automatically adjusting the scheduling speed according the cluster load information (experimental, disabled by default) #1875 #1887 #1902
Tools
- TiDB Lightning
- Add the parameter in the command-line tool to set the password of the downstream database #253
TiDB Ansible
- Add checksum check in the package in case that the downloaded package is incomplete #1002
- Support checking the systemd version which must be
systemd-219-52or later #1020 #1074 - Fix the issue that the log directory is incorrectly created when TiDB Lightning is started #1103
- Fix the issue that the customized port of TiDB Lightning is invalid #1107
- Support deploying and maintaining TiFlash #1119