TiDB 2.1 Beta Release Notes
On June 29, 2018, TiDB 2.1 Beta is released! Compared with TiDB 2.0, this release has great improvement in stability, SQL optimizer, statistics information, and execution engine.
TiDB
- SQL Optimizer
- Optimize the selection range of
Index Jointo improve the execution performance - Optimize correlated subquery, push down
Filter, and extend the index range, to improve the efficiency of some queries by orders of magnitude - Support
Index HintandJoin Hintin theUPDATEandDELETEstatements - Validate Hint
TIDM_SMJwhen no available index exists - Support pushdown of the
ABS,CEIL,FLOOR,IS TRUE, andIS FALSEfunctions - Handle the
IFandIFNULLfunctions especially in the constant folding process
- Optimize the selection range of
- SQL Execution Engine
- Implement parallel
Hash Aggregateoperators and improve the computing performance ofHash Aggregateby 350% in some scenarios - Implement parallel
Projectoperators and improve the performance by 74% in some scenarios - Read the data of the
Innertable andOutertable ofHash Joinconcurrently to improve the execution performance - Fix incorrect results of
INSERT … ON DUPLICATE KEY UPDATE …in some scenarios - Fix incorrect results of the
CONCAT_WS,FLOOR,CEIL, andDIVbuilt-in functions
- Implement parallel
- Server
- Add the HTTP API to scatter the distribution of table Regions in the TiKV cluster
- Add the
auto_analyze_ratiosystem variable to control the threshold value of automaticAnalyze - Add the HTTP API to control whether to open the general log
- Add the HTTP API to modify the log level online
- Add the user information in the general log and the slow query log
- Support the server side cursor
- Compatibility
- Support more MySQL syntax
- Make the
bitaggregate function support theALLparameter - Support the
SHOW PRIVILEGESstatement
- DML
- Decrease the memory usage of the
INSERT INTO SELECTstatement - Fix the performance issue of
PlanCache - Add the
tidb_retry_limitsystem variable to control the automatic retry times of transactions - Add the
tidb_disable_txn_auto_retrysystem variable to control whether the transaction tries automatically - Fix the accuracy issue of the written data of the
timetype - Support the queue of locally conflicted transactions to optimize the conflicted transaction performance
- Fix
Affected Rowsof theUPDATEstatement - Optimize the statement performance of
insert ignore on duplicate key update
- Decrease the memory usage of the
- DDL
- Optimize the execution speed of the
CreateTablestatement - Optimize the execution speed of
ADD INDEXand improve it greatly in some scenarios - Fix the issue that the number of added columns by
Alter table add columnexceeds the limit of the number of table columns - Fix the issue that DDL job retries lead to an increasing pressure on TiKV in abnormal conditions
- Fix the issue that TiDB continuously reloads the schema information in abnormal conditions
- Do not output the
FOREIGN KEYrelated information in the result ofSHOW CREATE TABLE - Support the
select tidb_is_ddl_owner()statement to facilitate judging whether TiDB isDDL Owner - Fix the issue that the index is deleted in the
Yeartype in some scenarios - Fix the renaming table issue in the concurrent execution scenario
- Support the
AlterTableForcesyntax - Support the
AlterTableRenameIndexsyntax withFromKeyandToKey - Add the table name and database name in the output information of
admin show ddl jobs
- Optimize the execution speed of the
PD
- Enable Raft PreVote between PD nodes to avoid leader reelection when network recovers after network isolation
- Optimize the issue that Balance Scheduler schedules small Regions frequently
- Optimize the hotspot scheduler to improve its adaptability in traffic statistics information jitters
- Skip the Regions with a large number of rows when scheduling
region merge - Enable
raft learnerby default to lower the risk of unavailable data caused by machine failure during scheduling - Remove
max-replicafrompd-recover - Add
Filtermetrics - Fix the issue that Region information is not updated after tikv-ctl unsafe recovery
- Fix the issue that TiKV disk space is used up caused by replica migration in some scenarios
- Compatibility notes
- Do not support rolling back to v2.0.x or earlier due to update of the new version storage engine
- Enable
raft learnerby default in the new version of PD. If the cluster is upgraded from 1.x to 2.1, the machine should be stopped before upgrade or a rolling update should be first applied to TiKV and then PD
TiKV
- Upgrade Rust to the
nightly-2018-06-14version - Enable
Raft PreVoteto avoid leader reelection generated when network recovers after network isolation - Add a metric to display the number of files and
ingestrelated information in each layer of RocksDB - Print
keywith too many versions when GC works - Use
static metricto optimize multi-label metric performance (YCSBraw getis improved by 3%) - Remove
boxin multiple modules and use patterns to improve the operating performance (YCSBraw getis improved by 3%) - Use
asynchronous logto improve the performance of writing logs - Add a metric to collect the thread status
- Decease memory copy times by decreasing
boxused in the application to improve the performance