|
| 1 | +--- |
| 2 | +title: TiDB 2.1 Beta Release Notes |
| 3 | +category: Releases |
| 4 | +--- |
| 5 | + |
| 6 | +# TiDB 2.1 Beta Release Notes |
| 7 | + |
| 8 | +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. |
| 9 | + |
| 10 | +## TiDB |
| 11 | + |
| 12 | +- SQL Optimizer |
| 13 | + - Optimize the selection range of `Index Join` to improve the execution performance |
| 14 | + - Optimize correlated subquery, push down `Filter`, and extend the index range, to improve the efficiency of some queries by orders of magnitude |
| 15 | + - Support `Index Hint` and `Join Hint` in the `UPDATE` and `DELETE` statements |
| 16 | + - Validate Hint `TIDM_SMJ` when no available index exists |
| 17 | + - Support pushdown of the `ABS`, `CEIL`, `FLOOR`, `IS TRUE`, and `IS FALSE` functions |
| 18 | + - Handle the `IF` and `IFNULL` functions especially in the constant folding process |
| 19 | +- SQL Execution Engine |
| 20 | + - Implement parallel `Hash Aggregate` operators and improve the computing performance of `Hash Aggregate` by 350% in some scenarios |
| 21 | + - Implement parallel `Project` operators and improve the performance by 74% in some scenarios |
| 22 | + - Read the data of the `Inner` table and `Outer` table of `Hash Join` concurrently to improve the execution performance |
| 23 | + - Fix incorrect results of `INSERT … ON DUPLICATE KEY UPDATE …` in some scenarios |
| 24 | + - Fix incorrect results of the `CONCAT_WS`, `FLOOR`, `CEIL`, and `DIV` built-in functions |
| 25 | +- Server |
| 26 | + - Add the HTTP API to scatter the distribution of table Regions in the TiKV cluster |
| 27 | + - Add the `auto_analyze_ratio` system variable to control the threshold value of automatic `Analyze` |
| 28 | + - Add the HTTP API to control whether to open the general log |
| 29 | + - Add the HTTP API to modify the log level online |
| 30 | + - Add the user information in the general log and the slow query log |
| 31 | + - Support the server side cursor |
| 32 | +- Compatibility |
| 33 | + - Support more MySQL syntax |
| 34 | + - Make the `bit` aggregate function support the `ALL` parameter |
| 35 | + - Support the `SHOW PRIVILEGES` statement |
| 36 | +- DML |
| 37 | + - Decrease the memory usage of the `INSERT INTO SELECT` statement |
| 38 | + - Fix the performance issue of `PlanCache` |
| 39 | + - Add the `tidb_retry_limit` system variable to control the automatic retry times of transactions |
| 40 | + - Add the `tidb_disable_txn_auto_retry` system variable to control whether the transaction tries automatically |
| 41 | + - Fix the accuracy issue of the written data of the `time` type |
| 42 | + - Support the queue of locally conflicted transactions to optimize the conflicted transaction performance |
| 43 | + - Fix `Affected Rows` of the `UPDATE` statement |
| 44 | + - Optimize the statement performance of `insert ignore on duplicate key update` |
| 45 | +- DDL |
| 46 | + - Optimize the execution speed of the `CreateTable` statement |
| 47 | + - Optimize the execution speed of `ADD INDEX` and improve it greatly in some scenarios |
| 48 | + - Fix the issue that the number of added columns by `Alter table add column` exceeds the limit of the number of table columns |
| 49 | + - Fix the issue that DDL job retries lead to an increasing pressure on TiKV in abnormal conditions |
| 50 | + - Fix the issue that TiDB continuously reloads the schema information in abnormal conditions |
| 51 | + - Do not output the `FOREIGN KEY` related information in the result of `SHOW CREATE TABLE` |
| 52 | + - Support the `select tidb_is_ddl_owner()` statement to facilitate judging whether TiDB is `DDL Owner` |
| 53 | + - Fix the issue that the index is deleted in the `Year` type in some scenarios |
| 54 | + - Fix the renaming table issue in the concurrent execution scenario |
| 55 | + - Support the `AlterTableForce` syntax |
| 56 | + - Support the `AlterTableRenameIndex` syntax with `FromKey` and `ToKey` |
| 57 | + - Add the table name and database name in the output information of `admin show ddl jobs` |
| 58 | + |
| 59 | +## PD |
| 60 | + |
| 61 | +- Enable Raft PreVote between PD nodes to avoid leader reelection when network recovers after network isolation |
| 62 | +- Optimize the issue that Balance Scheduler schedules small Regions frequently |
| 63 | +- Optimize the hotspot scheduler to improve its adaptability in traffic statistics information jitters |
| 64 | +- Skip the Regions with a large number of rows when scheduling `region merge` |
| 65 | +- Enable `raft learner` by default to lower the risk of unavailable data caused by machine failure during scheduling |
| 66 | +- Remove `max-replica` from `pd-recover` |
| 67 | +- Add `Filter` metrics |
| 68 | +- Fix the issue that Region information is not updated after tikv-ctl unsafe recovery |
| 69 | +- Fix the issue that TiKV disk space is used up caused by replica migration in some scenarios |
| 70 | +- Compatibility notes |
| 71 | + - Do not support rolling back to v2.0.x or earlier due to update of the new version storage engine |
| 72 | + - 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 |
| 73 | + |
| 74 | + |
| 75 | +## TiKV |
| 76 | + |
| 77 | +- Upgrade Rust to the `nightly-2018-06-14` version |
| 78 | +- Enable `Raft PreVote` to avoid leader reelection generated when network recovers after network isolation |
| 79 | +- Add a metric to display the number of files and `ingest` related information in each layer of RocksDB |
| 80 | +- Print `key` with too many versions when GC works |
| 81 | +- Use `static metric` to optimize multi-label metric performance (YCSB `raw get` is improved by 3%) |
| 82 | +- Remove `box` in multiple modules and use patterns to improve the operating performance (YCSB `raw get` is improved by 3%) |
| 83 | +- Use `asynchronous log` to improve the performance of writing logs |
| 84 | +- Add a metric to collect the thread status |
| 85 | +- Decease memory copy times by decreasing `box` used in the application to improve the performance |
0 commit comments