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
/UPDATE
exceeds the limit specified by theMemQuotaQuery
configuration item. The actual behavior depends on theOOMAction
configuration. #14179 #14289 #14299 - Increase the accuracy of calculating the cost of
Index Join
by 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-storage
parameter (true
by 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-query
and the SQL containsHash Join
#11832 #11937 #12116 #12067 - Support using
create index
/alter table
to create expression index and usingdrop index
to drop expression index #14117 - Increase the default value of the
query-log-max-len
parameter to4096
to reduce the number of truncated SQL outputs. This parameter can be adjusted dynamically. #12491 - Support adding the
AutoRandom
keyword 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_INCREMENT
primary key #13127 - Support Table Locks #11038
- Support using the
LIKE
orWHERE
clause inADMIN SHOW DDL JOBS
for conditional filtering #12484 - Add the
TIDB_ROW_ID_SHARDING_INFO
column in theinformation_schema.tables
table to output theRowID
scattering information (for example, the value of theSHARD_ROW_ID_BITS
column in tableA
is"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 Error
type) - Convert a narrow data range of the discrete type into
point set
and use CM-Sketch to improve the estimation accuracy when estimating the number of rows #11524 - Extract the
TopN
information from CM-Sketch for normalAnalyze
and separately maintain the frequently occurring values #11409 - Support dynamically adjusting the depth and width of CM-Sketch and the number of
TopN
information #11278 - Support automatically capturing and evolving SQL Binding #13199 #12434
- Optimize the encoding format of communication with TiKV by using
Chunk
to 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 Binlog
interface 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/all
interface #13025 - Support the MySQL-compatible
Read Committed
transaction 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
IndexLookupJoin
and reduce memory consumption during execution by splittingIndexLookupJoin
intoIndexHashJoin
andIndexMergeJoin
#8861 #12139 #12349 #13238 #13451 #13714 - Fix several issues relating to RBAC #13896 #13820 #13940 #14090 #13940 #13014
- Fix the issue that
VIEW
cannot be created because theSELECT
statement containsunion
#12595 - Fix several issues relating to the
CAST
function - Output the detailed
backoff
information 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
EXPLAIN
and 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 DATA
based on the transaction size and support setting the transaction size by configuring thetidb_dml_batch_size
parameter #11132 - Optimize the performance of
LOAD DATA
by 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
CAST
function 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-52
or 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