| title | aliases | summary | ||
|---|---|---|---|---|
TiDB 3.0.4 Release Notes |
|
TiDB 3.0.4 was released on October 8, 2019, with new features including system table for troubleshooting SQL performance issues, improvements in split performance and reverse scan, and fixed issues related to slow query logs and data replication. The release also includes contributions from the community and updates to TiDB, TiKV, PD, and TiDB Ansible. |
Release date: October 8, 2019
TiDB version: 3.0.4
TiDB Ansible version: 3.0.4
-
New features
- Add the
performance_schema.events_statements_summary_by_digestsystem table to troubleshoot performance issues at the SQL level - Add the
WHEREclause in TiDB'sSHOW TABLE REGIONSsyntax - Add the
worker-countandtxn-batchconfiguration items in Reparo to control the recovery speed
- Add the
-
Improvements
- Support batch Region split command and empty split command in TiKV to improve split performance
- Support double linked list for RocksDB in TiKV to improve performance of reverse scan
- Add two perf tools
iosnoopandfuncslowerin TiDB Ansible to better diagnose the cluster state - Optimize the output of slow query logs in TiDB by deleting redundant fields
-
Changed behaviors
- Update the default value of
txn-local-latches.enabletofalseto disable the default behavior of checking conflicts of local transactions in TiDB - Add the
tidb_txn_modesystem variable of global scope in TiDB and allow using the pessimistic lock; note that TiDB still adopts the optimistic lock by default - Replace the
Index_idsfield in TiDB slow query logs withIndex_namesto improve the usability of slow query logs - Add the
split-region-max-numparameter in the TiDB configuration file to modify the maximum number of Regions allowed in theSPLIT TABLEsyntax - Return the
Out Of Memory Quotaerror instead of disconnecting the link when a SQL execution exceeds the memory limit - Disallow dropping the
AUTO_INCREMENTattribute of columns in TiDB to avoid misoperations. To drop this attribute, change thetidb_allow_remove_auto_incsystem variable
- Update the default value of
-
Fixed issues
- Fix the issue that the uncommented TiDB-specific syntax
PRE_SPLIT_REGIONSmight cause errors in the downstream database during data replication - Fix the issue in TiDB that the slow query logs are incorrect when getting the result of
PREPARE+EXECUTEby using the cursor - Fix the issue in PD that adjacent small Regions cannot be merged
- Fix the issue in TiKV that file descriptor leak in idle clusters might cause TiKV processes to exit abnormally when the processes run for a long time
- Fix the issue that the uncommented TiDB-specific syntax
-
Contributors
Our thanks go to the following contributors from the community for helping this release:
- SQL Optimizer
- Fix the issue that invalid query ranges might be resulted when split by feedback #12170
- Display the returned error of the
SHOW STATS_BUCKETSstatement in hexadecimal rather than return errors when the result contains invalid Keys #12094 - Fix the issue that when a query contains the
SLEEPfunction (for example,select 1 from (select sleep(1)) t;)), column pruning causes invalidsleep(1)during query #11953 - Use index scan to lower IO when a query only concerns the number of columns rather than the table data #12112
- Do not use any index when no index is specified in
use index()to be compatible with MySQL #12100 - Strictly limit the number of
TopNrecords in theCMSketchstatistics to fix the issue that theANALYZEstatement fails because the statement count exceeds TiDB's limit on the size of a transaction #11914 - Fix the error occurred when converting the subqueries contained in the
Updatestatement #12483 - Optimize execution performance of the
select ... limit ... offset ...statement by pushing the Limit operator down to theIndexLookUpReaderexecution logic #12378
- SQL Execution Engine
- Print the SQL statement in the log when the
PREPAREDstatement is incorrectly executed #12191 - Support partition pruning when the
UNIX_TIMESTAMPfunction is used to implement partitioning #12169 - Fix the issue that no error is reported when
AUTO_INCREMENTincorrectly allocatesMAX int64andMAX uint64#12162 - Add the
WHEREclause in theSHOW TABLE … REGIONSandSHOW TABLE .. INDEX … REGIONSsyntaxes #12123 - Return the
Out Of Memory Quotaerror instead of disconnecting the link when a SQL execution exceeds the memory limit #12127 - Fix the issue that incorrect result is returned when
JSON_UNQUOTEfunction handles JSON text #11955 - Fix the issue that
LAST INSERT IDis incorrect when assigning values to theAUTO_INCREMENTcolumn in the first row (for example,insert into t (pk, c) values (1, 2), (NULL, 3)) #12002 - Fix the issue that the
GROUPBYparsing rule is incorrect in thePREPAREstatement #12351 - Fix the issue that the privilege check is incorrect in the point queries #12340
- Fix the issue that the duration by
sql_typefor thePREPAREstatement is not shown in the monitoring record #12331 - Support using aliases for tables in the point queries (for example,
select * from t tmp where a = "aa") #12282 - Fix the error occurred when not handling negative values as unsigned when inserting negative numbers into BIT type columns #12423
- Fix the incorrectly rounding of time (for example,
2019-09-11 11:17:47.999999666should be rounded to2019-09-11 11:17:48.) #12258 - Refine the usage of expression blocklist (for example,
<is equivalent toIt.) #11975 - Add the database prefix to the message of non-existing function error (for example,
[expression:1305]FUNCTION test.std_samp does not exist) #12111
- Print the SQL statement in the log when the
- Server
- Add the
Prev_stmtfield in slow query logs to output the previous statement when the last statement isCOMMIT#12180 - Optimize the output of slow query logs by deleting redundant fields #12144
- Update the default value of
txn-local-latches.enabletofalseto disable the default behavior of checking conflicts of local transactions in TiDB #12095 - Replace the
Index_idsfield in TiDB slow query logs withIndex_namesto improve the usability of slow query logs #12061 - Add the
tidb_txn_modesystem variable of global scope in TiDB and allow using pessimistic lock #12049 - Add the
Backofffield in the slow query logs to record the Backoff information in the commit phase of 2PC #12335 - Fix the issue that the slow query logs are incorrect when getting the result of
PREPARE+EXECUTEby using the cursor (for example,PREPARE stmt1FROM SELECT * FROM t WHERE a > ?; EXECUTE stmt1 USING @variable) #12392 - Support
tidb_enable_stmt_summary. When this feature is enabled, TiDB counts the SQL statements and the result can be queried by using the system tableperformance_schema.events_statements_summary_by_digest#12308 - Adjust the level of some logs in tikv-client (for example, change the log level of
batchRecvLoop failsfromERRORtoINFO) #12383
- Add the
- DDL
- Add the
tidb_allow_remove_auto_incvariable. Dropping theAUTO INCREMENTattribute of the column is disabled by default #12145 - Fix the issue that the uncommented TiDB-specific syntax
PRE_SPLIT_REGIONSmight cause errors in the downstream database during data replication #12120 - Add the
split-region-max-numvariable in the configuration file so that the maximum allowable number of Regions is adjustable #12097 - Support splitting a Region into multiple Regions and fix the timeout issue during Region scatterings #12343
- Fix the issue that the
drop indexstatement fails when the index that contains anAUTO_INCREMENTcolumn referenced by two indexes #12344
- Add the
- Monitor
- Add the
connection_transient_failure_countmonitoring metrics to count the number of gRPC connection errors intikvclient#12093
- Add the
- Raftstore
- Server
- Fix the issue that the output format of the
-Vcommand is not consistent with the format of 2.X #5501 - Upgrade Titan to the latest version in the 3.0 branch #5517
- Upgrade grpcio to v0.4.5 #5523
- Fix the issue of gRPC coredump and support shared memory to avoid OOM #5524
- Fix the issue in TiKV that file descriptor leak in idle clusters might cause TiKV processes to exit abnormally when the processes run for a long time #5567
- Fix the issue that the output format of the
- Storage
- Fix the issue that adjacent small Regions cannot be merged #1726
- Fix the issue that the TLS enabling parameter in
pd-ctlis invalid #1738 - Fix the thread-safety issue that the PD operator is accidentally removed #1734
- Support TLS for Region syncer #1739
- TiDB Binlog
- TiDB Lightning
- Upgrade TiSpark to v2.2.0 #926
- Update the default value of the TiDB configuration item
pessimistic_txntotrue#933 - Add more system-level monitoring metrics to
node_exporter#938 - Add two perf tools
iosnoopandfuncslowerin TiDB Ansible to better diagnose the cluster state #946 - Replace the raw module to shell module to address the long waiting time in such situations as the password expires #949
- Update the default value of the TiDB configuration item
txn_local_latchestofalse - Optimize the monitoring metrics and alert rules of Grafana dashboard #962 #963 #969
- Check the configuration file before the deployment and upgrade #934 #972