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 Join
to 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 Hint
andJoin Hint
in theUPDATE
andDELETE
statements - Validate Hint
TIDM_SMJ
when no available index exists - Support pushdown of the
ABS
,CEIL
,FLOOR
,IS TRUE
, andIS FALSE
functions - Handle the
IF
andIFNULL
functions especially in the constant folding process
- Optimize the selection range of
- SQL Execution Engine
- Implement parallel
Hash Aggregate
operators and improve the computing performance ofHash Aggregate
by 350% in some scenarios - Implement parallel
Project
operators and improve the performance by 74% in some scenarios - Read the data of the
Inner
table andOuter
table ofHash Join
concurrently 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
, andDIV
built-in functions
- Implement parallel
- Server
- Add the HTTP API to scatter the distribution of table Regions in the TiKV cluster
- Add the
auto_analyze_ratio
system 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
bit
aggregate function support theALL
parameter - Support the
SHOW PRIVILEGES
statement
- DML
- Decrease the memory usage of the
INSERT INTO SELECT
statement - Fix the performance issue of
PlanCache
- Add the
tidb_retry_limit
system variable to control the automatic retry times of transactions - Add the
tidb_disable_txn_auto_retry
system variable to control whether the transaction tries automatically - Fix the accuracy issue of the written data of the
time
type - Support the queue of locally conflicted transactions to optimize the conflicted transaction performance
- Fix
Affected Rows
of theUPDATE
statement - Optimize the statement performance of
insert ignore on duplicate key update
- Decrease the memory usage of the
- DDL
- Optimize the execution speed of the
CreateTable
statement - Optimize the execution speed of
ADD INDEX
and improve it greatly in some scenarios - Fix the issue that the number of added columns by
Alter table add column
exceeds 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 KEY
related 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
Year
type in some scenarios - Fix the renaming table issue in the concurrent execution scenario
- Support the
AlterTableForce
syntax - Support the
AlterTableRenameIndex
syntax withFromKey
andToKey
- 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 learner
by default to lower the risk of unavailable data caused by machine failure during scheduling - Remove
max-replica
frompd-recover
- Add
Filter
metrics - 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 learner
by 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-14
version - Enable
Raft PreVote
to avoid leader reelection generated when network recovers after network isolation - Add a metric to display the number of files and
ingest
related information in each layer of RocksDB - Print
key
with too many versions when GC works - Use
static metric
to optimize multi-label metric performance (YCSBraw get
is improved by 3%) - Remove
box
in multiple modules and use patterns to improve the operating performance (YCSBraw get
is improved by 3%) - Use
asynchronous log
to improve the performance of writing logs - Add a metric to collect the thread status
- Decease memory copy times by decreasing
box
used in the application to improve the performance