TiDB 3.0.0-rc.3 Release Notes

Release date: June 21, 2019

TiDB version: 3.0.0-rc.3

TiDB Ansible version: 3.0.0-rc.3

Overview

On June 21, 2019, TiDB 3.0.0-rc.3 is released. The corresponding TiDB Ansible version is 3.0.0-rc.3. Compared with TiDB 3.0.0-rc.2, this release has greatly improved the stability, usability, features, the SQL optimizer, statistics, and the execution engine.

TiDB

  • SQL Optimizer

    • Remove the feature of collecting virtual generated column statistics #10629
    • Fix the issue that the primary key constant overflows during point queries #10699
    • Fix the issue that using uninitialized information in fast analyze causes panic #10691
    • Fix the issue that executing the create view statement using prepare causes panic because of wrong column information #10713
    • Fix the issue that the column information is not cloned when handling window functions #10720
    • Fix the wrong estimation for the selectivity rate of the inner table selection in index join #10854
    • Support automatic loading statistics when the stats-lease variable value is 0 #10811
  • Execution Engine

    • Fix the issue that resources are not correctly released when calling the Close function in StreamAggExec #10636
    • Fix the issue that the order of table_option and partition_options is incorrect in the result of executing the show create table statement for partitioned tables #10689
    • Improve the performance of admin show ddl jobs by supporting scanning data in reverse order #10687
    • Fix the issue that the result of the show grants statement in RBAC is incompatible with that of MySQL when this statement has the current_user field #10684
    • Fix the issue that UUIDs might generate duplicate values on multiple nodes #10712
    • Fix the issue that the show view privilege is not considered in explain #10635
    • Add the split table region statement to manually split the table Region to alleviate the hotspot issue #10765
    • Add the split index region statement to manually split the index Region to alleviate the hotspot issue #10764
    • Fix the incorrect execution issue when you execute multiple statements such as create user, grant, or revoke consecutively #10737
    • Add a blacklist to prohibit pushing down expressions to Coprocessor #10791
    • Add the feature of printing the expensive query log when a query exceeds the memory configuration limit #10849
    • Add the bind-info-lease configuration item to control the update time of the modified binding execution plan #10727
    • Fix the OOM issue in high concurrent scenarios caused by the failure to quickly release Coprocessor resources, resulted from the execdetails.ExecDetails pointer #10832
    • Fix the panic issue caused by the kill statement in some cases #10876
  • Server

    • Fix the issue that goroutine might leak when repairing GC #10683
    • Support displaying the host information in slow queries #10693
    • Support reusing idle links that interact with TiKV #10632
    • Fix the support for enabling the skip-grant-table option in RBAC #10738
    • Fix the issue that pessimistic-txn configuration goes invalid #10825
    • Fix the issue that the actively canceled ticlient requests are still retried #10850
    • Improve performance in the case where pessimistic transactions conflict with optimistic transactions #10881
  • DDL

    • Fix the issue that modifying charset using alter table causes the blob type change #10698
    • Add a feature to use SHARD_ROW_ID_BITS to scatter row IDs when the column contains an AUTO_INCREMENT attribute to alleviate the hotspot issue #10794
    • Prohibit adding stored generated columns by using the alter table statement #10808
    • Optimize the invalid survival time of DDL metadata to shorten the period during which the DDL operation is slower after cluster upgrade #10795

PD

  • Add the enable-two-way-merge configuration item to allow only one-way merging #1583
  • Add scheduling operations for AddLightLearner and AddLightPeer to make Region Scatter scheduling unrestricted by the limit mechanism #1563
  • Fix the issue of insufficient reliability because the data might only have one replica replication when the system is started #1581
  • Optimize configuration check logic to avoid configuration item errors #1585
  • Adjust the definition of the store-balance-rate configuration to the upper limit of the number of balance operators generated per minute #1591
  • Fix the issue that the store might have been unable to generate scheduled operations #1590

TiKV

  • Engine

    • Fix the issue that incomplete snapshots are generated in the system caused by the iterator not checking the status #4936
    • Fix the data loss issue caused by a delay of flushing data to the disk when receiving snapshots after a power failure in abnormal conditions #4850
  • Server

    • Add a feature to check the validity of the block-size configuration #4928
    • Add READ_INDEX-related monitoring metrics #4830
    • Add GC worker-related monitoring metrics #4922
  • Raftstore

    • Fix the issue that the cache of the local reader is not cleared correctly #4778
    • Fix the issue that the request delay might be increased when transferring the leader and changing conf #4734
    • Fix the issue that a stale command is wrongly reported #4682
    • Fix the issue that the command might be pending for a long time #4810
    • Fix the issue that files are damaged after a power failure, which is caused by a delay of synchronizing the snapshot file to the disk #4807, #4850
  • Coprocessor

    • Support Top-N in vector calculation #4827
    • Support Stream aggregation in vector calculation #4786
    • Support the AVG aggregate function in vector calculation #4777
    • Support the First aggregate function in vector calculation #4771
    • Support the SUM aggregate function in vector calculation #4797
    • Support the MAX/MIN aggregate function in vector calculation #4837
    • Support the Like expression in vector calculation #4747
    • Support the MultiplyDecimal expression in vector calculation #4849
    • Support the BitAnd/BitOr/BitXor expression in vector calculation #4724
    • Support the UnaryNot expression in vector calculation #4808
  • Transaction

    • Fix the issue that an error occurs caused by non-pessimistic locking conflicts in pessimistic transactions #4801, #4883
    • Reduce unnecessary calculation for optimistic transactions after enabling pessimistic transactions to improve the performance #4813
    • Add a feature of single statement rollback to ensure that the whole transaction does not need a rollback operation in a deadlock situation #4848
    • Add pessimistic transaction-related monitoring items #4852
    • Support using the ResolveLockLite command to resolve lightweight locks to improve the performance when severe conflicts exist #4882
  • tikv-ctl

    • Add the bad-regions command to support checking more abnormal conditions #4862
    • Add a feature of forcely executing the tombstone command #4862
  • Misc

    • Add the dist_release compiling command #4841

Tools

  • TiDB Binlog
    • Fix the wrong offset issue caused by Pump not checking the returned value when it fails to write data #640
    • Add the advertise-addr configuration in Drainer to support the bridge mode in the container environment #634
    • Add the GetMvccByEncodeKey function in Pump to speed up querying the transaction status #632

TiDB Ansible

  • Add a monitoring item to predict the maximum QPS value of the cluster (“hide” by default) #f5cfa4d