TiDB 3.0.0-rc.1 リリースノート
リリース日:2019年5月10日
TiDB バージョン: 3.0.0-rc.1
TiDB Ansible バージョン: 3.0.0-rc.1
概要
2019 年 5 月 10 日に、TiDB 3.0.0-rc.1 がリリースされました。対応する TiDB Ansible バージョンは 3.0.0-rc.1 です。 TiDB 3.0.0-beta.1 と比較して、このリリースでは安定性、使いやすさ、機能、SQL オプティマイザー、統計、実行エンジンが大幅に向上しています。
TiDB
SQLオプティマイザー
- 列間の順序相関を使用してコスト見積もりの精度を向上させます。ヒューリスティック パラメーター
tidb_opt_correlation_exp_factor
を導入して、相関関係を推定に直接使用できない場合のシナリオでのインデックス スキャンの優先順位を制御します。 #9839 - フィルタ#10053に該当する列がある場合、複合インデックスのアクセス条件を抽出する際に、より多くのインデックスの接頭列と一致します。
- 動的プログラミング アルゴリズムを使用して、結合に参加しているテーブルの数が値
tidb_opt_join_reorder_threshold
未満の場合の結合操作の実行順序を指定します。 #8816 - アクセス条件として複合インデックスを使用する場合、インデックス結合を構築する内部テーブル内のインデックスのより多くのプレフィックス列と一致します#8471
- NULL 値#9474を持つ単一列インデックスの行数推定の精度を向上させます。
- 論理最適化フェーズ中に集計関数を削除する場合は、誤った実行を防ぐために
GROUP_CONCAT
特別に処理します#9967 - フィルターが定数#9848の場合、フィルターを結合演算子の子ノードに適切にプッシュダウンします。
- MySQL #10064の非互換性を防ぐために、論理最適化フェーズ中に列をプルーニングするときに
RAND()
などの一部の関数を特別に処理します。 - サポート
FAST ANALYZE
。領域全体をスキャンするのではなく、領域をサンプリングすることで統計収集を高速化します。この機能は変数tidb_enable_fast_analyze
によって制御されます。 #10258 - SQL ステートメントの実行計画バインドを実行することで実行の安定性を確保する SQL 計画管理をサポートします。この機能は現在ベータ版であり、SELECT ステートメントのバインドされた実行プランのみをサポートします。本番環境での使用はお勧めしません。 #10284
- 列間の順序相関を使用してコスト見積もりの精度を向上させます。ヒューリスティック パラメーター
実行エンジン
サーバ
- TiDB の開始時にのみ DDL 所有者にブートストラップの実行を許可する#10029
- 変数
tidb_skip_isolation_level_check
を追加して、トランザクション分離レベルをSERIALIZABLE #10065に設定するときに TiDB がエラーを報告しないようにします。 - 暗黙的なコミット時間と SQL 実行時間をスローログ#10294にマージします。
- サポート
GRANT ROLE
#9721 - TiDB を終了させる
whitelist
プラグインのConnectionEvent
のエラーを修正#9889 - 読み取り専用ステートメントをトランザクション履歴に誤って追加する問題を修正#9723
kill
ステートメントを改善して SQL の実行を停止し、リソースをより迅速に解放します#9844- 起動オプション
config-check
を追加して、設定ファイル#9855の有効性を確認します。 - 厳密な SQL モードが無効になっている場合の NULL フィールド挿入の有効性チェックを修正しました#10161
DDL
CREATE TABLE
ステートメントに対してpre_split_regions
オプションを追加します。このオプションは、テーブル作成後の大量の書き込みによって引き起こされる書き込みホットスポットを回避するために、テーブルを作成する際のテーブルリージョンの事前分割をサポートします#10138- 一部の DDL ステートメントの実行パフォーマンスを最適化します#10170
FULLTEXT KEY
#9821ではフルテキスト インデックスがサポートされていないという警告を追加します。- TiDB #9820の古いバージョンにおける UTF8 および UTF8MB4 文字セットの互換性の問題を修正
- 表#9868の
shard_row_id_bits
の潜在的なバグを修正 - テーブルの文字セットを変更しても列の文字セットが変更されないバグを修正#9790
- 列のデフォルト値#9897として
BINARY
/BIT
を使用する場合のSHOW COLUMN
の潜在的なバグを修正しました。 SHOW FULL COLUMNS
ステートメント#10007のCHARSET
/COLLATION
の説明を表示する際の互換性の問題を修正SHOW COLLATIONS
ステートメントが TiDB #10186でサポートされている照合順序のみをリストする問題を修正します。
PD
- ETCD #1452のアップグレード
- etcdとPDサーバーのログ形式を統一する
- PreVoteでLeaderを選出できない問題を修正
- 後続のリクエストのブロックを回避するために、失敗する「提案」リクエストと「読み取り」リクエストの高速ドロップをサポートします。
- リースのデッドロック問題を修正する
- ホット ストアがキーの不正な統計を作成する問題を修正します#1487
- 単一 PD ノードからの PD クラスターの強制再構築のサポート#1485
regionScatterer
が無効なOperatorStep
#1482を生成する可能性がある問題を修正MergeRegion
オペレーター#1495の短すぎるタイムアウト問題を修正- ホット リージョンのスケジューリングを優先するサポート#1492
- PDサーバー側での TSO 要求の処理時間を記録するためのメトリックを追加します#1502
- 対応するストア ID とアドレスをストア#1506に関連するメトリクスに追加します。
GetOperator
サービスをサポート#1477- ストアが見つからないため、ハートビート ストリームでエラーを送信できない問題を修正します#1521
TiKV
エンジン
サーバ
RaftStore
- サポート構成可能
properties index distance
#4517
- サポート構成可能
コプロセッサー
- バッチインデックススキャンエグゼキュータの追加#4419
- ベクトル化された評価フレームワークを追加#4322
- バッチ エグゼキュータの実行概要フレームワークを追加#4433
- 評価panic#4481を引き起こす可能性のある無効な列オフセットを避けるために、RPN 式を構築するときに最大列を確認してください。
BatchLimitExecutor
#4469を追加- コンテキストスイッチ#4486を減らすために、ReadPool の元の
futures-cpupool
tokio-threadpool
に置き換えます。 - バッチ集計フレームワークの追加#4533
BatchSelectionExecutor
#4562を追加- バッチアグレッション機能追加
AVG
#4570 - RPN機能追加
LogicalAnd
#4575
その他
- メモリアロケータ#4370として
tcmalloc
をサポート
- メモリアロケータ#4370として
ツール
TiDBBinlog
- unsigned int 型の主キー列のbinlogデータが負の#573である場合のレプリケーション中止の問題を修正
- downstream が
pb
の場合は圧縮オプションを提供しません。ダウンストリーム名をpb
からfile
#559に変更します。 - ローカルstorage#509での非同期フラッシュを可能にする
storage.sync-log
構成項目をPumpに追加します。 - PumpとDrainer #495間の通信のトラフィック圧縮をサポート
- 異なる SQL モード#511での DDL クエリの解析をサポートするために、 Drainerに
syncer.sql-mode
構成項目を追加します。 - レプリケーションを必要としないテーブルのフィルタリングをサポートするために
syncer.ignore-table
構成アイテムを追加します#520
雷
- 行 ID またはデフォルトの列値を使用して、ダンプ ファイルに含まれていない列データを入力します#170
- SST の一部がインポートに失敗した場合でもインポート成功が返されることがあるインポーターのバグを修正しました#4566
- SST を TiKV #4412にアップロードする際のインポーターでの速度制限のサポート
- サイズごとのテーブルのインポートをサポートし、大きなテーブルのチェックサムと分析によるクラスターへの影響を軽減し、チェックサムと分析#156の成功率を向上させます。
- データソースファイルを TiDB の type.Datum として直接解析し、KV エンコーダからの余分な解析オーバーヘッドを節約することで、Lightning の SQL エンコードパフォーマンスが 50% 向上します#145
- ログ形式を統一されたログ形式 #162に変更します
- 構成ファイルが見つからない場合に使用するコマンド ライン オプションをいくつか追加します#157
同期差分インスペクター
TiDB Ansible
- より多くの TiKV 監視パネルをサポートし、Ansible、Grafana、Prometheus #727のバージョンを更新します
- クラスターのステータスを表示するための概要ダッシュボード
- 問題のトラブルシューティングのためのトラブルシューティング ダッシュボード
- 開発者が問題を分析するための詳細ダッシュボード
- Kafka バージョン#730の TiDB Binlogのダウンロードに失敗するバグを修正
- サポートされているオペレーティング システムのバージョン制限を CentOS 7.0 以降および Red Hat 7.0 以降として変更します#733
- ローリング アップデート中のバージョン検出モードをマルチ同時#736に変更します。
- README #740のドキュメントのリンクを更新する
- 冗長な TiKV モニタリング メトリクスを削除します。トラブルシューティング用の新しいメトリクスを追加#735
- 表#739によるリーダー分布を表示するために
table-regions.py
スクリプトを最適化します。 - Drainer #745の設定ファイルを更新する
- SQL カテゴリごとにレイテンシーを表示する新しいパネルで TiDB モニタリングを最適化します#747
- Lightning 設定ファイルを更新し、
tidb_lightning_ctl
スクリプト#1e946f8を追加します。